diff --git a/app/Http/Controllers/BotController.php b/app/Http/Controllers/BotController.php index 64ba4e36dde8..149268346728 100644 --- a/app/Http/Controllers/BotController.php +++ b/app/Http/Controllers/BotController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Libraries\CurlUtils; use Exception; use App\Ninja\Intents\BaseIntent; @@ -9,37 +10,61 @@ class BotController extends Controller { public function handleMessage($platform) { - $message = 'invoice acme client for 2 tickets'; $to = '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts'; - - //$message = view('bots.skype.message', ['message' => 'testing'])->render(); + $message = 'invoice acme client for 2 tickets'; + //$message = view('bots.skype.message', ['message' => $message])->render(); //return $this->sendResponse($to, $message); - $message = '{ - "type": "message/image", - "text": "Test message", - "attachments": [ - { - "contentType": "application/pdf", - "contentUrl": "http://www.orimi.com/pdf-test.pdf", - "thumbnailUrl": "http://www.orimi.com/pdf-test.pdf", - "filename": "test.pdf" - } - ] -}'; - return $this->sendResponse($to, $message); + $token = $this->authenticate(); + + //try { + $state = $this->loadState($token); + var_dump($state); - try { $data = $this->parseMessage($message); - $intent = BaseIntent::createIntent($data); + + $intent = BaseIntent::createIntent($state, $data); $message = $intent->process(); + $state = $intent->getState(); + + $this->saveState($token, $state); + /* } catch (Exception $exception) { $message = view('bots.skype.message', [ 'message' => $exception->getMessage() ])->render(); } + */ - $this->sendResponse($to, $message); + $this->sendResponse($token, $to, $message); + } + + private function authenticate() + { + $clientId = env('MSBOT_CLIENT_ID'); + $clientSecret = env('MSBOT_CLIENT_SECRET'); + $scope = 'https://graph.microsoft.com/.default'; + + $data = sprintf('grant_type=client_credentials&client_id=%s&client_secret=%s&scope=%s', $clientId, $clientSecret, $scope); + + $response = CurlUtils::post(MSBOT_LOGIN_URL, $data); + $response = json_decode($response); + + return $response->access_token; + } + + private function loadState($token) + { + $url = sprintf('%s/botstate/skype/conversations/%s', MSBOT_STATE_URL, '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts'); + + $headers = [ + 'Authorization: Bearer ' . $token + ]; + + $response = CurlUtils::get($url, $headers); + $data = json_decode($response); + + return json_decode($data->data); } private function parseMessage($message) @@ -57,79 +82,34 @@ class BotController extends Controller return $data; } - private function sendResponse($to, $message) + private function saveState($token, $data) { - $clientId = env('MSBOT_CLIENT_ID'); - $clientSecret = env('MSBOT_CLIENT_SECRET'); - $scope = 'https://graph.microsoft.com/.default'; + $url = sprintf('%s/botstate/skype/conversations/%s', MSBOT_STATE_URL, '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts'); + var_dump($url); - $data = sprintf('grant_type=client_credentials&client_id=%s&client_secret=%s&scope=%s', $clientId, $clientSecret, $scope); - $curl = curl_init(); - - $opts = [ - CURLOPT_URL => MSBOT_LOGIN_URL, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_POST => 'POST', - CURLOPT_POSTFIELDS => $data, + $headers = [ + 'Authorization: Bearer ' . $token, + 'Content-Type: application/json', ]; - curl_setopt_array($curl, $opts); - curl_exec($curl); - - - $response = json_decode(curl_exec($curl)); - $token = $response->access_token; - print_r($token); - - /* - $url = sprintf('%s/conversations/%s/activities', 'https://apis.skype.com/v3', '29:1C-OsU7OWBEDOYJhQUsDkYHmycOwOq9QOg5FVTwRX9ts'); - $message = 'data:application/pdf;base64,JVBERi0xLjMKJf////8KNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9jYSAxCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9FeHRHU3RhdGUKL0NBIDEKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyA0IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PAovR3MxIDcgMCBSCi9HczIgOCAwIFIKPj4KL1hPYmplY3QgPDwKL0kxIDYgMCBSCj4+Ci9Gb250IDw8Ci9GMSA5IDAgUgovRjIgMTAgMCBSCj4+Cj4+CmVuZG9iagozIDAgb2JqCjw8Ci9MZW5ndGggMTAwMTUKPj4Kc3RyZWFtCjEgMCAwIC0xIDAgODQxLjg5IGNtCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0NzUuMjggMzA5LjgyOTk5OTk5OTk5OTkgODAgMTguNTY1OTk5OTk5OTk5OTc0IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzk1LjI4IDMwOS44Mjk5OTk5OTk5OTk5IDgwIDE4LjU2NTk5OTk5OTk5OTk3NCByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQ2Ni4wMjQgMTQ5LjEzMiA2Ny42MDEgMTQuNTY2MDAwMDAwMDAwMDAzIHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzgwIDE0OS4xMzIgODYuMDI0IDE0LjU2NjAwMDAwMDAwMDAwMyByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNzkxLjQzIFRkCi9GMSA5IFRmCjwyMTIyMjMyNDI1MjQyNjI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjc2LjEwOCA3OTEuNDMgVGQKL0YxIDkgVGYKPDI4MjkyYTI1MjkyYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyYzI5MjUyYTJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjY0LjAyMSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmUyNjJmMjMyNDMwMzEzMjI5MzMyYTIzMzQyYzI5MmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTQxLjkxNiA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjYyMjIzPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQwIDc2NC4yOTggVGQKL0YxIDkgVGYKPDM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDcuNDcgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzczODM5MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNjYuMjcxIDc2NC4yOTggVGQKL0YxIDkgVGYKPDNhM2IzODM2PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjg1LjEwOCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzODNjM2QzYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjEwNy4zNzQgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzMzNTNiMzkzYTM3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2UzZTNiM2EyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMzguMTM4OTk5OTk5OTk5OTggNzkxLjQzIFRkCi9GMSA5IFRmCjwzZjJhNDA0MTQyMjI0MzJlNDAyNDI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI4OC41NDggNzkxLjQzIFRkCi9GMSA5IFRmCjw0NDJlMmMyYTI1MzAyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozMTUuMjA2IDc5MS40MyBUZAovRjEgOSBUZgo8NDU0MTI0MzEyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjMzOC4yMzY5OTk5OTk5OTk5NyA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2MzNT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzc3Ljg2Mzk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ2MzQzMTJkMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjMwLjEyOSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8M2QzNTNiPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3NjQuMjk4IFRkCi9GMSA5IFRmCjw0NzI5MmMyYzJlMjQzMDI5NDgyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyNDkuMDU1OTk5OTk5OTk5OTggNzY0LjI5OCBUZAovRjEgOSBUZgo8NDkyOTQyNGEyYTJlNDAyYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI5MC44NDI5OTk5OTk5OTk5NiA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzYjNkMzUzOTM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMzE3LjAyNCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzNzNkNGIzYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzUwLjczMiBUZAovRjEgOSBUZgo8NGMyZjI0MmMyNDM0MzQyNDI1MjkyZT4gVGoKRVQKUQpxCjgwIDAgMCAtODAgMzgzLjUyIDEyMCBjbQovSTEgRG8KUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNy42ODcgNjcxLjQzIFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozOTAgNzExLjQzIFRkCi9GMSA5IFRmCjw0NDI1NGQyMjI0MjYyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQyMS43MjUgNzExLjQzIFRkCi9GMSA5IFRmCjw0OTQxMjM0MjI5NGE+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDc2LjAyNCA3MTEuNDMgVGQKL0YxIDkgVGYKPDNjM2MzZTM5PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM5MCA2OTYuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8NDQyNTRkMjIyNDI2MjkyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MjEuNzI1IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyMTJhMzEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NzYuMDI0IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0NjQxNGUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0OTUuMjAzIDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwzOTQ4Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTA0LjQ4MTk5OTk5OTk5OTk3IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwzZTNjMzUzYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozOTAgNjgyLjI5OCBUZAovRjEgOSBUZgo8NDcyYTJjMmEyNTI2MjkyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MjUuNjA0IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDIxNDEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NzYuMDI0IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDRmM2MyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0ODguNjY5IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDNjM2M+IFRqCkVUClEKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQwIDIwMy41NjYgNTE1IDI1IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0OCA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MjEyMjIzMjQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTI5LjI5MiA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MjUyMzI2MjcyODI5MmEyMjI5MmIyYz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNTQuNjM4NTk5OTk5OTk5OSA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MmQyYzI5MjIyZT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNzQuMjU4NTk5OTk5OTk5OSA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MmYyYjI2MjI+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDM0LjYxMDc5OTk5OTk5OTkgNjIzLjg2Mzk5OTk5OTk5OTkgVGQKL0YyIDkgVGYKPDMwMzEzMjJjMjIyOTIyMzM+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTA1LjQwMjk5OTk5OTk5OTk2IDYyMy44NjM5OTk5OTk5OTk5IFRkCi9GMiA5IFRmCjwzNDI5MmMyMzJlPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjUyNS42MzUgNjIzLjg2Mzk5OTk5OTk5OTkgVGQKL0YyIDkgVGYKPDM1MmIyMjMyMzY+IFRqCkVUClEKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQwIDIyOC42MzIgbQo1NTUuMjggMjI4LjYzMiBsCi9EZXZpY2VSR0IgQ1MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgU0NOCi9HczIgZ3MKUwovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NS42ODcgNTk2LjI5OCBUZAovRjEgOSBUZgo8Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTI2Ljk3OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNzUuMzExNTk5OTk5OTk5OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM4Mi40MDM1OTk5OTk5OTk4NyA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzNjPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQ3MC4zNDA3OTk5OTk5OTk5NCA1OTYuMjk4IFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MjMuNjM3IDU5Ni4yOTggVGQKL0YxIDkgVGYKPDRmM2MyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MzYuMjgxOTk5OTk5OTk5OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzNjPiBUagpFVApRCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0MCAyNTYuMTk4IG0KNTU1LjI4IDI1Ni4xOTggbAovRGV2aWNlUkdCIENTCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IFNDTgovR3MyIGdzClMKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNTYwLjczMiBUZAovRjIgOSBUZgo8MzUyMzI4MjQyNj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8NTAzMTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjUwLjcwMSA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyMzI5MzEyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo3NC4yMDkgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDJhNDEzMTI5MjMyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxMDMgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDUxNDEyNDJhMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTIyLjc5OTk5OTk5OTk5OTk4IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyYTQxMzEyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxMzguMTA4OTk5OTk5OTk5OTggNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDIzMjQyNTQxMmUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxNjUuMzE1OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDMwNDEyNjI0MjM0MTJlMmQyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMDQuNjU0OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ0MjUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTQuMjg0OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDIyMzAyNDIyMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjM0LjY1MTk5OTk5OTk5OTk2IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0YTI5MjQyNjI0MjkyNTMwMjQyZTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI3Ni4wNjk5OTk5OTk5OTk5NCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjIyNjI2MmEyOTI2MmEzMTI0Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMzE4LjA4MTk5OTk5OTk5OTk0IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw1MTQxMmEyOTRhMmEzMTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM1Mi4wNDc5OTk5OTk5OTk5NCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MzEyOTI1MjkzMTQxNGEyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MzAuNzkyIDU1Ni43MzIgVGQKL0YxIDkgVGYKPDQ1NDE0MjMxMjIzMTJhMmM+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTIxLjYzNyA1NTYuNzMyIFRkCi9GMSA5IFRmCjw0ZjNjMmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTM0LjI4MTk5OTk5OTk5OTkgNTU2LjczMiBUZAovRjEgOSBUZgo8M2MzYz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MTIuNjc0OTk5OTk5OTk5OTUgNTM4LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDRjMmEyNDMwMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDMyLjgwNzk5OTk5OTk5OTk0IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw1MjIyMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDQ1LjkwMjk5OTk5OTk5OTk2IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyMTJhMzEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MjEuNjM3IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0ZjNjMmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTM0LjI4MTk5OTk5OTk5OTkgNTM4LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDNjM2M+IFRqCkVUClEKL0RldmljZVJHQiBj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AEkAbgBlAHIAbgBlAHkALk1hdHQgTWNJbmVybmV5LCBQYWJsbyBJbXBhbGxhcmksIFJvZHJpZ28gRnVlbnphbGlkYQBNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkALAAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYU1hdHQgTWNJbmVybmV5LCBQYWJsbyBJbXBhbGxhcmksIFJvZHJpZ28gRnVlbnphbGlkYQBNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkALAAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYVJhbGV3YXkgaXMgYW4gZWxlZ2FudCBzYW5zLXNlcmlmIHR5cGVmYWNlIGZhbWlseS4gSW5pdGlhbGx5IGRlc2lnbmVkIGJ5IE1hdHQgTWNJbmVybmV5IGFzIGEgc2luZ2xlIHRoaW4gd2VpZ2h0LCBpdCB3YXMgZXhwYW5kZWQgaW50byBhIDkgd2VpZ2h0IGZhbWlseSBieSBQYWJsbyBJbXBhbGxhcmkgYW5kIFJvZHJpZ28gRnVlbnphbGlkYSBpbiAyMDEyIGFuZCBpS2VybmVkIGJ5IElnaW5vIE1hcmluaS4gSXQgaXMgYSBkaXNwbGF5IGZhY2UgYW5kIHRoZSBkb3dubG9hZCBmZWF0dXJlcyBib3RoIG9sZCBzdHlsZSBhbmQgbGluaW5nIG51bWVyYWxzLCBzdGFuZGFyZCBhbmQgZGlzY3JldGlvbmFyeSBsaWdhdHVyZXMsIGEgcHJldHR5IGNvbXBsZXRlIHNldCBvZiBkaWFjcml0aWNzLCBhcyB3ZWxsIGFzIGEgc3R5bGlzdGljIGFsdGVybmF0ZSBpbnNwaXJlZCBieSBtb3JlIGdlb21ldHJpYyBzYW5zLXNlcmlmIHR5cGVmYWNlcyB0aGFuIGl0cyBuZW8tZ3JvdGVzcXVlIGluc3BpcmVkIGRlZmF1bHQgY2hhcmFjdGVyIHNldC4AUgBhAGwAZQB3AGEAeQAgAGkAcwAgAGEAbgAgAGUAbABlAGcAYQBuAHQAIABzAGEAbgBzAC0AcwBlAHIAaQBmACAAdAB5AHAAZQBmAGEAYwBlACAAZgBhAG0AaQBsAHkALgAgAEkAbgBpAHQAaQBhAGwAbAB5ACAAZABlAHMAaQBnAG4AZQBkACAAYgB5ACAATQBhAHQAdAAgAE0AYwBJAG4AZQByAG4AZQB5ACAAYQBzACAAYQAgAHMAaQBuAGcAbABlACAAdABoAGkAbgAgAHcAZQBpAGcAaAB0ACwAIABpAHQAIAB3AGEAcwAgAGUAeABwAGEAbgBkAGUAZAAgAGkAbgB0AG8AIABhACAAOQAgAHcAZQBpAGcAaAB0ACAAZgBhAG0AaQBsAHkAIABiAHkAIABQAGEAYgBsAG8AIABJAG0AcABhAGwAbABhAHIAaQAgAGEAbgBkACAAUgBvAGQAcgBpAGcAbwAgAEYAdQBlAG4AegBhAGwAaQBkAGEAIABpAG4AIAAyADAAMQAyACAAYQBuAGQAIABpAEsAZQByAG4AZQBkACAAYgB5ACAASQBnAGkAbgBvACAATQBhAHIAaQBuAGkALgAgAEkAdAAgAGkAcwAgAGEAIABkAGkAcwBwAGwAYQB5ACAAZgBhAGMAZQAgAGEAbgBkACAAdABoAGUAIABkAG8AdwBuAGwAbwBhAGQAIABmAGUAYQB0AHUAcgBlAHMAIABiAG8AdABoACAAbwBsAGQAIABzAHQAeQBsAGUAIABhAG4AZAAgAGwAaQBuAGkAbgBnACAAbgB1AG0AZQByAGEAbABzACwAIABzAHQAYQBuAGQAYQByAGQAIABhAG4AZAAgAGQAaQBzAGMAcgBlAHQAaQBvAG4AYQByAHkAIABsAGkAZwBhAHQAdQByAGUAcwAsACAAYQAgAHAAcgBlAHQAdAB5ACAAYwBvAG0AcABsAGUAdABlACAAcwBlAHQAIABvAGYAIABkAGkAYQBjAHIAaQB0AGkAYwBzACwAIABhAHMAIAB3AGUAbABsACAAYQBzACAAYQAgAHMAdAB5AGwAaQBzAHQAaQBjACAAYQBsAHQAZQByAG4AYQB0AGUAIABpAG4AcwBwAGkAcgBlAGQAIABiAHkAIABtAG8AcgBlACAAZwBlAG8AbQBlAHQAcgBpAGMAIABzAGEAbgBzAC0AcwBlAHIAaQBmACAAdAB5AHAAZQBmAGEAYwBlAHMAIAB0AGgAYQBuACAAaQB0AHMA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FgxOAAMAAQQJAAwALAxkAAEAAAAAAA0AkAyQAAMAAQQJAA0BIA0gAAEAAAAAAA4AGg5AAAMAAQQJAA4ANA5aAAEAAAAAABIADg6OQ29weXJpZ2h0IChjKSAyMDEwIC0gMjAxMywgTWF0dCBNY0luZXJuZXkgKG1hdHRAcGl4ZWxzcHJlYWQuY29tKSwgUGFibG8gSW1wYWxsYXJpIChpbXBhbGxhcmlAZ21haWwuY29tKSwgUm9kcmlnbyBGdWVuemFsaWRhIChoZWxsb0ByZnVlbnphbGlkYS5jb20pIHdpdGggUmVzZXJ2ZWQgRm9udCBOYW1lICJSYWxld2F5IgBDAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADEAMAAgAC0AIAAyADAAMQAzACwAIABNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkAIAAoAG0AYQB0AHQAQABwAGkAeABlAGwAcwBwAHIAZQBhAGQALgBjAG8AbQApACwAIABQAGEAYgBsAG8AIABJAG0AcABhAGwAbABhAHIAaQAgACgAaQBtAHAAYQBsAGwAYQByAGkAQABnAG0AYQBpAGwALgBjAG8AbQApACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYQAgACgAaABlAGwAbABvAEAAcgBmAHUAZQBuAHoAYQBsAGkAZABhAC4AYwBvAG0AKQAgAHcAaQB0AGgAIABSAGUAcwBlAHIAdgBlAGQAIABGAG8AbgB0ACAATgBhAG0AZQAgACIAUgBhAGwAZQB3AGEAeQAiUmFsZXdheQBSAGEAbABlAHcAYQB5TWVkaXVtAE0AZQBkAGkAdQBtTWF0dE1jSW5lcm5leSxQYWJsb0ltcGFsbGFyaSxSb2RyaWdvRnVlbnphbGlkYTogUmFsZXdheSBNZWRpdW06IDIwMTMATQBhAHQAdABNAGMASQBuAGUAcgBuAGUAeQAsAFAAYQBiAGwAbwBJAG0AcABhAGwAbABhAHIAaQAsAFIAbwBkAHIAaQBnAG8ARgB1AGUAbgB6AGEAbABpAGQAYQA6ACAAUgBhAGwAZQB3AGEAeQAgAE0AZQBkAGkAdQBtADoAIAAyADAAMQAzUmFsZXdheSBNZWRpdW0AUgBhAGwAZQB3AGEAeQAgAE0AZQBkAGkAdQBtVmVyc2lvbiAzLjAwMDsgdHRmYXV0b2hpbnQgKHYwLjk2KSAtbCA4IC1yIDI4IC1HIDI4IC14IDE0IC13ICJHIiAtYwBWAGUAcgBzAGkAbwBuACAAMwAuADAAMAAwADsAIAB0AHQAZgBhAHUAdABvAGgAaQBuAHQAIAAoAHYAMAAuADkANgApACAALQBsACAAOAAgAC0AcgAgADIAOAAgAC0ARwAgADIAOAAgAC0AeAAgADEANAAgAC0AdwAgACIARwAiACAALQBjQUFBQUFCK1JhbGV3YXktTWVkaXVtUmFsZXdheSBpcyBhIHRyYWRlbWFyayBvZiBNYXR0IE1jSW5lcm5leS4AUgBhAGwAZQB3AGEAeQAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAuTWF0dCBNY0luZXJuZXksIFBhYmxvIEltcGFsbGFyaSwgUm9kcmlnbyBGdWVuemFsaWRhAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAsACAAUABhAGIAbABvACAASQBtAHAAYQBsAGwAYQByAGkALAAgAFIAbwBkAHIAaQBnAG8AIABGAHUAZQBuAHoAYQBsAGkAZABhTWF0dCBNY0luZXJuZXksIFBhYmxvIEltcGFsbGFyaSwgUm9kcmlnbyBGdWVuemFsaWRhAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAsACAAUABhAGIAbABvACAASQBtAHAAYQBsAGwAYQByAGkALAAgAFIAbwBkAHIAaQBnAG8AIABGAHUAZQBuAHoAYQBsAGkAZABhUmFsZXdheSBpcyBhbiBlbGVnYW50IHNhbnMtc2VyaWYgdHlwZWZhY2UgZmFtaWx5LiBJbml0aWFsbHkgZGVzaWduZWQgYnkgTWF0dCBNY0luZXJuZXkgYXMgYSBzaW5nbGUgdGhpbiB3ZWlnaHQsIGl0IHdhcyBleHBhbmRlZCBpbnRvIGEgOSB3ZWlnaHQgZmFtaWx5IGJ5IFBhYmxvIEltcGFsbGFyaSBhbmQgUm9kcmlnbyBGdWVuemFsaWRhIGluIDIwMTIgYW5kIGlLZXJuZWQgYnkgSWdpbm8gTWFyaW5pLiBJdCBpcyBhIGRpc3BsYXkgZmFjZSBhbmQgdGhlIGRvd25sb2FkIGZlYXR1cmVzIGJvdGggb2xkIHN0eWxlIGFuZCBsaW5pbmcgbnVtZXJhbHMsIHN0YW5kYXJkIGFuZCBkaXNjcmV0aW9uYXJ5IGxpZ2F0dXJlcywgYSBwcmV0dHkgY29tcGxldGUgc2V0IG9mIGRpYWNyaXRpY3MsIGFzIHdlbGwgYXMgYSBzdHlsaXN0aWMgYWx0ZXJuYXRlIGluc3BpcmVkIGJ5IG1vcmUgZ2VvbWV0cmljIHNhbnMtc2VyaWYgdHlwZWZhY2VzIHRoYW4gaXRzIG5lby1ncm90ZXNxdWUgaW5zcGlyZWQgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgBSAGEAbABlAHcAYQB5ACAAaQBzACAAYQBuACAAZQBsAGUAZwBhAG4AdAAgAHMAYQBuAHMALQBzAGUAcgBpAGYAIAB0AHkAcABlAGYAYQBjAGUAIABmAGEAbQBpAGwAeQAuACAASQBuAGkAdABpAGEAbABsAHkAIABkAGUAcwBpAGcAbgBlAGQAIABiAHkAIABNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkAIABhAHMAIABhACAAcwBpAG4AZwBsAGUAIAB0AGgAaQBuACAAdwBlAGkAZwBoAHQALAAgAGkAdAAgAHcAYQBzACAAZQB4AHAAYQBuAGQAZQBkACAAaQBuAHQAbwAgAGEAIAA5ACAAdwBlAGkAZwBoAHQAIABmAGEAbQBpAGwAeQAgAGIAeQAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACAAYQBuAGQAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYQAgAGkAbgAgADIAMAAxADIAIABhAG4AZAAgAGkASwBlAHIAbgBlAGQAIABiAHkAIABJAGcAaQBuAG8AIABNAGEAcgBpAG4AaQAuACAASQB0ACAAaQBzACAAYQAgAGQAaQBzAHAAbABhAHkAIABmAGEAYwBlACAAYQBuAGQAIAB0AGgAZQAgAGQAbwB3AG4AbABvAGEAZAAgAGYAZQBhAHQAdQByAGUAcwAgAGIAbwB0AGgAIABvAGwAZAAgAHMAdAB5AGwAZQAgAGEAbgBkACAAbABpAG4AaQBuAGcAIABuAHUAbQBlAHIAYQBsAHMALAAgAHMAdABhAG4AZABhAHIAZAAgAGEAbgBkACAAZABpAHMAYwByAGUAdABpAG8AbgBhAHIAeQAgAGwAaQBnAGEAdAB1AHIAZQBzACwAIABhACAAcAByAGUAdAB0AHkAIABjAG8AbQBwAGwAZQB0AGUAIABzAGUAdAAgAG8AZgAgAGQAaQBhAGMAcgBpAHQAaQBjAHMALAAgAGEAcwAgAHcAZQBsAGwAIABhAHMAIABhACAAcwB0AHkAbABpAHMAdABpAGMAIABhAGwAdABlAHIAbgBhAHQAZQAgAGkAbgBzAHAAaQByAGUAZAAgAGIAeQAgAG0AbwByAGUAIABnAGUAbwBtAGUAdAByAGkAYwAgAHMAYQBuAHMALQBzAGUAcgBpAGYAIAB0AHkAcABlAGYAYQBjAGUAcwAgAHQAaABhAG4AIABpAHQAcwAgAG4AZQBvAC0AZwByAG8AdABlAHMAcQB1AGUAIABpAG4AcwBwAGkAcgBlAGQAIABkAGUAZgBhAHUAbAB0ACAAYwBoAGEAcgBhAGMAdABlAHIAIABzAGUAdAAuaHR0cDovL3RoZWxlYWd1ZW9mbW92ZWFibGV0eXBlLmNvbQBoAHQAdABwADoALwAvAHQAaABlAGwAZQBhAGcAdQBlAG8AZgBtAG8AdgBlAGEAYgBsAGUAdAB5AHAAZQAuAGMAbwBtaHR0cDovL3BpeGVsc3ByZWFkLmNvbQBoAHQAdABwADoALwAvAHAAaQB4AGUAbABzAHAAcgBlAGEAZAAuAGMAbwBtVGhpcyBGb250IFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBTSUwgT3BlbiBGb250IExpY2Vuc2UsIFZlcnNpb24gMS4xLiBUaGlzIGxpY2Vuc2UgaXMgYXZhaWxhYmxlIHdpdGggYSBGQVEgYXQ6IGh0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMaHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMUmFsZXdheSBNZWRpdW0AAAABAAAAAwAALOaJUV8PPPUAGQPoAAAAAM5nCfwAAAAAzmhJUP8s/x8FHwOiAAAACQACAAAAAAAAAAMB1gH0AAUAAAK8AooAAACMArwCigAAAd0AMgD6AAACCwYDAwEBBgADoAAC/1AAIFsAAAAAAAAAAHB5cnMAQAAg+wYDrP8WAAADrADqIAAAlwAAAAACCgLGAAAAIAADCmVuZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQUFBQUFCK1JhbGV3YXktTWVkaXVtCi9Gb250RmlsZTIgMTUgMCBSCi9Gb250QkJveCBbLTIxMiAtMjI1IDEzMTEgOTMwXQovRmxhZ3MgMzIKL1N0ZW1WIDAKL0l0YWxpY0FuZ2xlIDAKL0FzY2VudCA5NDAKL0Rlc2NlbnQgLTIzNAovQ2FwSGVpZ2h0IDcxMAovWEhlaWdodCA1MjIKPj4KZW5kb2JqCjE3IDAgb2JqCjw8Ci9MZW5ndGggNTY4Cj4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8gPDwKICAvUmVnaXN0cnkgKEFkb2JlKQogIC9PcmRlcmluZyAoVUNTKQogIC9TdXBwbGVtZW50IDAKPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMD48ZmY+CmVuZGNvZGVzcGFjZXJhbmdlCjIyIGJlZ2luYmZjaGFyCjwyMT48MDA0OT4KPDIyPjwwMDc0Pgo8MjM+PDAwNjU+CjwyND48MDA2ZD4KPDI1PjwwMDQ0Pgo8MjY+PDAwNzM+CjwyNz48MDA2Mz4KPDI4PjwwMDcyPgo8Mjk+PDAwNjk+CjwyYT48MDA3MD4KPDJiPjwwMDZmPgo8MmM+PDAwNmU+CjwyZD48MDA1NT4KPDJlPjwwMDIwPgo8MmY+PDAwNDM+CjwzMD48MDA1MT4KPDMxPjwwMDc1Pgo8MzI+PDAwNjE+CjwzMz48MDA3OT4KPDM0PjwwMDRjPgo8MzU+PDAwNTQ+CjwzNj48MDA2Yz4KZW5kYmZjaGFyCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCmVuZAplbmQKCmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9BQUFBQUIrUmFsZXdheS1NZWRpdW0KL1N1YnR5cGUgL1RydWVUeXBlCi9Gb250RGVzY3JpcHRvciAxNiAwIFIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgNTQKL1dpZHRocyBbMjYwIDM1MiA1OTEgOTI0IDcxNiA0OTQgNTU0IDM2MyAyMzAgNjIzIDU5OSA1OTAgNzU1IDI1MyA2ODIgNzQ2IDYwMSA1NTQgNTQ1IDU4NCA2MTQgMjg2XQovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKL1RvVW5pY29kZSAxNyAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagoxIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMQovS2lkcyBbNSAwIFJdCj4+CmVuZG9iagoxOCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL0hlaWdodCAxCi9XaWR0aCAxCi9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKL0RlY29kZSBbMCAxXQovTGVuZ3RoIDkKPj4Kc3RyZWFtCnicYwAAAAEAAQplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdlCi9CaXRzUGVyQ29tcG9uZW50IDgKL1dpZHRoIDEKL0hlaWdodCAxCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Ci9TTWFzayAxOCAwIFIKL0xlbmd0aCA5Cj4+CnN0cmVhbQp4nGMAAAABAAEKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgMTkKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDMzOTUwIDAwMDAwIG4gCjAwMDAwMzM5MDEgMDAwMDAgbiAKMDAwMDAwMDM3NyAwMDAwMCBuIAowMDAwMDAwMjEzIDAwMDAwIG4gCjAwMDAwMDAxMDMgMDAwMDAgbiAKMDAwMDAzNDE5NSAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAyNDU5NCAwMDAwMCBuIAowMDAwMDMzNjIxIDAwMDAwIG4gCjAwMDAwMTA0NDUgMDAwMDAgbiAKMDAwMDAxMDU0MCAwMDAwMCBuIAowMDAwMDIzNDUzIDAwMDAwIG4gCjAwMDAwMjM2NjYgMDAwMDAgbiAKMDAwMDAyNDk4NCAwMDAwMCBuIAowMDAwMDMyNzg3IDAwMDAwIG4gCjAwMDAwMzMwMDEgMDAwMDAgbiAKMDAwMDAzNDAwNyAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDE5Ci9Sb290IDIgMCBSCi9JbmZvIDExIDAgUgo+PgpzdGFydHhyZWYKMzQzODIKJSVFT0YK'; - - //$url = sprintf('%s/conversations', 'https://apis.skype.com/v3'); - //$url = sprintf('%s/conversations', 'https://api.botframework.com/v3'); - //$url = sprintf('%s/conversations', SKYPE_API_URL); - - $message = '{ - "originalBase64": "data:application/pdf;base64,JVBERi0xLjMKJf////8KNyAwIG9iago8PAovVHlwZSAvRXh0R1N0YXRlCi9jYSAxCj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9FeHRHU3RhdGUKL0NBIDEKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAxIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5XQovQ29udGVudHMgMyAwIFIKL1Jlc291cmNlcyA0IDAgUgo+PgplbmRvYmoKNCAwIG9iago8PAovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSV0KL0V4dEdTdGF0ZSA8PAovR3MxIDcgMCBSCi9HczIgOCAwIFIKPj4KL1hPYmplY3QgPDwKL0kxIDYgMCBSCj4+Ci9Gb250IDw8Ci9GMSA5IDAgUgovRjIgMTAgMCBSCj4+Cj4+CmVuZG9iagozIDAgb2JqCjw8Ci9MZW5ndGggMTAwMTUKPj4Kc3RyZWFtCjEgMCAwIC0xIDAgODQxLjg5IGNtCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0NzUuMjggMzA5LjgyOTk5OTk5OTk5OTkgODAgMTguNTY1OTk5OTk5OTk5OTc0IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzk1LjI4IDMwOS44Mjk5OTk5OTk5OTk5IDgwIDE4LjU2NTk5OTk5OTk5OTk3NCByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQ2Ni4wMjQgMTQ5LjEzMiA2Ny42MDEgMTQuNTY2MDAwMDAwMDAwMDAzIHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgoxIHcKW10gMCBkCi9HczEgZ3MKL0dzMiBncwowIGoKMzgwIDE0OS4xMzIgODYuMDI0IDE0LjU2NjAwMDAwMDAwMDAwMyByZQovRGV2aWNlUkdCIGNzCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IHNjbgovR3MxIGdzCmYKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNzkxLjQzIFRkCi9GMSA5IFRmCjwyMTIyMjMyNDI1MjQyNjI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjc2LjEwOCA3OTEuNDMgVGQKL0YxIDkgVGYKPDI4MjkyYTI1MjkyYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyYzI5MjUyYTJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjY0LjAyMSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmUyNjJmMjMyNDMwMzEzMjI5MzMyYTIzMzQyYzI5MmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTQxLjkxNiA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjYyMjIzPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQwIDc2NC4yOTggVGQKL0YxIDkgVGYKPDM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDcuNDcgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzczODM5MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNjYuMjcxIDc2NC4yOTggVGQKL0YxIDkgVGYKPDNhM2IzODM2PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjg1LjEwOCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzODNjM2QzYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjEwNy4zNzQgNzY0LjI5OCBUZAovRjEgOSBUZgo8MzMzNTNiMzkzYTM3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2UzZTNiM2EyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMzguMTM4OTk5OTk5OTk5OTggNzkxLjQzIFRkCi9GMSA5IFRmCjwzZjJhNDA0MTQyMjI0MzJlNDAyNDI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI4OC41NDggNzkxLjQzIFRkCi9GMSA5IFRmCjw0NDJlMmMyYTI1MzAyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozMTUuMjA2IDc5MS40MyBUZAovRjEgOSBUZgo8NDU0MTI0MzEyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjMzOC4yMzY5OTk5OTk5OTk5NyA3OTEuNDMgVGQKL0YxIDkgVGYKPDNhM2MzNT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzc3Ljg2Mzk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ2MzQzMTJkMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjMwLjEyOSA3NzcuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8M2QzNTNiPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjIxMS43NiA3NjQuMjk4IFRkCi9GMSA5IFRmCjw0NzI5MmMyYzJlMjQzMDI5NDgyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyNDkuMDU1OTk5OTk5OTk5OTggNzY0LjI5OCBUZAovRjEgOSBUZgo8NDkyOTQyNGEyYTJlNDAyYTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI5MC44NDI5OTk5OTk5OTk5NiA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzYjNkMzUzOTM1MzY+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMzE3LjAyNCA3NjQuMjk4IFRkCi9GMSA5IFRmCjwzNzNkNGIzYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTEuNzYgNzUwLjczMiBUZAovRjEgOSBUZgo8NGMyZjI0MmMyNDM0MzQyNDI1MjkyZT4gVGoKRVQKUQpxCjgwIDAgMCAtODAgMzgzLjUyIDEyMCBjbQovSTEgRG8KUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNy42ODcgNjcxLjQzIFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozOTAgNzExLjQzIFRkCi9GMSA5IFRmCjw0NDI1NGQyMjI0MjYyOTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQyMS43MjUgNzExLjQzIFRkCi9GMSA5IFRmCjw0OTQxMjM0MjI5NGE+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDc2LjAyNCA3MTEuNDMgVGQKL0YxIDkgVGYKPDNjM2MzZTM5PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM5MCA2OTYuODYzOTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8NDQyNTRkMjIyNDI2MjkyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MjEuNzI1IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyMTJhMzEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NzYuMDI0IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0NjQxNGUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0OTUuMjAzIDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwzOTQ4Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTA0LjQ4MTk5OTk5OTk5OTk3IDY5Ni44NjM5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwzZTNjMzUzYj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozOTAgNjgyLjI5OCBUZAovRjEgOSBUZgo8NDcyYTJjMmEyNTI2MjkyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MjUuNjA0IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDIxNDEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NzYuMDI0IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDRmM2MyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0ODguNjY5IDY4Mi4yOTggVGQKL0YxIDkgVGYKPDNjM2M+IFRqCkVUClEKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQwIDIwMy41NjYgNTE1IDI1IHJlCi9EZXZpY2VSR0IgY3MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgc2NuCi9HczEgZ3MKZgovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0OCA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MjEyMjIzMjQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTI5LjI5MiA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MjUyMzI2MjcyODI5MmEyMjI5MmIyYz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNTQuNjM4NTk5OTk5OTk5OSA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MmQyYzI5MjIyZT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNzQuMjU4NTk5OTk5OTk5OSA2MjMuODYzOTk5OTk5OTk5OSBUZAovRjIgOSBUZgo8MmYyYjI2MjI+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDM0LjYxMDc5OTk5OTk5OTkgNjIzLjg2Mzk5OTk5OTk5OTkgVGQKL0YyIDkgVGYKPDMwMzEzMjJjMjIyOTIyMzM+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTA1LjQwMjk5OTk5OTk5OTk2IDYyMy44NjM5OTk5OTk5OTk5IFRkCi9GMiA5IFRmCjwzNDI5MmMyMzJlPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjUyNS42MzUgNjIzLjg2Mzk5OTk5OTk5OTkgVGQKL0YyIDkgVGYKPDM1MmIyMjMyMzY+IFRqCkVUClEKMSB3CltdIDAgZAovR3MxIGdzCi9HczIgZ3MKMCBqCjQwIDIyOC42MzIgbQo1NTUuMjggMjI4LjYzMiBsCi9EZXZpY2VSR0IgQ1MKMC45MDE5NjA3ODQzMTM3MjU1IDAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgU0NOCi9HczIgZ3MKUwovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0NS42ODcgNTk2LjI5OCBUZAovRjEgOSBUZgo8Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTI2Ljk3OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAozNzUuMzExNTk5OTk5OTk5OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzJkPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM4Mi40MDM1OTk5OTk5OTk4NyA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzNjPiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjQ3MC4zNDA3OTk5OTk5OTk5NCA1OTYuMjk4IFRkCi9GMSA5IFRmCjwyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MjMuNjM3IDU5Ni4yOTggVGQKL0YxIDkgVGYKPDRmM2MyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MzYuMjgxOTk5OTk5OTk5OSA1OTYuMjk4IFRkCi9GMSA5IFRmCjwzYzNjPiBUagpFVApRCjEgdwpbXSAwIGQKL0dzMSBncwovR3MyIGdzCjAgago0MCAyNTYuMTk4IG0KNTU1LjI4IDI1Ni4xOTggbAovRGV2aWNlUkdCIENTCjAuOTAxOTYwNzg0MzEzNzI1NSAwLjkwMTk2MDc4NDMxMzcyNTUgMC45MDE5NjA3ODQzMTM3MjU1IFNDTgovR3MyIGdzClMKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDAgNTYwLjczMiBUZAovRjIgOSBUZgo8MzUyMzI4MjQyNj4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8NTAzMTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjUwLjcwMSA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MmEyMzI5MzEyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo3NC4yMDkgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDJhNDEzMTI5MjMyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxMDMgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDUxNDEyNDJhMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMTIyLjc5OTk5OTk5OTk5OTk4IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyYTQxMzEyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxMzguMTA4OTk5OTk5OTk5OTggNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDIzMjQyNTQxMmUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoxNjUuMzE1OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDMwNDEyNjI0MjM0MTJlMmQyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMDQuNjU0OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDQ0MjUyNz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAoyMTQuMjg0OTk5OTk5OTk5OTcgNTQ2LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDIyMzAyNDIyMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMjM0LjY1MTk5OTk5OTk5OTk2IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0YTI5MjQyNjI0MjkyNTMwMjQyZTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjI3Ni4wNjk5OTk5OTk5OTk5NCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MjIyNjI2MmEyOTI2MmEzMTI0Mjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKMzE4LjA4MTk5OTk5OTk5OTk0IDU0Ni4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw1MTQxMmEyOTRhMmEzMTI3PiBUagpFVApRCi9EZXZpY2VSR0IgY3MKMCAwIDAgc2NuCi9HczEgZ3MKZgpxCjEgMCAwIC0xIDAgODQxLjg5IGNtCkJUCjM1Mi4wNDc5OTk5OTk5OTk5NCA1NDYuMTY1OTk5OTk5OTk5OSBUZAovRjEgOSBUZgo8MzEyOTI1MjkzMTQxNGEyZD4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MzAuNzkyIDU1Ni43MzIgVGQKL0YxIDkgVGYKPDQ1NDE0MjMxMjIzMTJhMmM+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTIxLjYzNyA1NTYuNzMyIFRkCi9GMSA5IFRmCjw0ZjNjMmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTM0LjI4MTk5OTk5OTk5OTkgNTU2LjczMiBUZAovRjEgOSBUZgo8M2MzYz4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo0MTIuNjc0OTk5OTk5OTk5OTUgNTM4LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDRjMmEyNDMwMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDMyLjgwNzk5OTk5OTk5OTk0IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw1MjIyMjc+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNDQ1LjkwMjk5OTk5OTk5OTk2IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjwyMTJhMzEyOT4gVGoKRVQKUQovRGV2aWNlUkdCIGNzCjAgMCAwIHNjbgovR3MxIGdzCmYKcQoxIDAgMCAtMSAwIDg0MS44OSBjbQpCVAo1MjEuNjM3IDUzOC4xNjU5OTk5OTk5OTk5IFRkCi9GMSA5IFRmCjw0ZjNjMmQ+IFRqCkVUClEKL0RldmljZVJHQiBjcwowIDAgMCBzY24KL0dzMSBncwpmCnEKMSAwIDAgLTEgMCA4NDEuODkgY20KQlQKNTM0LjI4MTk5OTk5OTk5OTkgNTM4LjE2NTk5OTk5OTk5OTkgVGQKL0YxIDkgVGYKPDNjM2M+IFRqCkVUClEKL0RldmljZVJHQiBj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AEkAbgBlAHIAbgBlAHkALk1hdHQgTWNJbmVybmV5LCBQYWJsbyBJbXBhbGxhcmksIFJvZHJpZ28gRnVlbnphbGlkYQBNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkALAAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYU1hdHQgTWNJbmVybmV5LCBQYWJsbyBJbXBhbGxhcmksIFJvZHJpZ28gRnVlbnphbGlkYQBNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkALAAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYVJhbGV3YXkgaXMgYW4gZWxlZ2FudCBzYW5zLXNlcmlmIHR5cGVmYWNlIGZhbWlseS4gSW5pdGlhbGx5IGRlc2lnbmVkIGJ5IE1hdHQgTWNJbmVybmV5IGFzIGEgc2luZ2xlIHRoaW4gd2VpZ2h0LCBpdCB3YXMgZXhwYW5kZWQgaW50byBhIDkgd2VpZ2h0IGZhbWlseSBieSBQYWJsbyBJbXBhbGxhcmkgYW5kIFJvZHJpZ28gRnVlbnphbGlkYSBpbiAyMDEyIGFuZCBpS2VybmVkIGJ5IElnaW5vIE1hcmluaS4gSXQgaXMgYSBkaXNwbGF5IGZhY2UgYW5kIHRoZSBkb3dubG9hZCBmZWF0dXJlcyBib3RoIG9sZCBzdHlsZSBhbmQgbGluaW5nIG51bWVyYWxzLCBzdGFuZGFyZCBhbmQgZGlzY3JldGlvbmFyeSBsaWdhdHVyZXMsIGEgcHJldHR5IGNvbXBsZXRlIHNldCBvZiBkaWFjcml0aWNzLCBhcyB3ZWxsIGFzIGEgc3R5bGlzdGljIGFsdGVybmF0ZSBpbnNwaXJlZCBieSBtb3JlIGdlb21ldHJpYyBzYW5zLXNlcmlmIHR5cGVmYWNlcyB0aGFuIGl0cyBuZW8tZ3JvdGVzcXVlIGluc3BpcmVkIGRlZmF1bHQgY2hhcmFjdGVyIHNldC4AUgBhAGwAZQB3AGEAeQAgAGkAcwAgAGEAbgAgAGUAbABlAGcAYQBuAHQAIABzAGEAbgBzAC0AcwBlAHIAaQBmACAAdAB5AHAAZQBmAGEAYwBlACAAZgBhAG0AaQBsAHkALgAgAEkAbgBpAHQAaQBhAGwAbAB5ACAAZABlAHMAaQBnAG4AZQBkACAAYgB5ACAATQBhAHQAdAAgAE0AYwBJAG4AZQByAG4AZQB5ACAAYQBzACAAYQAgAHMAaQBuAGcAbABlACAAdABoAGkAbgAgAHcAZQBpAGcAaAB0ACwAIABpAHQAIAB3AGEAcwAgAGUAeABwAGEAbgBkAGUAZAAgAGkAbgB0AG8AIABhACAAOQAgAHcAZQBpAGcAaAB0ACAAZgBhAG0AaQBsAHkAIABiAHkAIABQAGEAYgBsAG8AIABJAG0AcABhAGwAbABhAHIAaQAgAGEAbgBkACAAUgBvAGQAcgBpAGcAbwAgAEYAdQBlAG4AegBhAGwAaQBkAGEAIABpAG4AIAAyADAAMQAyACAAYQBuAGQAIABpAEsAZQByAG4AZQBkACAAYgB5ACAASQBnAGkAbgBvACAATQBhAHIAaQBuAGkALgAgAEkAdAAgAGkAcwAgAGEAIABkAGkAcwBwAGwAYQB5ACAAZgBhAGMAZQAgAGEAbgBkACAAdABoAGUAIABkAG8AdwBuAGwAbwBhAGQAIABmAGUAYQB0AHUAcgBlAHMAIABiAG8AdABoACAAbwBsAGQAIABzAHQAeQBsAGUAIABhAG4AZAAgAGwAaQBuAGkAbgBnACAAbgB1AG0AZQByAGEAbABzACwAIABzAHQAYQBuAGQAYQByAGQAIABhAG4AZAAgAGQAaQBzAGMAcgBlAHQAaQBvAG4AYQByAHkAIABsAGkAZwBhAHQAdQByAGUAcwAsACAAYQAgAHAAcgBlAHQAdAB5ACAAYwBvAG0AcABsAGUAdABlACAAcwBlAHQAIABvAGYAIABkAGkAYQBjAHIAaQB0AGkAYwBzACwAIABhAHMAIAB3AGUAbABsACAAYQBzACAAYQAgAHMAdAB5AGwAaQBzAHQAaQBjACAAYQBsAHQAZQByAG4AYQB0AGUAIABpAG4AcwBwAGkAcgBlAGQAIABiAHkAIABtAG8AcgBlACAAZwBlAG8AbQBlAHQAcgBpAGMAIABzAGEAbgBzAC0AcwBlAHIAaQBmACAAdAB5AHAAZQBmAGEAYwBlAHMAIAB0AGgAYQBuACAAaQB0AHMA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FgxOAAMAAQQJAAwALAxkAAEAAAAAAA0AkAyQAAMAAQQJAA0BIA0gAAEAAAAAAA4AGg5AAAMAAQQJAA4ANA5aAAEAAAAAABIADg6OQ29weXJpZ2h0IChjKSAyMDEwIC0gMjAxMywgTWF0dCBNY0luZXJuZXkgKG1hdHRAcGl4ZWxzcHJlYWQuY29tKSwgUGFibG8gSW1wYWxsYXJpIChpbXBhbGxhcmlAZ21haWwuY29tKSwgUm9kcmlnbyBGdWVuemFsaWRhIChoZWxsb0ByZnVlbnphbGlkYS5jb20pIHdpdGggUmVzZXJ2ZWQgRm9udCBOYW1lICJSYWxld2F5IgBDAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADEAMAAgAC0AIAAyADAAMQAzACwAIABNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkAIAAoAG0AYQB0AHQAQABwAGkAeABlAGwAcwBwAHIAZQBhAGQALgBjAG8AbQApACwAIABQAGEAYgBsAG8AIABJAG0AcABhAGwAbABhAHIAaQAgACgAaQBtAHAAYQBsAGwAYQByAGkAQABnAG0AYQBpAGwALgBjAG8AbQApACwAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYQAgACgAaABlAGwAbABvAEAAcgBmAHUAZQBuAHoAYQBsAGkAZABhAC4AYwBvAG0AKQAgAHcAaQB0AGgAIABSAGUAcwBlAHIAdgBlAGQAIABGAG8AbgB0ACAATgBhAG0AZQAgACIAUgBhAGwAZQB3AGEAeQAiUmFsZXdheQBSAGEAbABlAHcAYQB5TWVkaXVtAE0AZQBkAGkAdQBtTWF0dE1jSW5lcm5leSxQYWJsb0ltcGFsbGFyaSxSb2RyaWdvRnVlbnphbGlkYTogUmFsZXdheSBNZWRpdW06IDIwMTMATQBhAHQAdABNAGMASQBuAGUAcgBuAGUAeQAsAFAAYQBiAGwAbwBJAG0AcABhAGwAbABhAHIAaQAsAFIAbwBkAHIAaQBnAG8ARgB1AGUAbgB6AGEAbABpAGQAYQA6ACAAUgBhAGwAZQB3AGEAeQAgAE0AZQBkAGkAdQBtADoAIAAyADAAMQAzUmFsZXdheSBNZWRpdW0AUgBhAGwAZQB3AGEAeQAgAE0AZQBkAGkAdQBtVmVyc2lvbiAzLjAwMDsgdHRmYXV0b2hpbnQgKHYwLjk2KSAtbCA4IC1yIDI4IC1HIDI4IC14IDE0IC13ICJHIiAtYwBWAGUAcgBzAGkAbwBuACAAMwAuADAAMAAwADsAIAB0AHQAZgBhAHUAdABvAGgAaQBuAHQAIAAoAHYAMAAuADkANgApACAALQBsACAAOAAgAC0AcgAgADIAOAAgAC0ARwAgADIAOAAgAC0AeAAgADEANAAgAC0AdwAgACIARwAiACAALQBjQUFBQUFCK1JhbGV3YXktTWVkaXVtUmFsZXdheSBpcyBhIHRyYWRlbWFyayBvZiBNYXR0IE1jSW5lcm5leS4AUgBhAGwAZQB3AGEAeQAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAuTWF0dCBNY0luZXJuZXksIFBhYmxvIEltcGFsbGFyaSwgUm9kcmlnbyBGdWVuemFsaWRhAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAsACAAUABhAGIAbABvACAASQBtAHAAYQBsAGwAYQByAGkALAAgAFIAbwBkAHIAaQBnAG8AIABGAHUAZQBuAHoAYQBsAGkAZABhTWF0dCBNY0luZXJuZXksIFBhYmxvIEltcGFsbGFyaSwgUm9kcmlnbyBGdWVuemFsaWRhAE0AYQB0AHQAIABNAGMASQBuAGUAcgBuAGUAeQAsACAAUABhAGIAbABvACAASQBtAHAAYQBsAGwAYQByAGkALAAgAFIAbwBkAHIAaQBnAG8AIABGAHUAZQBuAHoAYQBsAGkAZABhUmFsZXdheSBpcyBhbiBlbGVnYW50IHNhbnMtc2VyaWYgdHlwZWZhY2UgZmFtaWx5LiBJbml0aWFsbHkgZGVzaWduZWQgYnkgTWF0dCBNY0luZXJuZXkgYXMgYSBzaW5nbGUgdGhpbiB3ZWlnaHQsIGl0IHdhcyBleHBhbmRlZCBpbnRvIGEgOSB3ZWlnaHQgZmFtaWx5IGJ5IFBhYmxvIEltcGFsbGFyaSBhbmQgUm9kcmlnbyBGdWVuemFsaWRhIGluIDIwMTIgYW5kIGlLZXJuZWQgYnkgSWdpbm8gTWFyaW5pLiBJdCBpcyBhIGRpc3BsYXkgZmFjZSBhbmQgdGhlIGRvd25sb2FkIGZlYXR1cmVzIGJvdGggb2xkIHN0eWxlIGFuZCBsaW5pbmcgbnVtZXJhbHMsIHN0YW5kYXJkIGFuZCBkaXNjcmV0aW9uYXJ5IGxpZ2F0dXJlcywgYSBwcmV0dHkgY29tcGxldGUgc2V0IG9mIGRpYWNyaXRpY3MsIGFzIHdlbGwgYXMgYSBzdHlsaXN0aWMgYWx0ZXJuYXRlIGluc3BpcmVkIGJ5IG1vcmUgZ2VvbWV0cmljIHNhbnMtc2VyaWYgdHlwZWZhY2VzIHRoYW4gaXRzIG5lby1ncm90ZXNxdWUgaW5zcGlyZWQgZGVmYXVsdCBjaGFyYWN0ZXIgc2V0LgBSAGEAbABlAHcAYQB5ACAAaQBzACAAYQBuACAAZQBsAGUAZwBhAG4AdAAgAHMAYQBuAHMALQBzAGUAcgBpAGYAIAB0AHkAcABlAGYAYQBjAGUAIABmAGEAbQBpAGwAeQAuACAASQBuAGkAdABpAGEAbABsAHkAIABkAGUAcwBpAGcAbgBlAGQAIABiAHkAIABNAGEAdAB0ACAATQBjAEkAbgBlAHIAbgBlAHkAIABhAHMAIABhACAAcwBpAG4AZwBsAGUAIAB0AGgAaQBuACAAdwBlAGkAZwBoAHQALAAgAGkAdAAgAHcAYQBzACAAZQB4AHAAYQBuAGQAZQBkACAAaQBuAHQAbwAgAGEAIAA5ACAAdwBlAGkAZwBoAHQAIABmAGEAbQBpAGwAeQAgAGIAeQAgAFAAYQBiAGwAbwAgAEkAbQBwAGEAbABsAGEAcgBpACAAYQBuAGQAIABSAG8AZAByAGkAZwBvACAARgB1AGUAbgB6AGEAbABpAGQAYQAgAGkAbgAgADIAMAAxADIAIABhAG4AZAAgAGkASwBlAHIAbgBlAGQAIABiAHkAIABJAGcAaQBuAG8AIABNAGEAcgBpAG4AaQAuACAASQB0ACAAaQBzACAAYQAgAGQAaQBzAHAAbABhAHkAIABmAGEAYwBlACAAYQBuAGQAIAB0AGgAZQAgAGQAbwB3AG4AbABvAGEAZAAgAGYAZQBhAHQAdQByAGUAcwAgAGIAbwB0AGgAIABvAGwAZAAgAHMAdAB5AGwAZQAgAGEAbgBkACAAbABpAG4AaQBuAGcAIABuAHUAbQBlAHIAYQBsAHMALAAgAHMAdABhAG4AZABhAHIAZAAgAGEAbgBkACAAZABpAHMAYwByAGUAdABpAG8AbgBhAHIAeQAgAGwAaQBnAGEAdAB1AHIAZQBzACwAIABhACAAcAByAGUAdAB0AHkAIABjAG8AbQBwAGwAZQB0AGUAIABzAGUAdAAgAG8AZgAgAGQAaQBhAGMAcgBpAHQAaQBjAHMALAAgAGEAcwAgAHcAZQBsAGwAIABhAHMAIABhACAAcwB0AHkAbABpAHMAdABpAGMAIABhAGwAdABlAHIAbgBhAHQAZQAgAGkAbgBzAHAAaQByAGUAZAAgAGIAeQAgAG0AbwByAGUAIABnAGUAbwBtAGUAdAByAGkAYwAgAHMAYQBuAHMALQBzAGUAcgBpAGYAIAB0AHkAcABlAGYAYQBjAGUAcwAgAHQAaABhAG4AIABpAHQAcwAgAG4AZQBvAC0AZwByAG8AdABlAHMAcQB1AGUAIABpAG4AcwBwAGkAcgBlAGQAIABkAGUAZgBhAHUAbAB0ACAAYwBoAGEAcgBhAGMAdABlAHIAIABzAGUAdAAuaHR0cDovL3RoZWxlYWd1ZW9mbW92ZWFibGV0eXBlLmNvbQBoAHQAdABwADoALwAvAHQAaABlAGwAZQBhAGcAdQBlAG8AZgBtAG8AdgBlAGEAYgBsAGUAdAB5AHAAZQAuAGMAbwBtaHR0cDovL3BpeGVsc3ByZWFkLmNvbQBoAHQAdABwADoALwAvAHAAaQB4AGUAbABzAHAAcgBlAGEAZAAuAGMAbwBtVGhpcyBGb250IFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBTSUwgT3BlbiBGb250IExpY2Vuc2UsIFZlcnNpb24gMS4xLiBUaGlzIGxpY2Vuc2UgaXMgYXZhaWxhYmxlIHdpdGggYSBGQVEgYXQ6IGh0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4AIABUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGEAdgBhAGkAbABhAGIAbABlACAAdwBpAHQAaAAgAGEAIABGAEEAUQAgAGEAdAA6ACAAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMaHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMUmFsZXdheSBNZWRpdW0AAAABAAAAAwAALOaJUV8PPPUAGQPoAAAAAM5nCfwAAAAAzmhJUP8s/x8FHwOiAAAACQACAAAAAAAAAAMB1gH0AAUAAAK8AooAAACMArwCigAAAd0AMgD6AAACCwYDAwEBBgADoAAC/1AAIFsAAAAAAAAAAHB5cnMAQAAg+wYDrP8WAAADrADqIAAAlwAAAAACCgLGAAAAIAADCmVuZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvQUFBQUFCK1JhbGV3YXktTWVkaXVtCi9Gb250RmlsZTIgMTUgMCBSCi9Gb250QkJveCBbLTIxMiAtMjI1IDEzMTEgOTMwXQovRmxhZ3MgMzIKL1N0ZW1WIDAKL0l0YWxpY0FuZ2xlIDAKL0FzY2VudCA5NDAKL0Rlc2NlbnQgLTIzNAovQ2FwSGVpZ2h0IDcxMAovWEhlaWdodCA1MjIKPj4KZW5kb2JqCjE3IDAgb2JqCjw8Ci9MZW5ndGggNTY4Cj4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8gPDwKICAvUmVnaXN0cnkgKEFkb2JlKQogIC9PcmRlcmluZyAoVUNTKQogIC9TdXBwbGVtZW50IDAKPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMD48ZmY+CmVuZGNvZGVzcGFjZXJhbmdlCjIyIGJlZ2luYmZjaGFyCjwyMT48MDA0OT4KPDIyPjwwMDc0Pgo8MjM+PDAwNjU+CjwyND48MDA2ZD4KPDI1PjwwMDQ0Pgo8MjY+PDAwNzM+CjwyNz48MDA2Mz4KPDI4PjwwMDcyPgo8Mjk+PDAwNjk+CjwyYT48MDA3MD4KPDJiPjwwMDZmPgo8MmM+PDAwNmU+CjwyZD48MDA1NT4KPDJlPjwwMDIwPgo8MmY+PDAwNDM+CjwzMD48MDA1MT4KPDMxPjwwMDc1Pgo8MzI+PDAwNjE+CjwzMz48MDA3OT4KPDM0PjwwMDRjPgo8MzU+PDAwNTQ+CjwzNj48MDA2Yz4KZW5kYmZjaGFyCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCmVuZAplbmQKCmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9BQUFBQUIrUmFsZXdheS1NZWRpdW0KL1N1YnR5cGUgL1RydWVUeXBlCi9Gb250RGVzY3JpcHRvciAxNiAwIFIKL0ZpcnN0Q2hhciAzMwovTGFzdENoYXIgNTQKL1dpZHRocyBbMjYwIDM1MiA1OTEgOTI0IDcxNiA0OTQgNTU0IDM2MyAyMzAgNjIzIDU5OSA1OTAgNzU1IDI1MyA2ODIgNzQ2IDYwMSA1NTQgNTQ1IDU4NCA2MTQgMjg2XQovRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKL1RvVW5pY29kZSAxNyAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cKL1BhZ2VzIDEgMCBSCj4+CmVuZG9iagoxIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovQ291bnQgMQovS2lkcyBbNSAwIFJdCj4+CmVuZG9iagoxOCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvSW1hZ2UKL0hlaWdodCAxCi9XaWR0aCAxCi9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKL0RlY29kZSBbMCAxXQovTGVuZ3RoIDkKPj4Kc3RyZWFtCnicYwAAAAEAAQplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0ltYWdlCi9CaXRzUGVyQ29tcG9uZW50IDgKL1dpZHRoIDEKL0hlaWdodCAxCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9Db2xvclNwYWNlIC9EZXZpY2VHcmF5Ci9TTWFzayAxOCAwIFIKL0xlbmd0aCA5Cj4+CnN0cmVhbQp4nGMAAAABAAEKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgMTkKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDMzOTUwIDAwMDAwIG4gCjAwMDAwMzM5MDEgMDAwMDAgbiAKMDAwMDAwMDM3NyAwMDAwMCBuIAowMDAwMDAwMjEzIDAwMDAwIG4gCjAwMDAwMDAxMDMgMDAwMDAgbiAKMDAwMDAzNDE5NSAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAyNDU5NCAwMDAwMCBuIAowMDAwMDMzNjIxIDAwMDAwIG4gCjAwMDAwMTA0NDUgMDAwMDAgbiAKMDAwMDAxMDU0MCAwMDAwMCBuIAowMDAwMDIzNDUzIDAwMDAwIG4gCjAwMDAwMjM2NjYgMDAwMDAgbiAKMDAwMDAyNDk4NCAwMDAwMCBuIAowMDAwMDMyNzg3IDAwMDAwIG4gCjAwMDAwMzMwMDEgMDAwMDAgbiAKMDAwMDAzNDAwNyAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDE5Ci9Sb290IDIgMCBSCi9JbmZvIDExIDAgUgo+PgpzdGFydHhyZWYKMzQzODIKJSVFT0YK", - "type": "message/pdf", - "name": "bear.jpg", -}'; - - $opts = [ - CURLOPT_URL => $url, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_POST => 'POST', - CURLOPT_POSTFIELDS => $message, - CURLOPT_HTTPHEADER => [ - 'Authorization: Bearer ' . $token, - ], - ]; - - curl_setopt_array($curl, $opts); - $response = curl_exec($curl); - curl_close($curl); + $data = '{ eTag: "*", data: "' . addslashes(json_encode($data)) . '" }'; + var_dump($data); + $response = CurlUtils::post($url, $data, $headers); var_dump($response); - */ + } + private function sendResponse($token, $to, $message) + { $url = sprintf('%s/conversations/%s/activities/', SKYPE_API_URL, $to); - $opts = [ - CURLOPT_URL => $url, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_POST => 'POST', - CURLOPT_POSTFIELDS => $message, - CURLOPT_HTTPHEADER => [ - 'Authorization: Bearer ' . $token, - ], + $headers = [ + 'Authorization: Bearer ' . $token, ]; - curl_setopt_array($curl, $opts); - $response = curl_exec($curl); - curl_close($curl); + $response = CurlUtils::post($url, $message, $headers); var_dump($response); - } } diff --git a/app/Http/routes.php b/app/Http/routes.php index 95e7867414e4..549cdbf3cd78 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -627,9 +627,11 @@ if (!defined('CONTACT_EMAIL')) { define('EMAIL_MARKUP_URL', env('EMAIL_MARKUP_URL', 'https://developers.google.com/gmail/markup')); define('OFX_HOME_URL', env('OFX_HOME_URL', 'http://www.ofxhome.com/index.php/home/directory/all')); define('GOOGLE_ANALYITCS_URL', env('GOOGLE_ANALYITCS_URL', 'https://www.google-analytics.com/collect')); + define('MSBOT_LOGIN_URL', 'https://login.microsoftonline.com/common/oauth2/v2.0/token'); define('MSBOT_LUIS_URL', 'https://api.projectoxford.ai/luis/v1/application'); define('SKYPE_API_URL', 'https://apis.skype.com/v3'); + define('MSBOT_STATE_URL', 'https://state.botframework.com/v3'); define('BLANK_IMAGE', 'data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs='); diff --git a/app/Libraries/CurlUtils.php b/app/Libraries/CurlUtils.php new file mode 100644 index 000000000000..8a74b3e053da --- /dev/null +++ b/app/Libraries/CurlUtils.php @@ -0,0 +1,36 @@ + $url, + CURLOPT_RETURNTRANSFER => true, + CURLOPT_POST => $method, + CURLOPT_HTTPHEADER => $headers ?: [], + ]; + + if ($data) { + $opts[CURLOPT_POSTFIELDS] = $data; + } + + curl_setopt_array($curl, $opts); + $response = curl_exec($curl); + curl_close($curl); + + return $response; + } +} diff --git a/app/Models/EntityModel.php b/app/Models/EntityModel.php index 4a98ef817e6d..fb6dffd793af 100644 --- a/app/Models/EntityModel.php +++ b/app/Models/EntityModel.php @@ -3,6 +3,7 @@ use Auth; use Eloquent; use Utils; +use Validator; /** * Class EntityModel @@ -86,6 +87,11 @@ class EntityModel extends Eloquent return '[' . $this->getEntityType().':'.$this->public_id.':'.$this->getDisplayName() . ']'; } + public function entityKey() + { + return $this->public_id . ':' . $this->getEntityType(); + } + /* public function getEntityType() { @@ -190,4 +196,35 @@ class EntityModel extends Eloquent $name = $parts[count($parts)-1]; return strtolower($name) . '_id'; } + + /** + * @param $data + * @param $entityType + * @return bool|string + */ + public static function validate($data, $entityType, $action = 'create') + { + // Use the API request if it exists + $requestClass = sprintf('App\\Http\\Requests\\%s%sAPIRequest', ucwords($action), ucwords($entityType)); + if ( ! class_exists($requestClass)) { + $requestClass = sprintf('App\\Http\\Requests\\%s%sRequest', ucwords($action), ucwords($entityType)); + } + + $request = new $requestClass(); + $request->setUserResolver(function() { return Auth::user(); }); + $request->replace($data); + + if ( ! $request->authorize()) { + return trans('texts.not_allowed'); + } + + $validator = Validator::make($data, $request->rules()); + + if ($validator->fails()) { + return $validator->messages()->first(); + } else { + return true; + } + } + } diff --git a/app/Ninja/Intents/BaseIntent.php b/app/Ninja/Intents/BaseIntent.php index 95362ec36474..46a7f56ad55f 100644 --- a/app/Ninja/Intents/BaseIntent.php +++ b/app/Ninja/Intents/BaseIntent.php @@ -1,17 +1,21 @@ state = $state ?: new stdClass; $this->data = $data; } - public static function createIntent($data) + public static function createIntent($state, $data) { if ( ! count($data->intents)) { throw new Exception(trans('texts.intent_not_found')); @@ -19,14 +23,14 @@ class BaseIntent $intent = $data->intents[0]; $intentType = $intent->intent; - + $className = "App\\Ninja\\Intents\\{$intentType}Intent"; if ( ! class_exists($className)) { throw new Exception(trans('texts.intent_not_supported')); } - return (new $className($data)); + return (new $className($state, $data)); } public function process() @@ -34,4 +38,62 @@ class BaseIntent // do nothing by default } + public function addState($entities) + { + var_dump($this->state); + if (isset($this->state->current)) { + $this->state->previous = $this->state->current; + } + + + $this->state->current = $entities; + } + + public function getState() + { + return $this->state; + } + + protected function parseClient() + { + $clientRepo = app('App\Ninja\Repositories\ClientRepository'); + + $client = false; + + foreach ($this->data->entities as $param) { + if ($param->type == 'Client') { + $client = $clientRepo->findPhonetically($param->entity); + } + } + + return $client; + } + + protected function parseInvoiceItems() + { + $productRepo = app('App\Ninja\Repositories\ProductRepository'); + + $invoiceItems = []; + + foreach ($this->data->compositeEntities as $entity) { + if ($entity->parentType == 'InvoiceItem') { + $product = false; + $qty = 1; + foreach ($entity->children as $child) { + if ($child->type == 'Product') { + $product = $productRepo->findPhonetically($child->value); + } else { + $qty = $child->value; + } + } + + $item = $product->toArray(); + $item['qty'] = $qty; + $invoiceItems[] = $item; + } + } + + return $invoiceItems; + } + } diff --git a/app/Ninja/Intents/CreateInvoiceIntent.php b/app/Ninja/Intents/CreateInvoiceIntent.php index f380a2b78959..603f60fe0d65 100644 --- a/app/Ninja/Intents/CreateInvoiceIntent.php +++ b/app/Ninja/Intents/CreateInvoiceIntent.php @@ -1,5 +1,7 @@ parseClient(); $invoiceItems = $this->parseInvoiceItems(); - if ($client) { - $data = [ - 'client_id' => $client->id, - 'invoice_items' => $invoiceItems, - ]; - - $invoice = $invoiceRepo->save($data); - - return view('bots.skype.invoice', [ - 'invoice' => $invoice - ])->render(); - } else { + if ( ! $client) { return view('bots.skype.message', [ 'message' => trans('texts.client_not_found') ])->render(); } - } - private function parseClient() - { - $clientRepo = app('App\Ninja\Repositories\ClientRepository'); + $data = [ + 'client_id' => $client->id, + 'invoice_items' => $invoiceItems, + ]; - $client = false; + $valid = EntityModel::validate($data, ENTITY_INVOICE); - foreach ($this->data->entities as $param) { - if ($param->type == 'Client') { - $client = $clientRepo->findPhonetically($param->entity); - } + if ($valid !== true) { + return view('bots.skype.message', [ + 'message' => $valid + ])->render(); } - return $client; + $invoice = $invoiceRepo->save($data); + + $this->addState([$invoice->entityKey()]); + + return view('bots.skype.invoice', [ + 'invoice' => $invoice + ])->render(); } - - private function parseInvoiceItems() - { - $productRepo = app('App\Ninja\Repositories\ProductRepository'); - - $invoiceItems = []; - - foreach ($this->data->compositeEntities as $entity) { - if ($entity->parentType == 'InvoiceItem') { - $product = false; - $qty = 1; - foreach ($entity->children as $child) { - if ($child->type == 'Product') { - $product = $productRepo->findPhonetically($child->value); - } else { - $qty = $child->value; - } - } - - $item = $product->toArray(); - $item['qty'] = $qty; - $invoiceItems[] = $item; - } - } - - return $invoiceItems; - } - } diff --git a/app/Ninja/Presenters/ClientPresenter.php b/app/Ninja/Presenters/ClientPresenter.php index 44efc207017b..43aca8ba5302 100644 --- a/app/Ninja/Presenters/ClientPresenter.php +++ b/app/Ninja/Presenters/ClientPresenter.php @@ -8,6 +8,22 @@ class ClientPresenter extends EntityPresenter { return $this->entity->country ? $this->entity->country->name : ''; } + public function balance() + { + $client = $this->entity; + $account = $client->account; + + return $account->formatMoney($client->balance, $client); + } + + public function paid_to_date() + { + $client = $this->entity; + $account = $client->account; + + return $account->formatMoney($client->paid_to_date, $client); + } + public function status() { $class = $text = ''; diff --git a/app/Services/ImportService.php b/app/Services/ImportService.php index 9872066bdb6d..2bf85688460a 100644 --- a/app/Services/ImportService.php +++ b/app/Services/ImportService.php @@ -9,7 +9,6 @@ use Auth; use Utils; use parsecsv; use Session; -use Validator; use League\Fractal\Manager; use App\Ninja\Repositories\ContactRepository; use App\Ninja\Repositories\ClientRepository; @@ -141,7 +140,7 @@ class ImportService foreach ($json['clients'] as $jsonClient) { - if ($this->validate($jsonClient, ENTITY_CLIENT) === true) { + if (EntityModel::validate($jsonClient, ENTITY_CLIENT) === true) { $client = $this->clientRepo->save($jsonClient); $this->addSuccess($client); } else { @@ -151,7 +150,7 @@ class ImportService foreach ($jsonClient['invoices'] as $jsonInvoice) { $jsonInvoice['client_id'] = $client->id; - if ($this->validate($jsonInvoice, ENTITY_INVOICE) === true) { + if (EntityModel::validate($jsonInvoice, ENTITY_INVOICE) === true) { $invoice = $this->invoiceRepo->save($jsonInvoice); $this->addSuccess($invoice); } else { @@ -162,7 +161,7 @@ class ImportService foreach ($jsonInvoice['payments'] as $jsonPayment) { $jsonPayment['client_id'] = $jsonPayment['client'] = $client->id; // TODO: change to client_id once views are updated $jsonPayment['invoice_id'] = $jsonPayment['invoice'] = $invoice->id; // TODO: change to invoice_id once views are updated - if ($this->validate($jsonPayment, ENTITY_PAYMENT) === true) { + if (EntityModel::validate($jsonPayment, ENTITY_PAYMENT) === true) { $payment = $this->paymentRepo->save($jsonPayment); $this->addSuccess($payment); } else { @@ -280,7 +279,7 @@ class ImportService $data['invoice_number'] = $account->getNextInvoiceNumber($invoice); } - if ($this->validate($data, $entityType) !== true) { + if (EntityModel::validate($data, $entityType) !== true) { return false; } @@ -396,26 +395,6 @@ class ImportService } } - /** - * @param $data - * @param $entityType - * @return bool|string - */ - private function validate($data, $entityType) - { - $requestClass = 'App\\Http\\Requests\\Create' . ucwords($entityType) . 'Request'; - $request = new $requestClass(); - $request->setUserResolver(function() { return Auth::user(); }); - $request->replace($data); - - $validator = Validator::make($data, $request->rules()); - - if ($validator->fails()) { - return $validator->messages()->first(); - } else { - return true; - } - } /** * @param array $files diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index f928a063108d..ac613dda096b 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -2055,6 +2055,7 @@ $LANG = array( 'intent_not_found' => 'Sorry, I\'m not sure what you\'re asking.', 'intent_not_supported' => 'Sorry, I\'m not able to do that.', 'client_not_found' => 'We weren\'t able to find the client', + 'not_allowed' => 'Sorry, you don\'t have the needed permissions', ); diff --git a/resources/views/bots/skype/invoice.blade.php b/resources/views/bots/skype/invoice.blade.php index 5f2f7daa4416..6b5856ac2b51 100644 --- a/resources/views/bots/skype/invoice.blade.php +++ b/resources/views/bots/skype/invoice.blade.php @@ -8,6 +8,20 @@ 'invoice' => link_to($invoice->getRoute(), $invoice->invoice_number), 'client' => link_to($invoice->client->getRoute(), $invoice->client->getDisplayName()) ]) !!}', + "facts": [ + { + "key": "{{ trans('texts.email') }}:", + "value": "{!! addslashes(HTML::mailto($invoice->client->contacts[0]->email)->toHtml()) !!}" + }, + { + "key": "{{ trans('texts.paid_to_date') }}:", + "value": "{{ $invoice->client->present()->paid_to_date }}" + }, + { + "key": "{{ trans('texts.balance') }}:", + "value": "{{ $invoice->client->present()->balance }}" + } + ], "items":[ @foreach ($invoice->invoice_items as $item) @if ($invoice->invoice_items[0] != $item)