Сбор Canvas FingerPrint на хостинге и использование собранных данных в Human Emulator Studio.

Сбор Canvas Fingerprint и использование в Human Emulator Studio

К уже существующим вариантам работы с Canvas FingerPrint в версии Human Emulator Studio 7.0.47 появилась возможность задавать существующий массив Canvas в программе. Это используется для того что бы можно было получить не уникальный Canvas FingerPrint, а имеющий некий процент подобности.

Где взять массивы Canvas?

Один из вариантов это повесить на ваш сайт скрипт и с помощью него собирать массивы Canvas.

Это можно делать с помощью такого скрипта:


<script type="text/javascript">	
        document.addEventListener("DOMContentLoaded", init, false);
	function init() 
	{
		// source image - need set src for finger printing
		var img = document.createElement("img");
		img.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAAeCAYAAABHenA+AAAFdElEQVR4Xu1bzVXjQAx2KqGDnLaHsO+xJ3ogB7YcOIQe9rQcoIc90QGVsJbfyMjikzQOcQaelUuwx6Ofb/RJmnHYdPlJBBKBsyGwOZumVPRlEHi76d6+jDFnNGTz0DWP9+YGnBHvVFUQSMK1C4UkXDvsm2lOwjWDvn2Jbef6ejUn4dqt/bTC3Rxwb/+w/36VkHxZ0u6l5S8YE0k4AG7temqOzIyxj4RDAmqNWTBIZote2ual5c92uH5CEk5hxSSKyIPWfGYcQMLt/3V/pUmvr9uri4uXx8OP7lfHCrSRFvO1Qd61lKGd9zILsqncI18Gu9EnylYVOifypW+eL9qWU/vN8o0Asgi36Q798eV+tI6u+SPv0z05Rtd6Hl2j+VoHy5f3PdlaN9JrpR54Siljp8crjJeCKXNkwo2KnGcSbhKkMngfDleDXLmYHvNrCRcRERGQ76EMFREuylaV4+MCabJF+PDinNJvlAQB6TThOMC94NWEQATke568iHBo3NNtJQlt30BU77VAj93+Zv9Iz7kJWpMyijNFQriHu9zdd0/Pt++PClYfiHBCKQUcsfzp+mWQBZlfnOG5VCXJufG6n3f5Z/umZYzOi6C05Fs2mRkrkimACnUWTHiK6wuqbiprHus36eVOhNdl7EyEXiYcIgY9dr/rut/P79WOrvlz+zx1gMceu2131b10NM4koDG6pm89frfbD2NcsZggPIftoG8kW47T39Iutp/uT5KIQzhes5oKh7oad56A7LgKVwinA8M0pA/ICcEA4Ya5/XMj2TXJiZQgEfA8Jpxrk4yVUg1MmaUNHRZCJR+pU5KLEw633tAX3d4aGVL7NWZd3W3ItRDJcMBBJUd2nwiHKgmTB5GG50pC/NxtJ4mZgluS1ZJHZI4IZ8lm2xhbRFRJRpk4ogonk7bOi8M1WqtPVzixgKwU7eFCloPA4ODU31KW16KhLFIVmGgP5wAFbdCAl9ZaJhJtnylHE9/aO0QLrAmlnzd81BWOgl9XCV2ldACiVg4RTlcxJizNJ726kkqys05ki5QD28ey/5S+fWnCuXu4mj72SMJxlbBIjjIPzORR5hHjnkweky0aqh660qF5cG/g2bkw4bgSUNB/aL/KAYqsaJoAsupx20f3mERyriaNRThJQLZPytato2w36Xm3Tb523jtH8bJ0hTsp4crp5lAN+r+5KulrdBATVbCjS70TzFImJ4CB1PThZAPaN/ZnPMnliJxDKnD44rXqkzZoZoWThJFE4cDliqWrjqxuer+kW0qrwrEObi1RxfJko+qnycqEpe/Bh+DQpE1L2Rs359BkrA79Yk/myT1YDeH4lQMLBPORfJdwyJdCGp5nyiwZbbIPM/ZPcn81IZ3ji04uer9XhesnW8pRR/lD7rmYEHqvJANdjskKVlPhLMIhvag6sh3RHk5WxKMIB06R3TjXoKpr+AsS68QF7rWEQHOPJfZQ5j6nyPHGI/nROMIimoPsITlMsjn2enu6OXJIv7cWEcbRi299UqjbOL7W7aYmLGpHj70XyfZsHpNExX8L1Jw2RjHjcc4kHJok20yPlHKu3rdEwcDBxDLQfEu+BYQFgCRNZLO0Z07ioWc/+OKcTJ7C7wjjiHBW5aP71msBHosCv5ZwJE+/jrAIjuxCa17z7zk1xUbHqEzAQYHLHy9HAC05XpNNl9A/l3BL2NBCZg3hlrbr+/0oeWlEzig/CXdGsHtVSbjz4p3aCgJZ4dqFQla4dtg305yEawZ97uHaQZ+a14hAVrg1rnr63AyBJFwz6FPxGhFIwq1x1dPnZggk4ZpBn4rXiEASbo2rnj43QyAJ1wz6VLxGBJJwa1z19LkZAkm4ZtCn4jUi8B9xlfl5Jpv5HQAAAABJRU5ErkJggg==";	
		//document.body.appendChild(img); // for debug

		img.onload = function () 
		{
		    // create canvas
		    var canvas = document.createElement("canvas");
		    //document.body.appendChild(canvas); // for debug
		    canvas.width=img.width;canvas.height=img.height;

		    // draw imge to canvas
		    let ctx = canvas.getContext("2d"); 
		    ctx.drawImage(this, 0, 0);

 		    // get image datas
		    var imgDataBuffer=ctx.getImageData(0, 0, img.width, img.height);
		    var res=btoa(String.fromCharCode.apply(null, imgDataBuffer.data));
		    //console.log(res);	// for debug

		    // save to hosting
		    var xmlhttp = new XMLHttpRequest();
 		    xmlhttp.open("POST", "/save_canvas_datas.php", true);
  		    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		    // xmlhttp.onreadystatechange = function() { if (this.readyState === 4 || this.status === 200){console.log(this.responseText); }}; // for debug
		    xmlhttp.send("id=" + res);
        	};	
	};
        </script>

В качестве исходной картинки в этом скрипте в img.src используется исходники картинки с сайта http://browserleaks.com/canvas.

Эту картинку можно заменить на любую другую аналогичную взятую с другого сайта.

Как встроить скрипт на сайт?

Для этого нужно выполнить несколько простых шагов.

  1. Добавить скрипт на страницу сайте, где будем собирать массивы Canvas перед закрывающимся тэгом head, как это показано на рисунке ниже.

2. Далее создаём в корне сайта файл save_canvas_datas.php — файл для сохранения массивов Canvas FingerPrint в папку canvаs со следующим содержимым:


<?php
$logFile = "./canvas/canvas".date("U").".txt";
$datas = $_POST['id'];
file_put_contents($logFile, str_replace(" ","+",$datas));
// echo $datas; for debug
?>
  1. Создаём в корне сайта папку canvas, в которой будут создаваться файлы с массивами Canvas.

Скачать полный код для теста.

Если всё настроено верно то в папке Canvas будут появляться файлы типа canvas1588694738.txt, которые будут генерится при каждом переходе пользователя на сайт.

Надо также учитывать , что скрипт может конфликтовать с другими скриптами, установленными на сайте.

Использование полученных Canvas Fingerprint в Human Emulator Studio.

Как мы писали выше с версии 7.0.47 команду set_canvas_toDataURL можно использовать для установки имеющегося у нас массива Canvas. Пример на php:

// 7
echo "7. Через JS используя сохраненный массив Canavas'a : ";
$js="
var imgDateArrayEncoded = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AGaZ/wBmmf8AZpn/AGaZ/wBmmf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AGaZ/wBmmf8AZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAZcwAs2XMALNlzACzZcwAs0etLv9lzACzAAAAAABmmf8AAAAAAGaZ/wBmmf8AAAAAAAAAAABmmf8AZpn/AGaZ/wBmmf8AAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAGaZ/wBmmf8AZpn/AAAAAAAAAAAAAAAAAAAAAABmmf8AZpn/AGaZ/wBmmf8AAAAAAAAAAAAAAAAAZpn/AAAAAABmmf8AZpn/AAAAAABmmf8AAAAAZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AZpn/AGaZ/wBmmf8AAAAAAAAAAAAAAAAAAAAAAGaZ/wBmmf8AZpn/AGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAZcwAswAAAAAAAAAAAGaZ/wAAAAAAAAAAAGaZ/wBmmf8AZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AGaZ/wBmmf8AAAAAAAAAAAAAAAAAAAAAAGaZ/wBmmf8AZpn/AGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAAGaZ/wBmmf8AAAAAAGaZ/wBmmf8AZpn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2YA//9mAP//ZgD//2YA//9mAP//ZgD/AGaZ//9mAP//ZgD//2YA/wBmmf8AZpn/AGaZ//9mAP//ZgD//2YA//9mAP8AZpn/AGaZ/wBmmf8AZpn//2YA//9mAP//ZgD/AGaZ//9mAP8AZpn/AGaZ/wBmmf//ZgD//2YA/wBmmf//ZgD//2YA//9mAP//ZgD//2YA/wBmmf//ZgD//2YA/wBmmf8AZpn/AGaZ/wBmmf//ZgD//2YA//9mAP//ZgD/AGaZ/wBmmf8AZpn//2YA//9mAP//ZgD/AGaZ//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAAGaZ/wAAAABlzACzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAZcwAs2XMALNHrS7/ZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAGXMALMAAAAAAAAAAAAAAAAAZpn/AAAAAGXMALMAZpn/AGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAZpn/AAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAAGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAGaZ/wBmmf8AAAAAAAAAAAAAAAAAZpn/AAAAAGXMALMAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAZpn/AAAAAGXMALMAAAAAAGaZ/wAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAAAAAAGaZ/wAAAAAAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAAAAZpn/AAAAAAAAAAAAZpn/AGaZ/wAAAAAAAAAAAGaZ/wBmmf8AAAAAAAAAAABmmf8AAAAAAAAAAAAAAAAAAAAAAAAAAP9mAP//ZgD//2YA//9mAP8AZpn/AGaZ//9mAP//ZgD//2YA/wBmmf//ZgD//2YA//9mAP8AZpn//2YA//9mAP8AZpn//2YA//9mAP//ZgD//2YA/wBmmf//ZgD//2YA/wBmmf8AZpn//2YA//9mAP//ZgD/AGaZ//9mAP8AZpn//2YA//9mAP//ZgD//2YA//9mAP8AZpn//2YA/wBmmf//ZgD//2YA//9mAP//ZgD/AGaZ//9mAP//ZgD/AGaZ//9mAP//ZgD//2YA/wBmmf//ZgD//2YA//9mAP8AZpn/AGaZ//9mAP//ZgD//2YA//9mAP//ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf9lzACzZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmf8AAAAAZcwAswAAAAAAAAAAAGaZ/wAAAABlzACzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGaZ/wBmmf9HrS7/AGaZ/wBmmf8AZpn/AAAAAAAAAABlzACzAGaZ/wAAAABlzACzAAAAAGXMALNHrS7/AAAAAAAAAABlzACzZcwAs0etLv9lzACzAAAAAABmmf9lzACzAGaZ/wAAAAAAZpn/ZcwAswBmmf8AAAAAAAAAAEetLv8AAAAAAAAAAGXMALNlzACzZcwAswAAAAAAZpn/AAAAAAAAAABlzACz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AAAAAGXMALNlzACzAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAGXMALMAAAAAAGaZ/wAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAAD/ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA/5OtAP//ZgD//2YA/5OtAP//ZgD//2YA//9mAP+TrQD//2YA//9mAP+TrQD//2YA//9mAP//ZgD/k60A/5OtAP//ZgD//2YA/5OtAP//ZgD//2YA//9mAP//ZgD/k60A//9mAP//ZgD//2YA//9mAP+TrQD//2YA//9mAP//ZgD//2YA/5OtAP//ZgD//2YA//9mAP+TrQD/k60A//9mAP//ZgD/k60A//9mAP//ZgD//2YA/5OtAP//ZgD//2YA/5OtAP//ZgD//2YA//9mAP//ZgD//2YA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZcwAs2XMALNlzACzZcwAs2XMALNlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAZcwAs2XMALNlzACzZcwAswAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAAAAAABlzACzZcwAs2XMALMAAAAAAAAAAAAAAAAAAAAAZcwAs2XMALNlzACzZcwAswAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAAAAAAAAZcwAs2XMALNlzACzZcwAs2XMALNlzACzZcwAswAAAAAAAAAAZcwAs2XMALNlzACzZcwAswAAAAAAAAAAAAAAAAAAAABlzACzZcwAs2XMALMAAAAAZcwAswAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAABlzACzZcwAs2XMALMAAAAAAAAAAABmmf8AAAAAZcwAswAAAAAAAAAAAAAAAGXMALNlzACzZcwAswAAAAAAAAAAAAAAAAAAAABlzACzZcwAs2XMALNlzACzAAAAAAAAAAAAAAAAZcwAswAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAA/2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD/k60A/5OtAP+TrQD//2YA//9mAP//ZgD//2YA/5OtAP+TrQD/k60A//9mAP+TrQD//2YA//9mAP+TrQD//2YA//9mAP//ZgD//2YA/5OtAP//ZgD//2YA//9mAP//ZgD/k60A//9mAP//ZgD//2YA//9mAP//ZgD/k60A/5OtAP+TrQD//2YA/5OtAP//ZgD//2YA//9mAP+TrQD/k60A/5OtAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAZcwAs2XMALNlzACzZcwAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXMALMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlzACzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD//2YA//9mAP//ZgD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
var aTmp=atob(imgDateArrayEncoded).split('').map(function (c) { return c.charCodeAt(0); });
for (var i = 0; i < height*width*4; i++)
	imageData.data[i] = aTmp[i];
    ";
echo $browser->set_canvas_toDataURL("1",$js)."\n";

В случае c имеющимися файлами можно переписать код следующим образом:

// получить все файлы в папке в массив
$arr_canvas_files = $folder->get_all_items($canvas_folder);
$arr_canvas_files = explode("<br>",$arr_canvas_files);

// пройдёмся
foreach($arr_canvas_files as $canvas_file)
{
	echo "применяем канвас из $canvas_file<br>";
	$app->clear();
	$browser->recreate();
	sleep(1);
	// 7
	$js="var imgDateArrayEncoded = '".file_get_contents($canvas_file)."';
	var aTmp=atob(imgDateArrayEncoded).split('').map(function (c) { return c.charCodeAt(0); });
	for (var i = 0; i < height*width*4; i++)
		imageData.data[i] = aTmp[i];
		";
	$browser->set_canvas_toDataURL("1",$js)."\n";

	sleep(2);

	// 8
	//echo "8. Перейдем на страницу для детектирвоания браузера : ";
	$browser->navigate("http://browserleaks.com/canvas",false)."\n";
	$element->get_by_inner_text("Signature")->focus();

	$cur_canvas = $td->get_inner_text_by_id("crc");
    $uniqueness = $td->get_inner_text_by_id("crc_detect");

	echo $cur_canvas."<br>".$uniqueness."<br>";
	sleep(3);

	/*//echo "8. Перейдем на страницу для детектирвоания браузера : ";
	$browser->navigate("http://f.vision/",false)."\n";
	$cur_canvas =$span->get_inner_text_by_id("q-js-canvas");
	echo $cur_canvas."<br>";
	sleep(3*/
}

Файлы могут повторяться, поэтому перед использованием надо удалить дублирующиеся файлы.

Скачать скрипт примера.

Обсудить функционал на форуме.

5/5 - (2 голоса)

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.