Подключение телефонии Sipuni
Интеграция с телефонией Sipuni позволяет обрабатывать звонки в Юздеске и собирать по ним статистику. При приёме звонков можно сразу переходить по ссылке на карточку запроса в Юздеск с информацией о звонке.
1. Чтобы подключить телефонию Sipuni к Юздеску, откройте раздел «Каналы» и нажмите «Добавить канал».

2. Выберите раздел «API».
3. Заполните «Название канала» – обязательное поле, которое будет отображаться в общем списке каналов в разделе «Каналы» и при работе с обращениями.
4. Проставьте галочки напротив полей «JSON запрос» и «отправлять в UTF-8» и нажмите «Сохранить».
5. После сохранения канала скопируйте секретный ключ и перенесите созданный канал в отслеживаемые. Нажмите снова «Сохранить».
На стороне Юздеска настройки завершены — переходим в личный кабинет телефонии Sipuni.
ВАЖНО! Интеграция доступна в расширенном тарифе Sipuni.
6. Зайдите в личный кабинет Sipuni, раздел «Интеграции» → «Юздеск».
7. В разделе «Авторизация в Usedesk» вставьте сохраненный секретный ключ из п. 5 в поле «API-ключ».
Внутренний номер вы можете создать в разделе «Конструктор» → «Сотрудники».
Тут же вам будет предложено установить расширение или коммуникатор.
Проверьте ещё раз, что все пользователи распределены верно, и сохраните настройки конфигурации.
Важно!
Отдел поддержки Sipuni сможет ответить вам по вопросам покупки номера, настройки схем, добавлению сотрудников и т. д. Также некоторые детали по работе телефонии описаны в Базе знаний Sipuni.
а мы продолжим настройку интеграции.
9. Далее нужно настроить сценарий интеграции.
Функции, которые могут могут быть настроены в телефонии:
- входящий звонок на внешний номер,
- входящий звонок на внутренний номер,
- исходящий звонок,
- подняли рубку при входящем,
- пропущен входящий,
- исходящий не отвечен,
- завершён входящий разговор,
- завершён исходящий разговор,
- вызов CRM.
С помощью функции Sipuni вы можете воспользоваться уже написанным кодом или написать свой и начать полноценно пользоваться интеграцией.
Пример написанного кода (функции Sipuni) для сценария:
- Проверка клиента по номеру телефона (если телефона нет, создаётся клиент);
- Проверка запроса по клиенту (если нет открытого запроса по клиенту – создаём новый);
- Добавление звонка в запрос с комментарием и ссылкой на запись.
Входящий звонок на внешний номер
1. Зайдите в раздел «Настройки» → «Интеграции» и нажмите node.
2. Выберите Usedesk в качестве CRM.
3. Нажмите «Создать функцию» → «Входящий звонок на внешний номер».
следующий код:
const SipuniUsedeskApi = require('@sipuni/usedesk');
<<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function findClient(api, phone) {
const clients = await api.clients.list({
offset: 0,
query: phone, // поиск по номеру абонента
search_type: 'full_match',
});
if (clients.length > 0) {
return clients[0];
}
return null;
}
<<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function createClient(api, phone) {
const client = await api.clients.create({
name: phone,
phone: phone,
});
client.id = client.client_id; // добавляем поле id, как у клиента вернувшегося из findClient
return client;
}
<<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function findOpenTicket(api, client) {
const found = await api.tickets.list({
client_id: client.id,
fstatus: '1,8', // Запросы со статусами Открыт и Новый
});
if (!found.length) {
return null;
} else {
return found[0]; // Берем первый запрос
}
}
<<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> function createTicket(api, client, phone) {
const ticket = await api.tickets.create({
subject: `Входящий звонок от ${phone}`,
message: 'Входящий запрос',
client_id: client.id,
});
ticket.id = ticket.ticket_id;
return ticket;
}
module.exports = <<<<<<<<<<<<<$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1>$1> (args) => {
const phone = args.call_args.src_num;
const token = args.settings.api_key;
let client = null;
let isExistingClient = true;
let ticket = null;
const api = new SipuniUsedeskApi({ token });
// Ищем клиента, создаем если не найден
client = await findClient(api, phone);
if (!client) {
client = await createClient(api, phone);
isExistingClient = false;
}
// Ищем открытый или новый запрос, если не найден – создаем
if (isExistingClient) {
ticket = await findOpenTicket(api, client);
}
if (!ticket) {
ticket = await createTicket(api, client, phone);
}
// Возвращаем объект с идентификаторами клиента и запроса,
// и флаг existing_client - клиент найден или создан
// Эта информация пригодится в других функциях
return {
client_id: client.id,
ticket_id: ticket.id,
existing_client: isExistingClient,
};
};<<<<<<<<<<<$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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><<<<<<<<<<<$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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>$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><<<<<<