diff --git a/.gitignore b/.gitignore
index f712bc5..92fdfa2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
# ---> Composer
composer.phar
/vendor/
+.env
+/install/
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..3be8a57
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,15 @@
+# Development security
+# Protect .git, .env files
+
+ Order deny,allow
+ Deny From All
+
+
+# Clouddesk URL Support
+RewriteEngine ON
+
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule . index.php [L]
+
+ErrorDocument 404 /404/
diff --git a/404.php b/404.php
new file mode 100644
index 0000000..d251624
--- /dev/null
+++ b/404.php
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_showfile.php b/_showfile.php
new file mode 100644
index 0000000..4d05cf9
--- /dev/null
+++ b/_showfile.php
@@ -0,0 +1,18 @@
+
diff --git a/api.php b/api.php
new file mode 100644
index 0000000..bf43c85
--- /dev/null
+++ b/api.php
@@ -0,0 +1,324 @@
+get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['email']]);
+
+ if ($row) {
+
+ if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit();
+
+ // Ok we update the credits
+ if (JAK_BILLING_MODE == 1 && isset($jkp["credits"]) && !empty($jkp["credits"]) && $jkp["credits"] != 0) {
+
+ $jakdb->update($jaktable, ["credits[+]" => $jkp["credits"]], ["id" => $row["id"]]);
+
+ }
+
+ // We update the membership access
+ if (JAK_BILLING_MODE == 2 && isset($jkp["valid"]) && !empty($jkp["valid"])) {
+ // Get the new date
+ if (strtotime($row["paid_until"]) > time()) {
+ $paidunix = strtotime($jkp["valid"], strtotime($row["paid_until"]));
+ } else {
+ $paidunix = strtotime($jkp["valid"]);
+ }
+ $paidtill = date('Y-m-d', $paidunix);
+ $jakdb->update($jaktable, ["paid_until" => $paidtill], ["id" => $row["id"]]);
+ }
+
+ // Update the password
+ if (isset($jkp["pass"]) && !empty($jkp["pass"])) {
+ $jakdb->update($jaktable, ["password" => $jkp['pass']], ["id" => $row["id"]]);
+ }
+
+ // Update the chat departments if set so
+ if (isset($jkp["chatdep"]) && !empty($jkp["chatdep"])) {
+ $jakdb->update($jaktable, ["chat_dep" => $jkp['chatdep']], ["id" => $row["id"]]);
+ }
+
+ // Update the support departments if set so
+ if (isset($jkp["supportdep"]) && !empty($jkp["supportdep"])) {
+ $jakdb->update($jaktable, ["support_dep" => $jkp['supportdep']], ["id" => $row["id"]]);
+ }
+
+ // Update the faq categories if set so
+ if (isset($jkp["faqcat"]) && !empty($jkp["faqcat"])) {
+ $jakdb->update($jaktable, ["faq_cat" => $jkp['faqcat']], ["id" => $row["id"]]);
+ }
+
+ // Finally we update the rest
+ $jakdb->update($jaktable, ["name" => $jkp['name'], "email" => $jkp['email']], ["id" => $row["id"]]);
+
+ } else {
+
+ if (empty($jkp['name'])) {
+ $errors['e'] = $jkl['e'];
+ }
+
+ if (JAK_EMAIL_BLOCK) {
+ $blockede = explode(',', JAK_EMAIL_BLOCK);
+ if (in_array($jkp['email'], $blockede) || in_array(strrchr($jkp['email'], "@"), $blockede)) {
+ $errors['e1'] = $jkl['e10'];
+ }
+ }
+
+ if ($jkp['email'] == '' || !filter_var($jkp['email'], FILTER_VALIDATE_EMAIL)) {
+ $errors['e2'] = $jkl['e1'];
+ }
+
+ if (jak_field_not_exist(strtolower($jkp['email']),$jaktable,$jakfield)) {
+ $errors['e3'] = $jkl['hd35'];
+ }
+
+ if (count($errors) == 0) {
+
+ // We have no errors we insert the user
+
+ // create new password
+ if ($jkp["pass"]) {
+ $password = $jkl['hd58'];
+ $passcrypt = $jkp["pass"];
+ } else {
+ $password = jak_password_creator();
+ $passcrypt = hash_hmac('sha256', $password, DB_PASS_HASH);
+ }
+
+ $result = $jakdb->insert($jaktable, [
+ "opid" => filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT),
+ "chat_dep" => ($jkp["chatdep"] ? $jkp["chatdep"] : JAK_STANDARD_CHAT_DEP),
+ "support_dep" => ($jkp["supportdep"] ? $jkp["supportdep"] : JAK_STANDARD_SUPPORT_DEP),
+ "faq_cat" => ($jkp["faqcat"] ? $jkp["faqcat"] : JAK_STANDARD_FAQ_CAT),
+ "name" => filter_var($jkp["name"], FILTER_SANITIZE_FULL_SPECIAL_CHARS),
+ "email" => filter_var($jkp["email"], FILTER_SANITIZE_EMAIL),
+ "password" => $passcrypt,
+ "credits" => ($jkp["credits"] ? $jkp["credits"] : 0),
+ "paid_until" => ($jkp["valid"] ? $jkp["valid"] : "1980-05-06"),
+ "canupload" => 1,
+ "access" => 1,
+ "time" => $jakdb->raw("NOW()")]);
+
+ $uid = $jakdb->id();
+
+ // Get the email template
+ $nlhtml = file_get_contents(APP_PATH.'template/'.JAK_FRONT_TEMPLATE.'/email/index.html');
+
+ if (!$result) {
+
+ // We will need to inform the operator if set so
+ if (JAK_TICKET_INFORM_R) {
+
+ // Change fake vars into real ones.
+ $cssAtt = array('{emailcontent}', '{weburl}', '{title}', '{emailtpllogo}', '{emailtplcopy}');
+ $cssUrl = array("There has been an error when creating following user: ".$jkp['email'], BASE_URL, JAK_TITLE, JAK_EMAILTPLLOGO, JAK_EMAILTPLCOPY);
+ $nlcontent = str_replace($cssAtt, $cssUrl, $nlhtml);
+
+ $body = str_ireplace("[\]", "", $nlcontent);
+
+ // We need the reply to the department
+ $emailreply = "";
+ if (isset($HD_SUPPORT_DEPARTMENTS) && is_array($HD_SUPPORT_DEPARTMENTS)) foreach ($HD_SUPPORT_DEPARTMENTS as $v) {
+
+ if ($v["id"] == $accounts["depid"]) {
+ if ($v["email"]) $emailreply = $v["email"];
+ }
+
+ }
+
+ // Ok, we send the email // email address, cc email address, reply to, subject, message, attachment
+ jak_send_email($semail, explode(',', JAK_EMAILCC), $emailreply, JAK_TITLE.' - API Error', $body, "");
+
+ }
+
+ } else {
+
+ $newuserpath = APP_PATH.JAK_FILES_DIRECTORY.'/clients/'.$uid;
+
+ if (!is_dir($newuserpath)) {
+ mkdir($newuserpath, 0755);
+ copy(APP_PATH.JAK_FILES_DIRECTORY."/index.html", $newuserpath."/index.html");
+ }
+
+ // Change fake vars into real ones.
+ if (!empty($HD_ANSWERS) && is_array($HD_ANSWERS)) foreach ($HD_ANSWERS as $v) {
+ if ($v["msgtype"] == 14 && $v["lang"] == JAK_LANG) {
+ $phold = array('{url}', '{title}', '{cname}', '{cemail}', '{cpassword}', '{email}');
+ $replace = array(BASE_URL, JAK_TITLE, $jkp['name'], $jkp['email'], $password, JAK_EMAIL);
+ $regtext = str_replace($phold, $replace, $v["message"]);
+ break;
+ }
+ }
+
+ // Change fake vars into real ones.
+ $cssAtt = array('{emailcontent}', '{weburl}', '{title}', '{emailtpllogo}', '{emailtplcopy}');
+ $cssUrl = array($regtext, BASE_URL, JAK_TITLE, JAK_EMAILTPLLOGO, JAK_EMAILTPLCOPY);
+ $nlcontent = str_replace($cssAtt, $cssUrl, $nlhtml);
+
+ $body = str_ireplace("[\]", "", $nlcontent);
+
+ // Ok, we send the email // email address, cc email address, reply to, subject, message, attachment
+ jak_send_email($jkp['email'], "", "", JAK_TITLE.' - '.$jkl['hd33'], $body, "");
+
+ }
+ }
+ }
+
+ exit();
+
+ break;
+
+ case 'update':
+
+ // Collect the information from the old email address
+ $row = $jakdb->get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['oldemail']]);
+
+ if ($row) {
+
+ if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit();
+
+ // Ok we update the credits
+ if (JAK_BILLING_MODE == 1 && isset($jkp["credits"]) && !empty($jkp["credits"]) && $jkp["credits"] != 0) {
+
+ $jakdb->update($jaktable, ["credits[+]" => $jkp["credits"]], ["id" => $row["id"]]);
+
+ }
+
+ // We update the membership access
+ if (JAK_BILLING_MODE == 2 && isset($jkp["valid"]) && !empty($jkp["valid"])) {
+ // Get the new date
+ if (strtotime($row["paid_until"]) > time()) {
+ $paidunix = strtotime($jkp["valid"], strtotime($row["paid_until"]));
+ } else {
+ $paidunix = strtotime($jkp["valid"]);
+ }
+ $paidtill = date('Y-m-d', $paidunix);
+ $jakdb->update($jaktable, ["paid_until" => $paidtill], ["id" => $row["id"]]);
+
+ }
+
+ // Update the password
+ if (isset($jkp["pass"]) && !empty($jkp["pass"])) {
+ $jakdb->update($jaktable, ["password" => $jkp['pass']], ["id" => $row["id"]]);
+ }
+
+ // Update the chat departments if set so
+ if (isset($jkp["chatdep"]) && !empty($jkp["chatdep"])) {
+ $jakdb->update($jaktable, ["chat_dep" => $jkp['chatdep']], ["id" => $row["id"]]);
+ }
+
+ // Update the support departments if set so
+ if (isset($jkp["supportdep"]) && !empty($jkp["supportdep"])) {
+ $jakdb->update($jaktable, ["support_dep" => $jkp['supportdep']], ["id" => $row["id"]]);
+ }
+
+ // Update the faq categories if set so
+ if (isset($jkp["faqcat"]) && !empty($jkp["faqcat"])) {
+ $jakdb->update($jaktable, ["faq_cat" => $jkp['faqcat']], ["id" => $row["id"]]);
+ }
+
+ // Finally we update the rest
+ $jakdb->update($jaktable, ["name" => $jkp['name'], "email" => $jkp['email']], ["id" => $row["id"]]);
+
+ }
+
+ exit();
+
+ break;
+
+ case 'delete':
+
+ $row = $jakdb->get($jaktable, ["id", "opid", "chat_dep", "support_dep", "faq_cat", "paid_until"], ["email" => $jkp['email']]);
+
+ if ($row) {
+
+ if ($row["opid"] != filter_var($jkp["mainopid"], FILTER_SANITIZE_NUMBER_INT)) exit();
+
+ $jakdb->delete($jaktable, ["id" => $row["id"]]);
+
+ // Delete Avatar and folder
+ $targetPath = APP_PATH.JAK_FILES_DIRECTORY.'/clients/'.$row["id"].'/';
+ $removedouble = str_replace("//","/",$targetPath);
+ foreach(glob($removedouble.'*.*') as $jak_unlink) {
+
+ @unlink($jak_unlink);
+
+ @unlink($targetPath);
+
+ }
+
+ // Find tickets from this user and set to 0
+ $jakdb->update($jaktable1, ["clientid" => 0], ["clientid" => $row["id"]]);
+ $jakdb->update($jaktable2, ["clientid" => 0], ["clientid" => $row["id"]]);
+
+ }
+
+ exit();
+
+ break;
+
+ default:
+
+ // We could print an error here
+
+ exit();
+
+ }
+
+
+ } else {
+ // Wrong api key we can print an error here
+ }
+
+
+} else {
+ // Some access to the api but it failed
+}
+?>
diff --git a/cache/index.html b/cache/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/class/class.browser.php b/class/class.browser.php
new file mode 100644
index 0000000..519a6c6
--- /dev/null
+++ b/class/class.browser.php
@@ -0,0 +1,1842 @@
+getBrowser() == Browser::BROWSER_FIREFOX && $browser->getVersion() >= 2 ) {
+ * echo 'You have FireFox version 2 or greater';
+ * }
+ *
+ * User Agents Sampled from: http://www.useragentstring.com/
+ *
+ * This implementation is based on the original work from Gary White
+ * http://apptools.com/phptools/browser/
+ *
+ */
+class Browser
+{
+ private $_agent = '';
+ private $_browser_name = '';
+ private $_version = '';
+ private $_platform = '';
+ private $_os = '';
+ private $_is_aol = false;
+ private $_is_mobile = false;
+ private $_is_tablet = false;
+ private $_is_robot = false;
+ private $_is_facebook = false;
+ private $_aol_version = '';
+
+ const BROWSER_UNKNOWN = 'unknown';
+ const VERSION_UNKNOWN = 'unknown';
+
+ const BROWSER_OPERA = 'Opera'; // http://www.opera.com/
+ const BROWSER_OPERA_MINI = 'Opera Mini'; // http://www.opera.com/mini/
+ const BROWSER_WEBTV = 'WebTV'; // http://www.webtv.net/pc/
+ const BROWSER_EDGE = 'Edge'; // https://www.microsoft.com/edge
+ const BROWSER_IE = 'Internet Explorer'; // http://www.microsoft.com/ie/
+ const BROWSER_POCKET_IE = 'Pocket Internet Explorer'; // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
+ const BROWSER_KONQUEROR = 'Konqueror'; // http://www.konqueror.org/
+ const BROWSER_ICAB = 'iCab'; // http://www.icab.de/
+ const BROWSER_OMNIWEB = 'OmniWeb'; // http://www.omnigroup.com/applications/omniweb/
+ const BROWSER_FIREBIRD = 'Firebird'; // http://www.ibphoenix.com/
+ const BROWSER_FIREFOX = 'Firefox'; // https://www.mozilla.org/en-US/firefox/
+ const BROWSER_BRAVE = 'Brave'; // https://brave.com/
+ const BROWSER_PALEMOON = 'Palemoon'; // https://www.palemoon.org/
+ const BROWSER_ICEWEASEL = 'Iceweasel'; // http://www.geticeweasel.org/
+ const BROWSER_SHIRETOKO = 'Shiretoko'; // http://wiki.mozilla.org/Projects/shiretoko
+ const BROWSER_MOZILLA = 'Mozilla'; // http://www.mozilla.com/en-US/
+ const BROWSER_AMAYA = 'Amaya'; // http://www.w3.org/Amaya/
+ const BROWSER_LYNX = 'Lynx'; // http://en.wikipedia.org/wiki/Lynx
+ const BROWSER_SAFARI = 'Safari'; // http://apple.com
+ const BROWSER_IPHONE = 'iPhone'; // http://apple.com
+ const BROWSER_IPOD = 'iPod'; // http://apple.com
+ const BROWSER_IPAD = 'iPad'; // http://apple.com
+ const BROWSER_CHROME = 'Chrome'; // http://www.google.com/chrome
+ const BROWSER_ANDROID = 'Android'; // http://www.android.com/
+ const BROWSER_GOOGLEBOT = 'GoogleBot'; // http://en.wikipedia.org/wiki/Googlebot
+ const BROWSER_CURL = 'cURL'; // https://en.wikipedia.org/wiki/CURL
+ const BROWSER_WGET = 'Wget'; // https://en.wikipedia.org/wiki/Wget
+ const BROWSER_UCBROWSER = 'UCBrowser'; // https://www.ucweb.com/
+
+
+ const BROWSER_YANDEXBOT = 'YandexBot'; // http://yandex.com/bots
+ const BROWSER_YANDEXIMAGERESIZER_BOT = 'YandexImageResizer'; // http://yandex.com/bots
+ const BROWSER_YANDEXIMAGES_BOT = 'YandexImages'; // http://yandex.com/bots
+ const BROWSER_YANDEXVIDEO_BOT = 'YandexVideo'; // http://yandex.com/bots
+ const BROWSER_YANDEXMEDIA_BOT = 'YandexMedia'; // http://yandex.com/bots
+ const BROWSER_YANDEXBLOGS_BOT = 'YandexBlogs'; // http://yandex.com/bots
+ const BROWSER_YANDEXFAVICONS_BOT = 'YandexFavicons'; // http://yandex.com/bots
+ const BROWSER_YANDEXWEBMASTER_BOT = 'YandexWebmaster'; // http://yandex.com/bots
+ const BROWSER_YANDEXDIRECT_BOT = 'YandexDirect'; // http://yandex.com/bots
+ const BROWSER_YANDEXMETRIKA_BOT = 'YandexMetrika'; // http://yandex.com/bots
+ const BROWSER_YANDEXNEWS_BOT = 'YandexNews'; // http://yandex.com/bots
+ const BROWSER_YANDEXCATALOG_BOT = 'YandexCatalog'; // http://yandex.com/bots
+
+ const BROWSER_SLURP = 'Yahoo! Slurp'; // http://en.wikipedia.org/wiki/Yahoo!_Slurp
+ const BROWSER_W3CVALIDATOR = 'W3C Validator'; // http://validator.w3.org/
+ const BROWSER_BLACKBERRY = 'BlackBerry'; // http://www.blackberry.com/
+ const BROWSER_ICECAT = 'IceCat'; // http://en.wikipedia.org/wiki/GNU_IceCat
+ const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser'; // http://en.wikipedia.org/wiki/Web_Browser_for_S60
+ const BROWSER_NOKIA = 'Nokia Browser'; // * all other WAP-based browsers on the Nokia Platform
+ const BROWSER_MSN = 'MSN Browser'; // http://explorer.msn.com/
+ const BROWSER_MSNBOT = 'MSN Bot'; // http://search.msn.com/msnbot.htm
+ const BROWSER_BINGBOT = 'Bing Bot'; // http://en.wikipedia.org/wiki/Bingbot
+ const BROWSER_VIVALDI = 'Vivaldi'; // https://vivaldi.com/
+ const BROWSER_YANDEX = 'Yandex'; // https://browser.yandex.ua/
+
+ const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator'; // http://browser.netscape.com/ (DEPRECATED)
+ const BROWSER_GALEON = 'Galeon'; // http://galeon.sourceforge.net/ (DEPRECATED)
+ const BROWSER_NETPOSITIVE = 'NetPositive'; // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
+ const BROWSER_PHOENIX = 'Phoenix'; // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
+ const BROWSER_PLAYSTATION = "PlayStation";
+ const BROWSER_SAMSUNG = "SamsungBrowser";
+ const BROWSER_SILK = "Silk";
+ const BROWSER_I_FRAME = "Iframely";
+ const BROWSER_COCOA = "CocoaRestClient";
+
+ const PLATFORM_UNKNOWN = 'unknown';
+ const PLATFORM_WINDOWS = 'Windows';
+ const PLATFORM_WINDOWS_CE = 'Windows CE';
+ const PLATFORM_APPLE = 'Apple';
+ const PLATFORM_LINUX = 'Linux';
+ const PLATFORM_OS2 = 'OS/2';
+ const PLATFORM_BEOS = 'BeOS';
+ const PLATFORM_IPHONE = 'iPhone';
+ const PLATFORM_IPOD = 'iPod';
+ const PLATFORM_IPAD = 'iPad';
+ const PLATFORM_BLACKBERRY = 'BlackBerry';
+ const PLATFORM_NOKIA = 'Nokia';
+ const PLATFORM_FREEBSD = 'FreeBSD';
+ const PLATFORM_OPENBSD = 'OpenBSD';
+ const PLATFORM_NETBSD = 'NetBSD';
+ const PLATFORM_SUNOS = 'SunOS';
+ const PLATFORM_OPENSOLARIS = 'OpenSolaris';
+ const PLATFORM_ANDROID = 'Android';
+ const PLATFORM_PLAYSTATION = "Sony PlayStation";
+ const PLATFORM_ROKU = "Roku";
+ const PLATFORM_APPLE_TV = "Apple TV";
+ const PLATFORM_TERMINAL = "Terminal";
+ const PLATFORM_FIRE_OS = "Fire OS";
+ const PLATFORM_SMART_TV = "SMART-TV";
+ const PLATFORM_CHROME_OS = "Chrome OS";
+ const PLATFORM_JAVA_ANDROID = "Java/Android";
+ const PLATFORM_POSTMAN = "Postman";
+ const PLATFORM_I_FRAME = "Iframely";
+
+ const OPERATING_SYSTEM_UNKNOWN = 'unknown';
+
+ /**
+ * Class constructor
+ * @param string $userAgent
+ */
+ public function __construct($userAgent = '')
+ {
+ if ($userAgent != '') {
+ $this->setUserAgent($userAgent);
+ } else {
+ $this->reset();
+ $this->determine();
+ }
+ }
+
+ /**
+ * Reset all properties
+ */
+ public function reset()
+ {
+ $this->_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
+ $this->_browser_name = self::BROWSER_UNKNOWN;
+ $this->_version = self::VERSION_UNKNOWN;
+ $this->_platform = self::PLATFORM_UNKNOWN;
+ $this->_os = self::OPERATING_SYSTEM_UNKNOWN;
+ $this->_is_aol = false;
+ $this->_is_mobile = false;
+ $this->_is_tablet = false;
+ $this->_is_robot = false;
+ $this->_is_facebook = false;
+ $this->_aol_version = self::VERSION_UNKNOWN;
+ }
+
+ /**
+ * Check to see if the specific browser is valid
+ * @param string $browserName
+ * @return bool True if the browser is the specified browser
+ */
+ function isBrowser($browserName)
+ {
+ return (0 == strcasecmp($this->_browser_name, trim($browserName)));
+ }
+
+ /**
+ * The name of the browser. All return types are from the class contants
+ * @return string Name of the browser
+ */
+ public function getBrowser()
+ {
+ return $this->_browser_name;
+ }
+
+ /**
+ * Set the name of the browser
+ * @param $browser string The name of the Browser
+ */
+ public function setBrowser($browser)
+ {
+ $this->_browser_name = $browser;
+ }
+
+ /**
+ * The name of the platform. All return types are from the class contants
+ * @return string Name of the browser
+ */
+ public function getPlatform()
+ {
+ return $this->_platform;
+ }
+
+ /**
+ * Set the name of the platform
+ * @param string $platform The name of the Platform
+ */
+ public function setPlatform($platform)
+ {
+ $this->_platform = $platform;
+ }
+
+ /**
+ * The version of the browser.
+ * @return string Version of the browser (will only contain alpha-numeric characters and a period)
+ */
+ public function getVersion()
+ {
+ return $this->_version;
+ }
+
+ /**
+ * Set the version of the browser
+ * @param string $version The version of the Browser
+ */
+ public function setVersion($version)
+ {
+ $this->_version = preg_replace('/[^0-9,.,a-z,A-Z-]/', '', $version);
+ }
+
+ /**
+ * The version of AOL.
+ * @return string Version of AOL (will only contain alpha-numeric characters and a period)
+ */
+ public function getAolVersion()
+ {
+ return $this->_aol_version;
+ }
+
+ /**
+ * Set the version of AOL
+ * @param string $version The version of AOL
+ */
+ public function setAolVersion($version)
+ {
+ $this->_aol_version = preg_replace('/[^0-9,.,a-z,A-Z]/', '', $version);
+ }
+
+ /**
+ * Is the browser from AOL?
+ * @return boolean True if the browser is from AOL otherwise false
+ */
+ public function isAol()
+ {
+ return $this->_is_aol;
+ }
+
+ /**
+ * Is the browser from a mobile device?
+ * @return boolean True if the browser is from a mobile device otherwise false
+ */
+ public function isMobile()
+ {
+ return $this->_is_mobile;
+ }
+
+ /**
+ * Is the browser from a tablet device?
+ * @return boolean True if the browser is from a tablet device otherwise false
+ */
+ public function isTablet()
+ {
+ return $this->_is_tablet;
+ }
+
+ /**
+ * Is the browser from a robot (ex Slurp,GoogleBot)?
+ * @return boolean True if the browser is from a robot otherwise false
+ */
+ public function isRobot()
+ {
+ return $this->_is_robot;
+ }
+
+ /**
+ * Is the browser from facebook?
+ * @return boolean True if the browser is from facebook otherwise false
+ */
+ public function isFacebook()
+ {
+ return $this->_is_facebook;
+ }
+
+ /**
+ * Set the browser to be from AOL
+ * @param $isAol
+ */
+ public function setAol($isAol)
+ {
+ $this->_is_aol = $isAol;
+ }
+
+ /**
+ * Set the Browser to be mobile
+ * @param boolean $value is the browser a mobile browser or not
+ */
+ protected function setMobile($value = true)
+ {
+ $this->_is_mobile = $value;
+ }
+
+ /**
+ * Set the Browser to be tablet
+ * @param boolean $value is the browser a tablet browser or not
+ */
+ protected function setTablet($value = true)
+ {
+ $this->_is_tablet = $value;
+ }
+
+ /**
+ * Set the Browser to be a robot
+ * @param boolean $value is the browser a robot or not
+ */
+ protected function setRobot($value = true)
+ {
+ $this->_is_robot = $value;
+ }
+
+ /**
+ * Set the Browser to be a Facebook request
+ * @param boolean $value is the browser a robot or not
+ */
+ protected function setFacebook($value = true)
+ {
+ $this->_is_facebook = $value;
+ }
+
+ /**
+ * Get the user agent value in use to determine the browser
+ * @return string The user agent from the HTTP header
+ */
+ public function getUserAgent()
+ {
+ return $this->_agent;
+ }
+
+ /**
+ * Set the user agent value (the construction will use the HTTP header value - this will overwrite it)
+ * @param string $agent_string The value for the User Agent
+ */
+ public function setUserAgent($agent_string)
+ {
+ $this->reset();
+ $this->_agent = $agent_string;
+ $this->determine();
+ }
+
+ /**
+ * Used to determine if the browser is actually "chromeframe"
+ * @since 1.7
+ * @return boolean True if the browser is using chromeframe
+ */
+ public function isChromeFrame()
+ {
+ return (strpos($this->_agent, "chromeframe") !== false);
+ }
+
+ /**
+ * Returns a formatted string with a summary of the details of the browser.
+ * @return string formatted string with a summary of the browser
+ */
+ public function __toString()
+ {
+ return "Browser Name: {$this->getBrowser()}
\n" .
+ "Browser Version: {$this->getVersion()}
\n" .
+ "Browser User Agent String: {$this->getUserAgent()}
\n" .
+ "Platform: {$this->getPlatform()}
";
+ }
+
+ /**
+ * Protected routine to calculate and determine what the browser is in use (including platform)
+ */
+ protected function determine()
+ {
+ $this->checkPlatform();
+ $this->checkBrowsers();
+ $this->checkForAol();
+ }
+
+ /**
+ * Protected routine to determine the browser type
+ * @return boolean True if the browser was detected otherwise false
+ */
+ protected function checkBrowsers()
+ {
+ return (
+ // well-known, well-used
+ // Special Notes:
+ // (1) Opera must be checked before FireFox due to the odd
+ // user agents used in some older versions of Opera
+ // (2) WebTV is strapped onto Internet Explorer so we must
+ // check for WebTV before IE
+ // (3) (deprecated) Galeon is based on Firefox and needs to be
+ // tested before Firefox is tested
+ // (4) OmniWeb is based on Safari so OmniWeb check must occur
+ // before Safari
+ // (5) Netscape 9+ is based on Firefox so Netscape checks
+ // before FireFox are necessary
+ // (6) Vivaldi is UA contains both Firefox and Chrome so Vivaldi checks
+ // before Firefox and Chrome
+ $this->checkBrowserWebTv() ||
+ $this->checkBrowserBrave() ||
+ $this->checkBrowserUCBrowser() ||
+ $this->checkBrowserEdge() ||
+ $this->checkBrowserInternetExplorer() ||
+ $this->checkBrowserOpera() ||
+ $this->checkBrowserGaleon() ||
+ $this->checkBrowserNetscapeNavigator9Plus() ||
+ $this->checkBrowserVivaldi() ||
+ $this->checkBrowserYandex() ||
+ $this->checkBrowserPalemoon() ||
+ $this->checkBrowserFirefox() ||
+ $this->checkBrowserChrome() ||
+ $this->checkBrowserOmniWeb() ||
+
+ // common mobile
+ $this->checkBrowserAndroid() ||
+ $this->checkBrowseriPad() ||
+ $this->checkBrowseriPod() ||
+ $this->checkBrowseriPhone() ||
+ $this->checkBrowserBlackBerry() ||
+ $this->checkBrowserNokia() ||
+
+ // common bots
+ $this->checkBrowserGoogleBot() ||
+ $this->checkBrowserMSNBot() ||
+ $this->checkBrowserBingBot() ||
+ $this->checkBrowserSlurp() ||
+
+ // Yandex bots
+ $this->checkBrowserYandexBot() ||
+ $this->checkBrowserYandexImageResizerBot() ||
+ $this->checkBrowserYandexBlogsBot() ||
+ $this->checkBrowserYandexCatalogBot() ||
+ $this->checkBrowserYandexDirectBot() ||
+ $this->checkBrowserYandexFaviconsBot() ||
+ $this->checkBrowserYandexImagesBot() ||
+ $this->checkBrowserYandexMediaBot() ||
+ $this->checkBrowserYandexMetrikaBot() ||
+ $this->checkBrowserYandexNewsBot() ||
+ $this->checkBrowserYandexVideoBot() ||
+ $this->checkBrowserYandexWebmasterBot() ||
+
+ // check for facebook external hit when loading URL
+ $this->checkFacebookExternalHit() ||
+
+ // WebKit base check (post mobile and others)
+ $this->checkBrowserSamsung() ||
+ $this->checkBrowserSilk() ||
+ $this->checkBrowserSafari() ||
+
+ // everyone else
+ $this->checkBrowserNetPositive() ||
+ $this->checkBrowserFirebird() ||
+ $this->checkBrowserKonqueror() ||
+ $this->checkBrowserIcab() ||
+ $this->checkBrowserPhoenix() ||
+ $this->checkBrowserAmaya() ||
+ $this->checkBrowserLynx() ||
+ $this->checkBrowserShiretoko() ||
+ $this->checkBrowserIceCat() ||
+ $this->checkBrowserIceweasel() ||
+ $this->checkBrowserW3CValidator() ||
+ $this->checkBrowserCurl() ||
+ $this->checkBrowserWget() ||
+ $this->checkBrowserPlayStation() ||
+ $this->checkBrowserIframely() ||
+ $this->checkBrowserCocoa() ||
+ $this->checkBrowserMozilla() /* Mozilla is such an open standard that you must check it last */);
+ }
+
+ /**
+ * Determine if the user is using a BlackBerry (last updated 1.7)
+ * @return boolean True if the browser is the BlackBerry browser otherwise false
+ */
+ protected function checkBrowserBlackBerry()
+ {
+ if (stripos($this->_agent, 'blackberry') !== false) {
+ $aresult = explode('/', stristr($this->_agent, "BlackBerry"));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->_browser_name = self::BROWSER_BLACKBERRY;
+ $this->setMobile(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the user is using an AOL User Agent (last updated 1.7)
+ * @return boolean True if the browser is from AOL otherwise false
+ */
+ protected function checkForAol()
+ {
+ $this->setAol(false);
+ $this->setAolVersion(self::VERSION_UNKNOWN);
+
+ if (stripos($this->_agent, 'aol') !== false) {
+ $aversion = explode(' ', stristr($this->_agent, 'AOL'));
+ if (isset($aversion[1])) {
+ $this->setAol(true);
+ $this->setAolVersion(preg_replace('/[^0-9\.a-z]/i', '', $aversion[1]));
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the GoogleBot or not (last updated 1.7)
+ * @return boolean True if the browser is the GoogletBot otherwise false
+ */
+ protected function checkBrowserGoogleBot()
+ {
+ if (stripos($this->_agent, 'googlebot') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'googlebot'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_GOOGLEBOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexBot or not
+ * @return boolean True if the browser is the YandexBot otherwise false
+ */
+ protected function checkBrowserYandexBot()
+ {
+ if (stripos($this->_agent, 'YandexBot') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexBot'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXBOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexImageResizer or not
+ * @return boolean True if the browser is the YandexImageResizer otherwise false
+ */
+ protected function checkBrowserYandexImageResizerBot()
+ {
+ if (stripos($this->_agent, 'YandexImageResizer') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexImageResizer'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXIMAGERESIZER_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexCatalog or not
+ * @return boolean True if the browser is the YandexCatalog otherwise false
+ */
+ protected function checkBrowserYandexCatalogBot()
+ {
+ if (stripos($this->_agent, 'YandexCatalog') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexCatalog'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXCATALOG_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexNews or not
+ * @return boolean True if the browser is the YandexNews otherwise false
+ */
+ protected function checkBrowserYandexNewsBot()
+ {
+ if (stripos($this->_agent, 'YandexNews') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexNews'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXNEWS_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexMetrika or not
+ * @return boolean True if the browser is the YandexMetrika otherwise false
+ */
+ protected function checkBrowserYandexMetrikaBot()
+ {
+ if (stripos($this->_agent, 'YandexMetrika') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexMetrika'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXMETRIKA_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexDirect or not
+ * @return boolean True if the browser is the YandexDirect otherwise false
+ */
+ protected function checkBrowserYandexDirectBot()
+ {
+ if (stripos($this->_agent, 'YandexDirect') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexDirect'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXDIRECT_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexWebmaster or not
+ * @return boolean True if the browser is the YandexWebmaster otherwise false
+ */
+ protected function checkBrowserYandexWebmasterBot()
+ {
+ if (stripos($this->_agent, 'YandexWebmaster') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexWebmaster'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXWEBMASTER_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexFavicons or not
+ * @return boolean True if the browser is the YandexFavicons otherwise false
+ */
+ protected function checkBrowserYandexFaviconsBot()
+ {
+ if (stripos($this->_agent, 'YandexFavicons') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexFavicons'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXFAVICONS_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexBlogs or not
+ * @return boolean True if the browser is the YandexBlogs otherwise false
+ */
+ protected function checkBrowserYandexBlogsBot()
+ {
+ if (stripos($this->_agent, 'YandexBlogs') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexBlogs'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXBLOGS_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexMedia or not
+ * @return boolean True if the browser is the YandexMedia otherwise false
+ */
+ protected function checkBrowserYandexMediaBot()
+ {
+ if (stripos($this->_agent, 'YandexMedia') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexMedia'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXMEDIA_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexVideo or not
+ * @return boolean True if the browser is the YandexVideo otherwise false
+ */
+ protected function checkBrowserYandexVideoBot()
+ {
+ if (stripos($this->_agent, 'YandexVideo') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexVideo'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXVIDEO_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the YandexImages or not
+ * @return boolean True if the browser is the YandexImages otherwise false
+ */
+ protected function checkBrowserYandexImagesBot()
+ {
+ if (stripos($this->_agent, 'YandexImages') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YandexImages'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(';', '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_YANDEXIMAGES_BOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the MSNBot or not (last updated 1.9)
+ * @return boolean True if the browser is the MSNBot otherwise false
+ */
+ protected function checkBrowserMSNBot()
+ {
+ if (stripos($this->_agent, "msnbot") !== false) {
+ $aresult = explode("/", stristr($this->_agent, "msnbot"));
+ if (isset($aresult[1])) {
+ $aversion = explode(" ", $aresult[1]);
+ $this->setVersion(str_replace(";", '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_MSNBOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the BingBot or not (last updated 1.9)
+ * @return boolean True if the browser is the BingBot otherwise false
+ */
+ protected function checkBrowserBingBot()
+ {
+ if (stripos($this->_agent, "bingbot") !== false) {
+ $aresult = explode("/", stristr($this->_agent, "bingbot"));
+ if (isset($aresult[1])) {
+ $aversion = explode(" ", $aresult[1]);
+ $this->setVersion(str_replace(";", '', $aversion[0]));
+ $this->_browser_name = self::BROWSER_BINGBOT;
+ $this->setRobot(true);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the W3C Validator or not (last updated 1.7)
+ * @return boolean True if the browser is the W3C Validator otherwise false
+ */
+ protected function checkBrowserW3CValidator()
+ {
+ if (stripos($this->_agent, 'W3C-checklink') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'W3C-checklink'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->_browser_name = self::BROWSER_W3CVALIDATOR;
+ return true;
+ }
+ } else if (stripos($this->_agent, 'W3C_Validator') !== false) {
+ // Some of the Validator versions do not delineate w/ a slash - add it back in
+ $ua = str_replace("W3C_Validator ", "W3C_Validator/", $this->_agent);
+ $aresult = explode('/', stristr($ua, 'W3C_Validator'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->_browser_name = self::BROWSER_W3CVALIDATOR;
+ return true;
+ }
+ } else if (stripos($this->_agent, 'W3C-mobileOK') !== false) {
+ $this->_browser_name = self::BROWSER_W3CVALIDATOR;
+ $this->setMobile(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is the Yahoo! Slurp Robot or not (last updated 1.7)
+ * @return boolean True if the browser is the Yahoo! Slurp Robot otherwise false
+ */
+ protected function checkBrowserSlurp()
+ {
+ if (stripos($this->_agent, 'slurp') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Slurp'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->_browser_name = self::BROWSER_SLURP;
+ $this->setRobot(true);
+ $this->setMobile(false);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Brave or not
+ * @return boolean True if the browser is Brave otherwise false
+ */
+ protected function checkBrowserBrave()
+ {
+ if (stripos($this->_agent, 'Brave/') !== false) {
+ $aResult = explode('/', stristr($this->_agent, 'Brave'));
+ if (isset($aResult[1])) {
+ $aversion = explode(' ', $aResult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_BRAVE);
+ return true;
+ }
+ } elseif (stripos($this->_agent, ' Brave ') !== false) {
+ $this->setBrowser(self::BROWSER_BRAVE);
+ // this version of the UA did not ship with a version marker
+ // e.g. Mozilla/5.0 (Linux; Android 7.0; SM-G955F Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Brave Chrome/68.0.3440.91 Mobile Safari/537.36
+ $this->setVersion('');
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Edge or not
+ * @return boolean True if the browser is Edge otherwise false
+ */
+ protected function checkBrowserEdge()
+ {
+ if ($name = (stripos($this->_agent, 'Edge/') !== false ? 'Edge' : ((stripos($this->_agent, 'Edg/') !== false || stripos($this->_agent, 'EdgA/') !== false) ? 'Edg' : false))) {
+ $aresult = explode('/', stristr($this->_agent, $name));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_EDGE);
+ if (stripos($this->_agent, 'Windows Phone') !== false || stripos($this->_agent, 'Android') !== false) {
+ $this->setMobile(true);
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Internet Explorer or not (last updated 1.7)
+ * @return boolean True if the browser is Internet Explorer otherwise false
+ */
+ protected function checkBrowserInternetExplorer()
+ {
+ // Test for IE11
+ if (stripos($this->_agent, 'Trident/7.0; rv:11.0') !== false) {
+ $this->setBrowser(self::BROWSER_IE);
+ $this->setVersion('11.0');
+ return true;
+ } // Test for v1 - v1.5 IE
+ else if (stripos($this->_agent, 'microsoft internet explorer') !== false) {
+ $this->setBrowser(self::BROWSER_IE);
+ $this->setVersion('1.0');
+ $aresult = stristr($this->_agent, '/');
+ if (preg_match('/308|425|426|474|0b1/i', $aresult)) {
+ $this->setVersion('1.5');
+ }
+ return true;
+ } // Test for versions > 1.5
+ else if (stripos($this->_agent, 'msie') !== false && stripos($this->_agent, 'opera') === false) {
+ // See if the browser is the odd MSN Explorer
+ if (stripos($this->_agent, 'msnb') !== false) {
+ $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'MSN'));
+ if (isset($aresult[1])) {
+ $this->setBrowser(self::BROWSER_MSN);
+ $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
+ return true;
+ }
+ }
+ $aresult = explode(' ', stristr(str_replace(';', '; ', $this->_agent), 'msie'));
+ if (isset($aresult[1])) {
+ $this->setBrowser(self::BROWSER_IE);
+ $this->setVersion(str_replace(array('(', ')', ';'), '', $aresult[1]));
+ if (stripos($this->_agent, 'IEMobile') !== false) {
+ $this->setBrowser(self::BROWSER_POCKET_IE);
+ $this->setMobile(true);
+ }
+ return true;
+ }
+ } // Test for versions > IE 10
+ else if (stripos($this->_agent, 'trident') !== false) {
+ $this->setBrowser(self::BROWSER_IE);
+ $result = explode('rv:', $this->_agent);
+ if (isset($result[1])) {
+ $this->setVersion(preg_replace('/[^0-9.]+/', '', $result[1]));
+ $this->_agent = str_replace(array("Mozilla", "Gecko"), "MSIE", $this->_agent);
+ }
+ } // Test for Pocket IE
+ else if (stripos($this->_agent, 'mspie') !== false || stripos($this->_agent, 'pocket') !== false) {
+ $aresult = explode(' ', stristr($this->_agent, 'mspie'));
+ if (isset($aresult[1])) {
+ $this->setPlatform(self::PLATFORM_WINDOWS_CE);
+ $this->setBrowser(self::BROWSER_POCKET_IE);
+ $this->setMobile(true);
+
+ if (stripos($this->_agent, 'mspie') !== false) {
+ $this->setVersion($aresult[1]);
+ } else {
+ $aversion = explode('/', $this->_agent);
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Opera or not (last updated 1.7)
+ * @return boolean True if the browser is Opera otherwise false
+ */
+ protected function checkBrowserOpera()
+ {
+ if (stripos($this->_agent, 'opera mini') !== false) {
+ $resultant = stristr($this->_agent, 'opera mini');
+ if (preg_match('/\//', $resultant)) {
+ $aresult = explode('/', $resultant);
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ }
+ } else {
+ $aversion = explode(' ', stristr($resultant, 'opera mini'));
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ }
+ }
+ $this->_browser_name = self::BROWSER_OPERA_MINI;
+ $this->setMobile(true);
+ return true;
+ } else if (stripos($this->_agent, 'opera') !== false) {
+ $resultant = stristr($this->_agent, 'opera');
+ if (preg_match('/Version\/(1*.*)$/', $resultant, $matches)) {
+ $this->setVersion($matches[1]);
+ } else if (preg_match('/\//', $resultant)) {
+ $aresult = explode('/', str_replace("(", " ", $resultant));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ }
+ } else {
+ $aversion = explode(' ', stristr($resultant, 'opera'));
+ $this->setVersion(isset($aversion[1]) ? $aversion[1] : '');
+ }
+ if (stripos($this->_agent, 'Opera Mobi') !== false) {
+ $this->setMobile(true);
+ }
+ $this->_browser_name = self::BROWSER_OPERA;
+ return true;
+ } else if (stripos($this->_agent, 'OPR') !== false) {
+ $resultant = stristr($this->_agent, 'OPR');
+ if (preg_match('/\//', $resultant)) {
+ $aresult = explode('/', str_replace("(", " ", $resultant));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ }
+ }
+ if (stripos($this->_agent, 'Mobile') !== false) {
+ $this->setMobile(true);
+ }
+ $this->_browser_name = self::BROWSER_OPERA;
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Chrome or not (last updated 1.7)
+ * @return boolean True if the browser is Chrome otherwise false
+ */
+ protected function checkBrowserChrome()
+ {
+ if (stripos($this->_agent, 'Chrome') !== false) {
+ $aresult = preg_split('/[\/;]+/', stristr($this->_agent, 'Chrome'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_CHROME);
+ //Chrome on Android
+ if (stripos($this->_agent, 'Android') !== false) {
+ if (stripos($this->_agent, 'Mobile') !== false) {
+ $this->setMobile(true);
+ } else {
+ $this->setTablet(true);
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * Determine if the browser is WebTv or not (last updated 1.7)
+ * @return boolean True if the browser is WebTv otherwise false
+ */
+ protected function checkBrowserWebTv()
+ {
+ if (stripos($this->_agent, 'webtv') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'webtv'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_WEBTV);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is NetPositive or not (last updated 1.7)
+ * @return boolean True if the browser is NetPositive otherwise false
+ */
+ protected function checkBrowserNetPositive()
+ {
+ if (stripos($this->_agent, 'NetPositive') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'NetPositive'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion(str_replace(array('(', ')', ';'), '', $aversion[0]));
+ $this->setBrowser(self::BROWSER_NETPOSITIVE);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Galeon or not (last updated 1.7)
+ * @return boolean True if the browser is Galeon otherwise false
+ */
+ protected function checkBrowserGaleon()
+ {
+ if (stripos($this->_agent, 'galeon') !== false) {
+ $aresult = explode(' ', stristr($this->_agent, 'galeon'));
+ $aversion = explode('/', $aresult[0]);
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ $this->setBrowser(self::BROWSER_GALEON);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Konqueror or not (last updated 1.7)
+ * @return boolean True if the browser is Konqueror otherwise false
+ */
+ protected function checkBrowserKonqueror()
+ {
+ if (stripos($this->_agent, 'Konqueror') !== false) {
+ $aresult = explode(' ', stristr($this->_agent, 'Konqueror'));
+ $aversion = explode('/', $aresult[0]);
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ $this->setBrowser(self::BROWSER_KONQUEROR);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is iCab or not (last updated 1.7)
+ * @return boolean True if the browser is iCab otherwise false
+ */
+ protected function checkBrowserIcab()
+ {
+ if (stripos($this->_agent, 'icab') !== false) {
+ $aversion = explode(' ', stristr(str_replace('/', ' ', $this->_agent), 'icab'));
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ $this->setBrowser(self::BROWSER_ICAB);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is OmniWeb or not (last updated 1.7)
+ * @return boolean True if the browser is OmniWeb otherwise false
+ */
+ protected function checkBrowserOmniWeb()
+ {
+ if (stripos($this->_agent, 'omniweb') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'omniweb'));
+ $aversion = explode(' ', isset($aresult[1]) ? $aresult[1] : '');
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_OMNIWEB);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Phoenix or not (last updated 1.7)
+ * @return boolean True if the browser is Phoenix otherwise false
+ */
+ protected function checkBrowserPhoenix()
+ {
+ if (stripos($this->_agent, 'Phoenix') !== false) {
+ $aversion = explode('/', stristr($this->_agent, 'Phoenix'));
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ $this->setBrowser(self::BROWSER_PHOENIX);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Firebird or not (last updated 1.7)
+ * @return boolean True if the browser is Firebird otherwise false
+ */
+ protected function checkBrowserFirebird()
+ {
+ if (stripos($this->_agent, 'Firebird') !== false) {
+ $aversion = explode('/', stristr($this->_agent, 'Firebird'));
+ if (isset($aversion[1])) {
+ $this->setVersion($aversion[1]);
+ $this->setBrowser(self::BROWSER_FIREBIRD);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Netscape Navigator 9+ or not (last updated 1.7)
+ * NOTE: (http://browser.netscape.com/ - Official support ended on March 1st, 2008)
+ * @return boolean True if the browser is Netscape Navigator 9+ otherwise false
+ */
+ protected function checkBrowserNetscapeNavigator9Plus()
+ {
+ if (stripos($this->_agent, 'Firefox') !== false && preg_match('/Navigator\/([^ ]*)/i', $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
+ return true;
+ } else if (stripos($this->_agent, 'Firefox') === false && preg_match('/Netscape6?\/([^ ]*)/i', $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_NETSCAPE_NAVIGATOR);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Shiretoko or not (https://wiki.mozilla.org/Projects/shiretoko) (last updated 1.7)
+ * @return boolean True if the browser is Shiretoko otherwise false
+ */
+ protected function checkBrowserShiretoko()
+ {
+ if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/Shiretoko\/([^ ]*)/i', $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_SHIRETOKO);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Ice Cat or not (http://en.wikipedia.org/wiki/GNU_IceCat) (last updated 1.7)
+ * @return boolean True if the browser is Ice Cat otherwise false
+ */
+ protected function checkBrowserIceCat()
+ {
+ if (stripos($this->_agent, 'Mozilla') !== false && preg_match('/IceCat\/([^ ]*)/i', $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_ICECAT);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Nokia or not (last updated 1.7)
+ * @return boolean True if the browser is Nokia otherwise false
+ */
+ protected function checkBrowserNokia()
+ {
+ if (preg_match("/Nokia([^\/]+)\/([^ SP]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[2]);
+ if (stripos($this->_agent, 'Series60') !== false || strpos($this->_agent, 'S60') !== false) {
+ $this->setBrowser(self::BROWSER_NOKIA_S60);
+ } else {
+ $this->setBrowser(self::BROWSER_NOKIA);
+ }
+ $this->setMobile(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Palemoon or not
+ * @return boolean True if the browser is Palemoon otherwise false
+ */
+ protected function checkBrowserPalemoon()
+ {
+ if (stripos($this->_agent, 'safari') === false) {
+ if (preg_match("/Palemoon[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_PALEMOON);
+ return true;
+ } else if (preg_match("/Palemoon([0-9a-zA-Z\.]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_PALEMOON);
+ return true;
+ } else if (preg_match("/Palemoon/i", $this->_agent, $matches)) {
+ $this->setVersion('');
+ $this->setBrowser(self::BROWSER_PALEMOON);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is UCBrowser or not
+ * @return boolean True if the browser is UCBrowser otherwise false
+ */
+ protected function checkBrowserUCBrowser()
+ {
+ if (preg_match('/UC ?Browser\/?([\d\.]+)/', $this->_agent, $matches)) {
+ if (isset($matches[1])) {
+ $this->setVersion($matches[1]);
+ }
+ if (stripos($this->_agent, 'Mobile') !== false) {
+ $this->setMobile(true);
+ } else {
+ $this->setTablet(true);
+ }
+ $this->setBrowser(self::BROWSER_UCBROWSER);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Firefox or not
+ * @return boolean True if the browser is Firefox otherwise false
+ */
+ protected function checkBrowserFirefox()
+ {
+ if (stripos($this->_agent, 'safari') === false) {
+ if (preg_match("/Firefox[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_FIREFOX);
+ //Firefox on Android
+ if (stripos($this->_agent, 'Android') !== false || stripos($this->_agent, 'iPhone') !== false) {
+ if (stripos($this->_agent, 'Mobile') !== false || stripos($this->_agent, 'Tablet') !== false) {
+ $this->setMobile(true);
+ } else {
+ $this->setTablet(true);
+ }
+ }
+ return true;
+ } else if (preg_match("/Firefox([0-9a-zA-Z\.]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_FIREFOX);
+ return true;
+ } else if (preg_match("/Firefox$/i", $this->_agent, $matches)) {
+ $this->setVersion('');
+ $this->setBrowser(self::BROWSER_FIREFOX);
+ return true;
+ }
+ } elseif (preg_match("/FxiOS[\/ \(]([^ ;\)]+)/i", $this->_agent, $matches)) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_FIREFOX);
+ //Firefox on Android
+ if (stripos($this->_agent, 'Android') !== false || stripos($this->_agent, 'iPhone') !== false) {
+ if (stripos($this->_agent, 'Mobile') !== false || stripos($this->_agent, 'Tablet') !== false) {
+ $this->setMobile(true);
+ } else {
+ $this->setTablet(true);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Firefox or not (last updated 1.7)
+ * @return boolean True if the browser is Firefox otherwise false
+ */
+ protected function checkBrowserIceweasel()
+ {
+ if (stripos($this->_agent, 'Iceweasel') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Iceweasel'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_ICEWEASEL);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Mozilla or not (last updated 1.7)
+ * @return boolean True if the browser is Mozilla otherwise false
+ */
+ protected function checkBrowserMozilla()
+ {
+ if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
+ $aversion = explode(' ', stristr($this->_agent, 'rv:'));
+ preg_match('/rv:[0-9].[0-9][a-b]?/i', $this->_agent, $aversion);
+ $this->setVersion(str_replace('rv:', '', $aversion[0]));
+ $this->setBrowser(self::BROWSER_MOZILLA);
+ return true;
+ } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/rv:[0-9]\.[0-9]/i', $this->_agent) && stripos($this->_agent, 'netscape') === false) {
+ $aversion = explode('', stristr($this->_agent, 'rv:'));
+ $this->setVersion(str_replace('rv:', '', $aversion[0]));
+ $this->setBrowser(self::BROWSER_MOZILLA);
+ return true;
+ } else if (stripos($this->_agent, 'mozilla') !== false && preg_match('/mozilla\/([^ ]*)/i', $this->_agent, $matches) && stripos($this->_agent, 'netscape') === false) {
+ $this->setVersion($matches[1]);
+ $this->setBrowser(self::BROWSER_MOZILLA);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Lynx or not (last updated 1.7)
+ * @return boolean True if the browser is Lynx otherwise false
+ */
+ protected function checkBrowserLynx()
+ {
+ if (stripos($this->_agent, 'lynx') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Lynx'));
+ $aversion = explode(' ', (isset($aresult[1]) ? $aresult[1] : ''));
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_LYNX);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Amaya or not (last updated 1.7)
+ * @return boolean True if the browser is Amaya otherwise false
+ */
+ protected function checkBrowserAmaya()
+ {
+ if (stripos($this->_agent, 'amaya') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Amaya'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_AMAYA);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Safari or not (last updated 1.7)
+ * @return boolean True if the browser is Safari otherwise false
+ */
+ protected function checkBrowserSafari()
+ {
+ if (
+ stripos($this->_agent, 'Safari') !== false
+ && stripos($this->_agent, 'iPhone') === false
+ && stripos($this->_agent, 'iPod') === false
+ ) {
+
+ $aresult = explode('/', stristr($this->_agent, 'Version'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ $this->setBrowser(self::BROWSER_SAFARI);
+ return true;
+ }
+ return false;
+ }
+
+ protected function checkBrowserSamsung()
+ {
+ if (stripos($this->_agent, 'SamsungBrowser') !== false) {
+
+ $aresult = explode('/', stristr($this->_agent, 'SamsungBrowser'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ $this->setBrowser(self::BROWSER_SAMSUNG);
+ return true;
+ }
+ return false;
+ }
+
+ protected function checkBrowserSilk()
+ {
+ if (stripos($this->_agent, 'Silk') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Silk'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ $this->setBrowser(self::BROWSER_SILK);
+ return true;
+ }
+ return false;
+ }
+
+ protected function checkBrowserIframely()
+ {
+ if (stripos($this->_agent, 'Iframely') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Iframely'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ $this->setBrowser(self::BROWSER_I_FRAME);
+ return true;
+ }
+ return false;
+ }
+
+ protected function checkBrowserCocoa()
+ {
+ if (stripos($this->_agent, 'CocoaRestClient') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'CocoaRestClient'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ $this->setBrowser(self::BROWSER_COCOA);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Detect if URL is loaded from FacebookExternalHit
+ * @return boolean True if it detects FacebookExternalHit otherwise false
+ */
+ protected function checkFacebookExternalHit()
+ {
+ if (stristr($this->_agent, 'FacebookExternalHit')) {
+ $this->setRobot(true);
+ $this->setFacebook(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Detect if URL is being loaded from internal Facebook browser
+ * @return boolean True if it detects internal Facebook browser otherwise false
+ */
+ protected function checkForFacebookIos()
+ {
+ if (stristr($this->_agent, 'FBIOS')) {
+ $this->setFacebook(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Detect Version for the Safari browser on iOS devices
+ * @return boolean True if it detects the version correctly otherwise false
+ */
+ protected function getSafariVersionOnIos()
+ {
+ $aresult = explode('/', stristr($this->_agent, 'Version'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Detect Version for the Chrome browser on iOS devices
+ * @return boolean True if it detects the version correctly otherwise false
+ */
+ protected function getChromeVersionOnIos()
+ {
+ $aresult = explode('/', stristr($this->_agent, 'CriOS'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_CHROME);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is iPhone or not (last updated 1.7)
+ * @return boolean True if the browser is iPhone otherwise false
+ */
+ protected function checkBrowseriPhone()
+ {
+ if (stripos($this->_agent, 'iPhone') !== false) {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ $this->setBrowser(self::BROWSER_IPHONE);
+ $this->getSafariVersionOnIos();
+ $this->getChromeVersionOnIos();
+ $this->checkForFacebookIos();
+ $this->setMobile(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is iPad or not (last updated 1.7)
+ * @return boolean True if the browser is iPad otherwise false
+ */
+ protected function checkBrowseriPad()
+ {
+ if (stripos($this->_agent, 'iPad') !== false) {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ $this->setBrowser(self::BROWSER_IPAD);
+ $this->getSafariVersionOnIos();
+ $this->getChromeVersionOnIos();
+ $this->checkForFacebookIos();
+ $this->setTablet(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is iPod or not (last updated 1.7)
+ * @return boolean True if the browser is iPod otherwise false
+ */
+ protected function checkBrowseriPod()
+ {
+ if (stripos($this->_agent, 'iPod') !== false) {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ $this->setBrowser(self::BROWSER_IPOD);
+ $this->getSafariVersionOnIos();
+ $this->getChromeVersionOnIos();
+ $this->checkForFacebookIos();
+ $this->setMobile(true);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Android or not (last updated 1.7)
+ * @return boolean True if the browser is Android otherwise false
+ */
+ protected function checkBrowserAndroid()
+ {
+ if (stripos($this->_agent, 'Android') !== false) {
+ $aresult = explode(' ', stristr($this->_agent, 'Android'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ } else {
+ $this->setVersion(self::VERSION_UNKNOWN);
+ }
+ if (stripos($this->_agent, 'Mobile') !== false) {
+ $this->setMobile(true);
+ } else {
+ $this->setTablet(true);
+ }
+ $this->setBrowser(self::BROWSER_ANDROID);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Vivaldi
+ * @return boolean True if the browser is Vivaldi otherwise false
+ */
+ protected function checkBrowserVivaldi()
+ {
+ if (stripos($this->_agent, 'Vivaldi') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'Vivaldi'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_VIVALDI);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Yandex
+ * @return boolean True if the browser is Yandex otherwise false
+ */
+ protected function checkBrowserYandex()
+ {
+ if (stripos($this->_agent, 'YaBrowser') !== false) {
+ $aresult = explode('/', stristr($this->_agent, 'YaBrowser'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_YANDEX);
+
+ if (stripos($this->_agent, 'iPad') !== false) {
+ $this->setTablet(true);
+ } elseif (stripos($this->_agent, 'Mobile') !== false) {
+ $this->setMobile(true);
+ } elseif (stripos($this->_agent, 'Android') !== false) {
+ $this->setTablet(true);
+ }
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Determine if the browser is a PlayStation
+ * @return boolean True if the browser is PlayStation otherwise false
+ */
+ protected function checkBrowserPlayStation()
+ {
+ if (stripos($this->_agent, 'PlayStation ') !== false) {
+ $aresult = explode(' ', stristr($this->_agent, 'PlayStation '));
+ $this->setBrowser(self::BROWSER_PLAYSTATION);
+ if (isset($aresult[0])) {
+ $aversion = explode(')', $aresult[2]);
+ $this->setVersion($aversion[0]);
+ if (stripos($this->_agent, 'Portable)') !== false || stripos($this->_agent, 'Vita') !== false) {
+ $this->setMobile(true);
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine if the browser is Wget or not (last updated 1.7)
+ * @return boolean True if the browser is Wget otherwise false
+ */
+ protected function checkBrowserWget()
+ {
+ if (preg_match("!^Wget/([^ ]+)!i", $this->_agent, $aresult)) {
+ $this->setVersion($aresult[1]);
+ $this->setBrowser(self::BROWSER_WGET);
+ return true;
+ }
+ return false;
+ }
+ /**
+ * Determine if the browser is cURL or not (last updated 1.7)
+ * @return boolean True if the browser is cURL otherwise false
+ */
+ protected function checkBrowserCurl()
+ {
+ if (strpos($this->_agent, 'curl') === 0) {
+ $aresult = explode('/', stristr($this->_agent, 'curl'));
+ if (isset($aresult[1])) {
+ $aversion = explode(' ', $aresult[1]);
+ $this->setVersion($aversion[0]);
+ $this->setBrowser(self::BROWSER_CURL);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Determine the user's platform (last updated 2.0)
+ */
+ protected function checkPlatform()
+ {
+ if (stripos($this->_agent, 'windows') !== false) {
+ $this->_platform = self::PLATFORM_WINDOWS;
+ } else if (stripos($this->_agent, 'iPad') !== false) {
+ $this->_platform = self::PLATFORM_IPAD;
+ } else if (stripos($this->_agent, 'iPod') !== false) {
+ $this->_platform = self::PLATFORM_IPOD;
+ } else if (stripos($this->_agent, 'iPhone') !== false) {
+ $this->_platform = self::PLATFORM_IPHONE;
+ } elseif (stripos($this->_agent, 'mac') !== false) {
+ $this->_platform = self::PLATFORM_APPLE;
+ } elseif (stripos($this->_agent, 'android') !== false) {
+ $this->_platform = self::PLATFORM_ANDROID;
+ } elseif (stripos($this->_agent, 'Silk') !== false) {
+ $this->_platform = self::PLATFORM_FIRE_OS;
+ } elseif (stripos($this->_agent, 'linux') !== false && stripos($this->_agent, 'SMART-TV') !== false) {
+ $this->_platform = self::PLATFORM_LINUX . '/' . self::PLATFORM_SMART_TV;
+ } elseif (stripos($this->_agent, 'linux') !== false) {
+ $this->_platform = self::PLATFORM_LINUX;
+ } else if (stripos($this->_agent, 'Nokia') !== false) {
+ $this->_platform = self::PLATFORM_NOKIA;
+ } else if (stripos($this->_agent, 'BlackBerry') !== false) {
+ $this->_platform = self::PLATFORM_BLACKBERRY;
+ } elseif (stripos($this->_agent, 'FreeBSD') !== false) {
+ $this->_platform = self::PLATFORM_FREEBSD;
+ } elseif (stripos($this->_agent, 'OpenBSD') !== false) {
+ $this->_platform = self::PLATFORM_OPENBSD;
+ } elseif (stripos($this->_agent, 'NetBSD') !== false) {
+ $this->_platform = self::PLATFORM_NETBSD;
+ } elseif (stripos($this->_agent, 'OpenSolaris') !== false) {
+ $this->_platform = self::PLATFORM_OPENSOLARIS;
+ } elseif (stripos($this->_agent, 'SunOS') !== false) {
+ $this->_platform = self::PLATFORM_SUNOS;
+ } elseif (stripos($this->_agent, 'OS\/2') !== false) {
+ $this->_platform = self::PLATFORM_OS2;
+ } elseif (stripos($this->_agent, 'BeOS') !== false) {
+ $this->_platform = self::PLATFORM_BEOS;
+ } elseif (stripos($this->_agent, 'win') !== false) {
+ $this->_platform = self::PLATFORM_WINDOWS;
+ } elseif (stripos($this->_agent, 'Playstation') !== false) {
+ $this->_platform = self::PLATFORM_PLAYSTATION;
+ } elseif (stripos($this->_agent, 'Roku') !== false) {
+ $this->_platform = self::PLATFORM_ROKU;
+ } elseif (stripos($this->_agent, 'iOS') !== false) {
+ $this->_platform = self::PLATFORM_IPHONE . '/' . self::PLATFORM_IPAD;
+ } elseif (stripos($this->_agent, 'tvOS') !== false) {
+ $this->_platform = self::PLATFORM_APPLE_TV;
+ } elseif (stripos($this->_agent, 'curl') !== false) {
+ $this->_platform = self::PLATFORM_TERMINAL;
+ } elseif (stripos($this->_agent, 'CrOS') !== false) {
+ $this->_platform = self::PLATFORM_CHROME_OS;
+ } elseif (stripos($this->_agent, 'okhttp') !== false) {
+ $this->_platform = self::PLATFORM_JAVA_ANDROID;
+ } elseif (stripos($this->_agent, 'PostmanRuntime') !== false) {
+ $this->_platform = self::PLATFORM_POSTMAN;
+ } elseif (stripos($this->_agent, 'Iframely') !== false) {
+ $this->_platform = self::PLATFORM_I_FRAME;
+ }
+ }
+}
+?>
diff --git a/class/class.client.php b/class/class.client.php
new file mode 100644
index 0000000..94716f2
--- /dev/null
+++ b/class/class.client.php
@@ -0,0 +1,28 @@
+data = $row;
+ }
+
+ function getVar($lsvar) {
+
+ // Setting up an alias, so we don't have to write $this->data every time:
+ $d = $this->data;
+
+ return (isset($d[$lsvar]) && !empty($d[$lsvar]) ? $d[$lsvar] : false);
+ }
+}
+?>
diff --git a/class/class.clientlogin.php b/class/class.clientlogin.php
new file mode 100644
index 0000000..e1d6009
--- /dev/null
+++ b/class/class.clientlogin.php
@@ -0,0 +1,279 @@
+email = '';
+ }
+
+ function jakChecklogged() {
+
+ /* Check if user has been remembered */
+ if (isset($_COOKIE['jak_lcpc_cookname']) && isset($_COOKIE['jak_lcpc_cookid'])) {
+ $_SESSION['jak_lcpc_email'] = $_COOKIE['jak_lcpc_cookname'];
+ $_SESSION['jak_lcpc_idhash'] = $_COOKIE['jak_lcpc_cookid'];
+ }
+
+ /* Username and idhash have been set */
+ if (isset($_SESSION['jak_lcpc_email']) && isset($_SESSION['jak_lcpc_idhash']) && $_SESSION['jak_lcpc_email'] != $this->email) {
+ /* Confirm that email and userid are valid */
+ if (!JAK_clientlogin::jakConfirmidhash($_SESSION['jak_lcpc_email'], $_SESSION['jak_lcpc_idhash'])) {
+ /* Variables are incorrect, user not logged in */
+ unset($_SESSION['jak_lcpc_email']);
+ unset($_SESSION['jak_lcpc_idhash']);
+
+ return false;
+ }
+
+ // Return the user data
+ return JAK_clientlogin::jakUserinfo($_SESSION['jak_lcpc_email']);
+
+ /* User not logged in */
+ } else {
+ return false;
+ }
+ }
+
+ function jakCheckrestlogged($userid, $hash) {
+
+ /* UserID and Hash have been set */
+ global $jakdb;
+ $datauinfo = $jakdb->get("clients", "*", ["AND" => ["id" => $userid, "idhash" => $hash]]);
+ if (isset($datauinfo) && !empty($datauinfo)) {
+
+ // Return the user data
+ return $datauinfo;
+
+ /* User not logged in */
+ } else {
+ return false;
+ }
+ }
+
+ public static function jakCheckuserdata($email, $pass) {
+
+ // The new password encrypt with hash_hmac
+ $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
+
+ if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ return false;
+ }
+
+ global $jakdb;
+ $datausr = $jakdb->get("clients", "id", ["AND" => ["email" => strtolower($email), "password" => $passcrypt, "access" => 1]]);
+ if ($datausr) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakLogin($email, $pass, $remember) {
+
+ // The new password encrypt with hash_hmac
+ $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
+
+ global $jakdb;
+
+ // Get the stuff out the database
+ $datausr = $jakdb->get("clients", ["idhash", "logins"], ["AND" => ["email" => $email, "password" => $passcrypt]]);
+
+ if ($datausr['logins'] % 10 == 0) {
+
+ // Generate new idhash
+ $nidhash = JAK_clientlogin::generateRandID();
+
+ } else {
+
+ if (isset($datausr['idhash']) && !empty($datausr['idhash']) && $datausr['idhash'] != "NULL") {
+
+ // Take old idhash
+ $nidhash = $datausr['idhash'];
+
+ } else {
+
+ // Generate new idhash
+ $nidhash = JAK_clientlogin::generateRandID();
+
+ }
+
+ }
+
+ // Set session in database
+ $jakdb->update("clients", ["session" => session_id(), "idhash" => $nidhash, "logins[+]" => 1, "forgot" => 0, "lastactivity" => time()], ["AND" => ["email" => $email, "password" => $passcrypt, "access" => 1]]);
+
+ $_SESSION['jak_lcpc_email'] = $email;
+ $_SESSION['jak_lcpc_idhash'] = $nidhash;
+
+ // Check if cookies are set previous (wrongly) and delete
+ if (isset($_COOKIE['jak_lcpc_cookname']) || isset($_COOKIE['jak_lcpc_cookid'])) {
+
+ JAK_base::jakCookie('jak_lcpc_cookname', $email, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcpc_cookid', $nidhash, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ }
+
+ // Now check if remember is selected and set cookies new...
+ if ($remember) {
+
+ JAK_base::jakCookie('jak_lcpc_cookname', $email, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcpc_cookid', $nidhash, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ }
+
+ }
+
+ public static function jakConfirmidhash($email, $idhash) {
+
+ global $jakdb;
+
+ if (isset($email) && !empty($email)) {
+
+ $datausr = $jakdb->get("clients", "idhash", ["AND" => ["email" => $email, "access" => 1]]);
+
+ if ($datausr) {
+
+ $datausr = stripslashes($datausr);
+ $idhash = stripslashes($idhash);
+
+ /* Validate that userid is correct */
+ if(!is_null($datausr) && $idhash == $datausr) {
+ return true; //Success! Username and idhash confirmed
+ }
+
+ }
+
+ }
+
+ return false;
+
+ }
+
+ public static function jakUserinfo($email) {
+
+ global $jakdb;
+ $datauinfo = $jakdb->get("clients", "*", ["AND" => ["email" => $email, "access" => 1]]);
+ if ($datauinfo) {
+ return $datauinfo;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakUpdatelastactivity($clientid) {
+
+ global $jakdb;
+ if (is_numeric($clientid)) $jakdb->update("clients", ["lastactivity" => time()], ["id" => $clientid]);
+
+ }
+
+ public static function jakForgotpassword($email, $time) {
+
+ global $jakdb;
+ if ($jakdb->has("clients", ["AND" => ["email" => $email, "access" => 1]])) {
+ if ($time != 0) $jakdb->update("clients", ["forgot" => $time], ["email" => $email]);
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakForgotactive($forgotid) {
+
+ global $jakdb;
+ if ($jakdb->has("clients", ["AND" => ["forgot" => $forgotid, "access" => 1]])) {
+ return true;
+ } else
+ return false;
+
+ }
+
+ public static function jakForgotcheckuser($email, $forgotid) {
+
+ global $jakdb;
+ if ($jakdb->has("clients", ["AND" => ["email" => $email, "forgot" => $forgotid, "access" => 1]])) {
+ return true;
+ } else
+ return false;
+
+ }
+
+ public static function jakWriteloginlog($email, $url, $ip, $agent, $success) {
+
+ global $jakdb;
+ if ($success == 1) {
+ $jakdb->update("loginlog", ["access" => 1], ["AND" => ["ip" => $ip, "time" => $jakdb->raw("NOW()")]]);
+ } else {
+ $jakdb->insert("loginlog", ["name" => $email, "fromwhere" => $url, "usragent" => $agent, "ip" => $ip, "time" => $jakdb->raw("NOW()"), "access" => 0]);
+ }
+
+ }
+
+ public static function jakLogout($userid) {
+
+ global $jakdb;
+
+ // Delete cookies from this page
+ JAK_base::jakCookie('jak_lcpc_cookname', '', -JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcpc_cookid', '', -JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ // Update Database to session NULL
+ $jakdb->update("clients", ["session" => $jakdb->raw("NULL"), "idhash" => $jakdb->raw("NULL")], ["id" => $userid]);
+
+ // Unset the main sessions
+ unset($_SESSION['jak_lcpc_email']);
+ unset($_SESSION['jak_lcpc_idhash']);
+ unset($_SESSION['jak_lcpc_lang']);
+
+ // Destroy session and generate new one for that user
+ session_destroy();
+
+ // Start new session
+ session_start();
+ session_regenerate_id();
+
+ }
+
+ public static function jakLogoutRest($userid) {
+
+ global $jakdb;
+
+ // Update Database to session NULL
+ $jakdb->update("clients", ["session" => $jakdb->raw("NULL"), "idhash" => $jakdb->raw("NULL")], ["id" => $userid]);
+
+ }
+
+ public static function generateRandStr($length) {
+ $randstr = "";
+ for($i=0; $i<$length; $i++){
+ $randnum = mt_rand(0,61);
+ if($randnum < 10){
+ $randstr .= chr($randnum+48);
+ }else if($randnum < 36){
+ $randstr .= chr($randnum+55);
+ }else{
+ $randstr .= chr($randnum+61);
+ }
+ }
+ return $randstr;
+ }
+
+ private static function generateRandID() {
+ return md5(JAK_clientlogin::generateRandStr(16));
+ }
+}
+?>
diff --git a/class/class.comment.php b/class/class.comment.php
new file mode 100644
index 0000000..3a788c8
--- /dev/null
+++ b/class/class.comment.php
@@ -0,0 +1,263 @@
+select("blogcomments", ["[>]user" => ["operatorid" => "id"], "[>]clients" => ["clientid" => "id"]], ["blogcomments.id", "blogcomments.commentid", "blogcomments.message", "blogcomments.votes", "blogcomments.approve", "blogcomments.time", "blogcomments.session", "user.id(oid)", "user.name(oname)", "user.picture(opicture)", "clients.id(cid)", "clients.name(cname)", "clients.picture(cpicture)"], ["blogcomments.".$field => $id]);
+ } else {
+ $result = $jakdb->select("blogcomments", ["[>]user" => ["operatorid" => "id"], "[>]clients" => ["clientid" => "id"]], ["blogcomments.id", "blogcomments.commentid", "blogcomments.message", "blogcomments.votes", "blogcomments.approve", "blogcomments.time", "blogcomments.session", "user.id(oid)", "user.name(oname)", "user.picture(opicture)", "clients.id(cid)", "clients.name(cname)", "clients.picture(cpicture)"], ["AND" => ["OR" => ["blogcomments.session" => session_id(), "blogcomments.approve" => 1], "blogcomments.".$field => $id]]);
+ }
+
+ if (isset($result) && !empty($result)) foreach ($result as $row) {
+
+ if ($row['oid'] && $row['opicture'] && $row['opicture'] != "/standard.jpg") {
+ $row['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.$row['opicture'];
+ } elseif ($row['cid'] && $row['cpicture'] && $row['cpicture'] != "/standard.jpg") {
+ $row['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.'/'.$row['cpicture'];
+ } else {
+ $row['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.'/standard.jpg';
+ }
+
+ $row['username'] = ($row['oname'] ? $row['oname'] : $row['cname']);
+
+ $row['created'] = JAK_base::jakTimesince($row['time'], $ptime, $pdate);
+
+ // Sanitize the message
+ $row["message"] = jak_secure_site($row['message']);
+
+ // There should be always a varname in categories and check if seo is valid
+ $row["parseurl1"] = JAK_rewrite::jakParseurl($var, 'del', $row['id']);
+ $row["parseurl2"] = JAK_rewrite::jakParseurl($var, 'report', $row['id']);
+
+ // collect each record into $jakdata
+ $jakdata[] = $row;
+
+ // Do we have nested comments
+ if ($nested) $getID = $row["id"];
+
+ }
+
+ // now we go nested because we have a reply
+ if ($nested && !empty($getID)) {
+
+ if ($admin) {
+ $resnes = $jakdb->select("blogcomments", ["[>]user" => ["operatorid" => "id"], "[>]clients" => ["clientid" => "id"]], ["blogcomments.id", "blogcomments.commentid", "blogcomments.message", "blogcomments.votes", "blogcomments.approve", "blogcomments.time", "blogcomments.session", "user.id(oid)", "user.name(oname)", "user.picture(opicture)", "clients.id(cid)", "clients.name(cname)", "clients.picture(cpicture)"], ["blogcomments.commentid" => [$getID]]);
+ } else {
+ $resnes = $jakdb->select("blogcomments", ["[>]user" => ["operatorid" => "id"], "[>]clients" => ["clientid" => "id"]], ["blogcomments.id", "blogcomments.commentid", "blogcomments.message", "blogcomments.votes", "blogcomments.approve", "blogcomments.time", "blogcomments.session", "user.id(oid)", "user.name(oname)", "user.picture(opicture)", "clients.id(cid)", "clients.name(cname)", "clients.picture(cpicture)"], ["AND" => ["OR" => ["blogcomments.session" => session_id(), "blogcomments.approve" => 1], "blogcomments.commentid" => [$getID]]]);
+ }
+
+ if (isset($resnes) && !empty($resnes)) foreach ($resnes as $nes) {
+
+ if ($nes['oid'] && $nes['opicture'] && $nes['opicture'] != "/standard.jpg") {
+ $nes['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.$nes['opicture'];
+ } elseif ($row['cid'] && $nes['cpicture'] && $nes['cpicture'] != "/standard.jpg") {
+ $nes['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.'/'.$nes['cpicture'];
+ } else {
+ $nes['avatar'] = BASE_URL.JAK_FILES_DIRECTORY.'/standard.jpg';
+ }
+
+ $nes['username'] = ($nes['oname'] ? $nes['oname'] : $nes['cname']);
+
+ $nes['created'] = JAK_base::jakTimesince($nes['time'], $ptime, $pdate, $timeago);
+
+ // Sanitize the message
+ $nes["message"] = jak_secure_site($nes['message']);
+
+ // There should be always a varname in categories and check if seo is valid
+ $nes["parseurl1"] = JAK_rewrite::jakParseurl($var, 'del', $nes['id']);
+ $nes["parseurl2"] = JAK_rewrite::jakParseurl($var, 'report', $nes['id']);
+
+ // collect each record into $jakdata
+ $jakdata[] = $nes;
+
+ }
+ }
+
+ $this->data = $jakdata;
+ }
+
+ public function get_comments()
+ {
+
+ // Setting up an alias, so we don't have to write $this->data every time:
+ $d = &$this->data;
+
+ return $d;
+
+ }
+
+ public function get_commentajax($lang) {
+
+ foreach($this->data as $d) {
+
+ if ($d['oid'] && $d['opicture'] && $d['opicture'] != '/standard.jpg') {
+ $avatar = '
';
+ } elseif ($d['cid'] && $d['cpicture'] && $d['cpicture'] != '/standard.jpg') {
+ $avatar = '
';
+ } else {
+ $avatar = '
';
+ }
+
+ $approve = "";
+ if ($d['approve'] == 0) {
+ $approve = ''.$lang.'
';
+ }
+
+ return '';
+
+ }
+
+ }
+
+ public function get_commentajax_modern($lang) {
+
+ foreach($this->data as $d) {
+
+ if ($d['oid'] && $d['opicture'] && $d['opicture'] != '/standard.jpg') {
+ $avatar = str_replace("class/", "", BASE_URL).JAK_FILES_DIRECTORY.'/operator/'.$d['opicture'];
+ } elseif ($d['cid'] && $d['cpicture'] && $d['cpicture'] != '/standard.jpg') {
+ $avatar = str_replace("class/", "", BASE_URL).JAK_FILES_DIRECTORY.'/'.$d['cpicture'];
+ } else {
+ $avatar = str_replace("class/", "", BASE_URL).JAK_FILES_DIRECTORY.'/standard.jpg';
+ }
+
+ $approve = "";
+ if ($d['approve'] == 0) {
+ $approve = ''.$lang.'
';
+ }
+
+ return '';
+
+ }
+
+ }
+
+ public function get_total() {
+ // Setting up an alias, so we don't have to write $this->data every time:
+ $d = $this->data;
+
+ if ($d) {
+
+ foreach($d as $t) {
+ $total[] = $t['id'];
+ }
+
+ // get the total user in one var.
+ $total = count($total, COUNT_RECURSIVE);
+
+ } else {
+
+ $total = 0;
+
+ }
+
+ return $total;
+ }
+
+ public static function validate_form(&$arr, $maxpost, $epost, $maxtxt) {
+ /*
+ / This method is used to validate the data sent via AJAX.
+ /
+ / It return true/false depending on whether the data is valid, and populates
+ / the $arr array passed as a paremter (notice the ampersand above) with
+ / either the valid input data, or the error messages.
+ */
+
+ global $jkv;
+ $errors = array();
+ $data = array();
+
+ // Using the filter with a custom callback function:
+ if (!($data['bmessage'] = filter_input(INPUT_POST, 'bmessage', FILTER_CALLBACK, array('options'=>'JAK_comment::validate_text')))) {
+ $errors['bmesssage'] = $epost;
+ }
+
+ // Subcomments
+ if (filter_input(INPUT_POST , 'comanswerid')) {
+ $data['comanswerid'] = filter_input(INPUT_POST , 'comanswerid');
+ }
+
+ // Subcomments
+ if (filter_input(INPUT_POST , 'editpostid')) {
+ $data['editpostid'] = filter_input(INPUT_POST , 'editpostid');
+ }
+
+ // Count comment charactars
+ if (!empty($maxpost)) {
+ $countI = strlen($data['bmessage']);
+
+ if ($countI > $maxpost) {
+ $errors['bmessage'] = $emaxpost.$maxpost.' '.sprintf($maxtxt,$countI);
+ }
+ }
+
+ if (!empty($errors)) {
+
+ // If there are errors, copy the $errors array to $arr:
+ $arr = $errors;
+ return false;
+ }
+
+ // If the data is valid, sanitize all the data and copy it to $arr:
+
+ foreach($data as $k=>$v) {
+ $arr[$k] = $v;
+ }
+
+ return true;
+
+ }
+
+ private static function validate_text($str)
+ {
+ /*
+ / This method is used internally as a FILTER_CALLBACK
+ */
+
+ if (mb_strlen($str, 'utf8') < 1) return false;
+
+ $str = htmlspecialchars($str);
+
+ // Remove the new line characters that are left
+ $str = str_replace(array(chr(10), chr(13)), '', $str);
+
+ return $str;
+ }
+
+}
+?>
diff --git a/class/class.db.php b/class/class.db.php
new file mode 100644
index 0000000..31786ea
--- /dev/null
+++ b/class/class.db.php
@@ -0,0 +1,2277 @@
+ 'mysql',
+ * 'database' => 'name',
+ * 'host' => 'localhost',
+ * 'username' => 'your_username',
+ * 'password' => 'your_password',
+ *
+ * // [optional]
+ * 'charset' => 'utf8mb4',
+ * 'port' => 3306,
+ * 'prefix' => 'PREFIX_'
+ * ]);
+ * ```
+ *
+ * @param array $options Connection options
+ * @return Medoo
+ * @throws PDOException
+ * @link https://medoo.in/api/new
+ * @codeCoverageIgnore
+ */
+
+ public function __construct(array $options)
+ {
+ if (isset($options['prefix'])) {
+ $this->prefix = $options['prefix'];
+ }
+
+ if (isset($options['testMode']) && $options['testMode'] == true) {
+ $this->testMode = true;
+ return;
+ }
+
+ $options['type'] = $options['type'] ?? $options['database_type'];
+
+ if (!isset($options['pdo'])) {
+ $options['database'] = $options['database'] ?? $options['database_name'];
+
+ if (!isset($options['socket'])) {
+ $options['host'] = $options['host'] ?? $options['server'] ?? false;
+ }
+ }
+
+ if (isset($options['type'])) {
+ $this->type = strtolower($options['type']);
+
+ if ($this->type === 'mariadb') {
+ $this->type = 'mysql';
+ }
+ }
+
+ if (isset($options['logging']) && is_bool($options['logging'])) {
+ $this->logging = $options['logging'];
+ }
+
+ $option = $options['option'] ?? [];
+ $commands = [];
+
+ switch ($this->type) {
+
+ case 'mysql':
+ // Make MySQL using standard quoted identifier.
+ $commands[] = 'SET SQL_MODE=ANSI_QUOTES';
+
+ break;
+
+ case 'mssql':
+ // Keep MSSQL QUOTED_IDENTIFIER is ON for standard quoting.
+ $commands[] = 'SET QUOTED_IDENTIFIER ON';
+
+ // Make ANSI_NULLS is ON for NULL value.
+ $commands[] = 'SET ANSI_NULLS ON';
+
+ break;
+ }
+
+ if (isset($options['pdo'])) {
+ if (!$options['pdo'] instanceof PDO) {
+ throw new InvalidArgumentException('Invalid PDO object supplied.');
+ }
+
+ $this->pdo = $options['pdo'];
+
+ foreach ($commands as $value) {
+ $this->pdo->exec($value);
+ }
+
+ return;
+ }
+
+ if (isset($options['dsn'])) {
+ if (is_array($options['dsn']) && isset($options['dsn']['driver'])) {
+ $attr = $options['dsn'];
+ } else {
+ throw new InvalidArgumentException('Invalid DSN option supplied.');
+ }
+ } else {
+ if (
+ isset($options['port']) &&
+ is_int($options['port'] * 1)
+ ) {
+ $port = $options['port'];
+ }
+
+ $isPort = isset($port);
+
+ switch ($this->type) {
+
+ case 'mysql':
+ $attr = [
+ 'driver' => 'mysql',
+ 'dbname' => $options['database']
+ ];
+
+ if (isset($options['socket'])) {
+ $attr['unix_socket'] = $options['socket'];
+ } else {
+ $attr['host'] = $options['host'];
+
+ if ($isPort) {
+ $attr['port'] = $port;
+ }
+ }
+
+ break;
+
+ case 'pgsql':
+ $attr = [
+ 'driver' => 'pgsql',
+ 'host' => $options['host'],
+ 'dbname' => $options['database']
+ ];
+
+ if ($isPort) {
+ $attr['port'] = $port;
+ }
+
+ break;
+
+ case 'sybase':
+ $attr = [
+ 'driver' => 'dblib',
+ 'host' => $options['host'],
+ 'dbname' => $options['database']
+ ];
+
+ if ($isPort) {
+ $attr['port'] = $port;
+ }
+
+ break;
+
+ case 'oracle':
+ $attr = [
+ 'driver' => 'oci',
+ 'dbname' => $options['host'] ?
+ '//' . $options['host'] . ($isPort ? ':' . $port : ':1521') . '/' . $options['database'] :
+ $options['database']
+ ];
+
+ if (isset($options['charset'])) {
+ $attr['charset'] = $options['charset'];
+ }
+
+ break;
+
+ case 'mssql':
+ if (isset($options['driver']) && $options['driver'] === 'dblib') {
+ $attr = [
+ 'driver' => 'dblib',
+ 'host' => $options['host'] . ($isPort ? ':' . $port : ''),
+ 'dbname' => $options['database']
+ ];
+
+ if (isset($options['appname'])) {
+ $attr['appname'] = $options['appname'];
+ }
+
+ if (isset($options['charset'])) {
+ $attr['charset'] = $options['charset'];
+ }
+ } else {
+ $attr = [
+ 'driver' => 'sqlsrv',
+ 'Server' => $options['host'] . ($isPort ? ',' . $port : ''),
+ 'Database' => $options['database']
+ ];
+
+ if (isset($options['appname'])) {
+ $attr['APP'] = $options['appname'];
+ }
+
+ $config = [
+ 'ApplicationIntent',
+ 'AttachDBFileName',
+ 'Authentication',
+ 'ColumnEncryption',
+ 'ConnectionPooling',
+ 'Encrypt',
+ 'Failover_Partner',
+ 'KeyStoreAuthentication',
+ 'KeyStorePrincipalId',
+ 'KeyStoreSecret',
+ 'LoginTimeout',
+ 'MultipleActiveResultSets',
+ 'MultiSubnetFailover',
+ 'Scrollable',
+ 'TraceFile',
+ 'TraceOn',
+ 'TransactionIsolation',
+ 'TransparentNetworkIPResolution',
+ 'TrustServerCertificate',
+ 'WSID',
+ ];
+
+ foreach ($config as $value) {
+ $keyname = strtolower(preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', $value));
+
+ if (isset($options[$keyname])) {
+ $attr[$value] = $options[$keyname];
+ }
+ }
+ }
+
+ break;
+
+ case 'sqlite':
+ $attr = [
+ 'driver' => 'sqlite',
+ $options['database']
+ ];
+
+ break;
+ }
+ }
+
+ if (!isset($attr)) {
+ throw new InvalidArgumentException('Incorrect connection options.');
+ }
+
+ $driver = $attr['driver'];
+
+ if (!in_array($driver, PDO::getAvailableDrivers())) {
+ throw new InvalidArgumentException("Unsupported PDO driver: {$driver}.");
+ }
+
+ unset($attr['driver']);
+
+ $stack = [];
+
+ foreach ($attr as $key => $value) {
+ $stack[] = is_int($key) ? $value : $key . '=' . $value;
+ }
+
+ $dsn = $driver . ':' . implode(';', $stack);
+
+ if (
+ in_array($this->type, ['mysql', 'pgsql', 'sybase', 'mssql']) &&
+ isset($options['charset'])
+ ) {
+ $commands[] = "SET NAMES '{$options['charset']}'" . (
+ $this->type === 'mysql' && isset($options['collation']) ?
+ " COLLATE '{$options['collation']}'" : ''
+ );
+ }
+
+ $this->dsn = $dsn;
+
+ try {
+ $this->pdo = new PDO(
+ $dsn,
+ $options['username'] ?? null,
+ $options['password'] ?? null,
+ $option
+ );
+
+ if (isset($options['error'])) {
+ $this->pdo->setAttribute(
+ PDO::ATTR_ERRMODE,
+ in_array($options['error'], [
+ PDO::ERRMODE_SILENT,
+ PDO::ERRMODE_WARNING,
+ PDO::ERRMODE_EXCEPTION
+ ]) ?
+ $options['error'] :
+ PDO::ERRMODE_SILENT
+ );
+ }
+
+ if (isset($options['command']) && is_array($options['command'])) {
+ $commands = array_merge($commands, $options['command']);
+ }
+
+ foreach ($commands as $value) {
+ $this->pdo->exec($value);
+ }
+ } catch (PDOException $e) {
+ throw new PDOException($e->getMessage());
+ }
+ }
+
+ /**
+ * Generate a new map key for the placeholder.
+ *
+ * @return string
+ */
+ protected function mapKey(): string
+ {
+ return ':MeD' . $this->guid++ . '_mK';
+ }
+
+ /**
+ * Execute customized raw statement.
+ *
+ * @param string $statement The raw SQL statement.
+ * @param array $map The array of input parameters value for prepared statement.
+ * @return \PDOStatement|null
+ */
+ public function query(string $statement, array $map = []): ?PDOStatement
+ {
+ $raw = $this->raw($statement, $map);
+ $statement = $this->buildRaw($raw, $map);
+
+ return $this->exec($statement, $map);
+ }
+
+ /**
+ * Execute the raw statement.
+ *
+ * @param string $statement The SQL statement.
+ * @param array $map The array of input parameters value for prepared statement.
+ * @codeCoverageIgnore
+ * @return \PDOStatement|null
+ */
+ public function exec(string $statement, array $map = [], callable $callback = null): ?PDOStatement
+ {
+ $this->statement = null;
+ $this->errorInfo = null;
+ $this->error = null;
+
+ if ($this->testMode) {
+ $this->queryString = $this->generate($statement, $map);
+ return null;
+ }
+
+ if ($this->debugMode) {
+ if ($this->debugLogging) {
+ $this->debugLogs[] = $this->generate($statement, $map);
+ return null;
+ }
+
+ echo $this->generate($statement, $map);
+
+ $this->debugMode = false;
+
+ return null;
+ }
+
+ if ($this->logging) {
+ $this->logs[] = [$statement, $map];
+ } else {
+ $this->logs = [[$statement, $map]];
+ }
+
+ $statement = $this->pdo->prepare($statement);
+ $errorInfo = $this->pdo->errorInfo();
+
+ if ($errorInfo[0] !== '00000') {
+ $this->errorInfo = $errorInfo;
+ $this->error = $errorInfo[2];
+
+ return null;
+ }
+
+ foreach ($map as $key => $value) {
+ $statement->bindValue($key, $value[0], $value[1]);
+ }
+
+ if (is_callable($callback)) {
+ $this->pdo->beginTransaction();
+ $callback($statement);
+ $execute = $statement->execute();
+ $this->pdo->commit();
+ } else {
+ $execute = $statement->execute();
+ }
+
+ $errorInfo = $statement->errorInfo();
+
+ if ($errorInfo[0] !== '00000') {
+ $this->errorInfo = $errorInfo;
+ $this->error = $errorInfo[2];
+
+ return null;
+ }
+
+ if ($execute) {
+ $this->statement = $statement;
+ }
+
+ return $statement;
+ }
+
+ /**
+ * Generate readable statement.
+ *
+ * @param string $statement
+ * @param array $map
+ * @codeCoverageIgnore
+ * @return string
+ */
+ protected function generate(string $statement, array $map): string
+ {
+ $identifier = [
+ 'mysql' => '`$1`',
+ 'mssql' => '[$1]'
+ ];
+
+ $statement = preg_replace(
+ '/(?!\'[^\s]+\s?)"([\p{L}_][\p{L}\p{N}@$#\-_]*)"(?!\s?[^\s]+\')/u',
+ $identifier[$this->type] ?? '"$1"',
+ $statement
+ );
+
+ foreach ($map as $key => $value) {
+ if ($value[1] === PDO::PARAM_STR) {
+ $replace = $this->quote($value[0]);
+ } elseif ($value[1] === PDO::PARAM_NULL) {
+ $replace = 'NULL';
+ } elseif ($value[1] === PDO::PARAM_LOB) {
+ $replace = '{LOB_DATA}';
+ } else {
+ $replace = $value[0] . '';
+ }
+
+ $statement = str_replace($key, $replace, $statement);
+ }
+
+ return $statement;
+ }
+
+ /**
+ * Build a raw object.
+ *
+ * @param string $string The raw string.
+ * @param array $map The array of mapping data for the raw string.
+ * @return Medoo::raw
+ */
+ public static function raw(string $string, array $map = []): Raw
+ {
+ $raw = new Raw();
+
+ $raw->map = $map;
+ $raw->value = $string;
+
+ return $raw;
+ }
+
+ /**
+ * Finds whether the object is raw.
+ *
+ * @param object $object
+ * @return bool
+ */
+ protected function isRaw($object): bool
+ {
+ return $object instanceof Raw;
+ }
+
+ /**
+ * Generate the actual query from the raw object.
+ *
+ * @param mixed $raw
+ * @param array $map
+ * @return string|null
+ */
+ protected function buildRaw($raw, array &$map): ?string
+ {
+ if (!$this->isRaw($raw)) {
+ return null;
+ }
+
+ $query = preg_replace_callback(
+ '/(([`\']).*?)?((FROM|TABLE|INTO|UPDATE|JOIN|TABLE IF EXISTS)\s*)?\<(([\p{L}_][\p{L}\p{N}@$#\-_]*)(\.[\p{L}_][\p{L}\p{N}@$#\-_]*)?)\>([^,]*?\2)?/u',
+ function ($matches) {
+ if (!empty($matches[2]) && isset($matches[8])) {
+ return $matches[0];
+ }
+
+ if (!empty($matches[4])) {
+ return $matches[1] . $matches[4] . ' ' . $this->tableQuote($matches[5]);
+ }
+
+ return $matches[1] . $this->columnQuote($matches[5]);
+ },
+ $raw->value
+ );
+
+ $rawMap = $raw->map;
+
+ if (!empty($rawMap)) {
+ foreach ($rawMap as $key => $value) {
+ $map[$key] = $this->typeMap($value, gettype($value));
+ }
+ }
+
+ return $query;
+ }
+
+ /**
+ * Quote a string for use in a query.
+ *
+ * @param string $string
+ * @return string
+ */
+ public function quote(string $string): string
+ {
+ if ($this->type === 'mysql') {
+ return "'" . preg_replace(['/([\'"])/', '/(\\\\\\\")/'], ["\\\\\${1}", '\\\${1}'], $string) . "'";
+ }
+
+ return "'" . preg_replace('/\'/', '\'\'', $string) . "'";
+ }
+
+ /**
+ * Quote table name for use in a query.
+ *
+ * @param string $table
+ * @return string
+ */
+ public function tableQuote(string $table): string
+ {
+ if (preg_match('/^[\p{L}_][\p{L}\p{N}@$#\-_]*$/u', $table)) {
+ return '"' . $this->prefix . $table . '"';
+ }
+
+ throw new InvalidArgumentException("Incorrect table name: {$table}.");
+ }
+
+ /**
+ * Quote column name for use in a query.
+ *
+ * @param string $column
+ * @return string
+ */
+ public function columnQuote(string $column): string
+ {
+ if (preg_match('/^[\p{L}_][\p{L}\p{N}@$#\-_]*(\.?[\p{L}_][\p{L}\p{N}@$#\-_]*)?$/u', $column)) {
+ return strpos($column, '.') !== false ?
+ '"' . $this->prefix . str_replace('.', '"."', $column) . '"' :
+ '"' . $column . '"';
+ }
+
+ throw new InvalidArgumentException("Incorrect column name: {$column}.");
+ }
+
+ /**
+ * Mapping the type name as PDO data type.
+ *
+ * @param mixed $value
+ * @param string $type
+ * @return array
+ */
+ protected function typeMap($value, string $type): array
+ {
+ $map = [
+ 'NULL' => PDO::PARAM_NULL,
+ 'integer' => PDO::PARAM_INT,
+ 'double' => PDO::PARAM_STR,
+ 'boolean' => PDO::PARAM_BOOL,
+ 'string' => PDO::PARAM_STR,
+ 'object' => PDO::PARAM_STR,
+ 'resource' => PDO::PARAM_LOB
+ ];
+
+ if ($type === 'boolean') {
+ $value = ($value ? '1' : '0');
+ } elseif ($type === 'NULL') {
+ $value = null;
+ }
+
+ return [$value, $map[$type]];
+ }
+
+ /**
+ * Build the statement part for the column stack.
+ *
+ * @param array|string $columns
+ * @param array $map
+ * @param bool $root
+ * @param bool $isJoin
+ * @return string
+ */
+ protected function columnPush(&$columns, array &$map, bool $root, bool $isJoin = false): string
+ {
+ if ($columns === '*') {
+ return $columns;
+ }
+
+ $stack = [];
+ $hasDistinct = false;
+
+ if (is_string($columns)) {
+ $columns = [$columns];
+ }
+
+ foreach ($columns as $key => $value) {
+ $isIntKey = is_int($key);
+ $isArrayValue = is_array($value);
+
+ if (!$isIntKey && $isArrayValue && $root && count(array_keys($columns)) === 1) {
+ $stack[] = $this->columnQuote($key);
+ $stack[] = $this->columnPush($value, $map, false, $isJoin);
+ } elseif ($isArrayValue) {
+ $stack[] = $this->columnPush($value, $map, false, $isJoin);
+ } elseif (!$isIntKey && $raw = $this->buildRaw($value, $map)) {
+ preg_match('/(?[\p{L}_][\p{L}\p{N}@$#\-_\.]*)(\s*\[(?(String|Bool|Int|Number))\])?/u', $key, $match);
+ $stack[] = "{$raw} AS {$this->columnQuote($match['column'])}";
+ } elseif ($isIntKey && is_string($value)) {
+ if ($isJoin && strpos($value, '*') !== false) {
+ throw new InvalidArgumentException('Cannot use table.* to select all columns while joining table.');
+ }
+
+ preg_match('/(?[\p{L}_][\p{L}\p{N}@$#\-_\.]*)(?:\s*\((?[\p{L}_][\p{L}\p{N}@$#\-_]*)\))?(?:\s*\[(?(?:String|Bool|Int|Number|Object|JSON))\])?/u', $value, $match);
+
+ $columnString = '';
+
+ if (!empty($match['alias'])) {
+ $columnString = "{$this->columnQuote($match['column'])} AS {$this->columnQuote($match['alias'])}";
+ $columns[$key] = $match['alias'];
+
+ if (!empty($match['type'])) {
+ $columns[$key] .= ' [' . $match['type'] . ']';
+ }
+ } else {
+ $columnString = $this->columnQuote($match['column']);
+ }
+
+ if (!$hasDistinct && strpos($value, '@') === 0) {
+ $columnString = 'DISTINCT ' . $columnString;
+ $hasDistinct = true;
+ array_unshift($stack, $columnString);
+
+ continue;
+ }
+
+ $stack[] = $columnString;
+ }
+ }
+
+ return implode(',', $stack);
+ }
+
+ /**
+ * Implode the Where conditions.
+ *
+ * @param array $data
+ * @param array $map
+ * @param string $conjunctor
+ * @return string
+ */
+ protected function dataImplode(array $data, array &$map, string $conjunctor): string
+ {
+ $stack = [];
+
+ foreach ($data as $key => $value) {
+ $type = gettype($value);
+
+ if (
+ $type === 'array' &&
+ preg_match("/^(AND|OR)(\s+#.*)?$/", $key, $relationMatch)
+ ) {
+ $stack[] = '(' . $this->dataImplode($value, $map, ' ' . $relationMatch[1]) . ')';
+ continue;
+ }
+
+ $mapKey = $this->mapKey();
+ $isIndex = is_int($key);
+
+ preg_match(
+ '/([\p{L}_][\p{L}\p{N}@$#\-_\.]*)(\[(?.*)\])?([\p{L}_][\p{L}\p{N}@$#\-_\.]*)?/u',
+ $isIndex ? $value : $key,
+ $match
+ );
+
+ $column = $this->columnQuote($match[1]);
+ $operator = $match['operator'] ?? null;
+
+ if ($isIndex && isset($match[4]) && in_array($operator, ['>', '>=', '<', '<=', '=', '!='])) {
+ $stack[] = "{$column} {$operator} " . $this->columnQuote($match[4]);
+ continue;
+ }
+
+ if ($operator && $operator != '=') {
+ if (in_array($operator, ['>', '>=', '<', '<='])) {
+ $condition = "{$column} {$operator} ";
+
+ if (is_numeric($value)) {
+ $condition .= $mapKey;
+ $map[$mapKey] = [$value, is_float($value) ? PDO::PARAM_STR : PDO::PARAM_INT];
+ } elseif ($raw = $this->buildRaw($value, $map)) {
+ $condition .= $raw;
+ } else {
+ $condition .= $mapKey;
+ $map[$mapKey] = [$value, PDO::PARAM_STR];
+ }
+
+ $stack[] = $condition;
+ } elseif ($operator === '!') {
+ switch ($type) {
+
+ case 'NULL':
+ $stack[] = $column . ' IS NOT NULL';
+ break;
+
+ case 'array':
+ $placeholders = [];
+
+ foreach ($value as $index => $item) {
+ $stackKey = $mapKey . $index . '_i';
+ $placeholders[] = $stackKey;
+ $map[$stackKey] = $this->typeMap($item, gettype($item));
+ }
+
+ $stack[] = $column . ' NOT IN (' . implode(', ', $placeholders) . ')';
+ break;
+
+ case 'object':
+ if ($raw = $this->buildRaw($value, $map)) {
+ $stack[] = "{$column} != {$raw}";
+ }
+ break;
+
+ case 'integer':
+ case 'double':
+ case 'boolean':
+ case 'string':
+ $stack[] = "{$column} != {$mapKey}";
+ $map[$mapKey] = $this->typeMap($value, $type);
+ break;
+ }
+ } elseif ($operator === '~' || $operator === '!~') {
+ if ($type !== 'array') {
+ $value = [$value];
+ }
+
+ $connector = ' OR ';
+ $data = array_values($value);
+
+ if (is_array($data[0])) {
+ if (isset($value['AND']) || isset($value['OR'])) {
+ $connector = ' ' . array_keys($value)[0] . ' ';
+ $value = $data[0];
+ }
+ }
+
+ $likeClauses = [];
+
+ foreach ($value as $index => $item) {
+ $item = strval($item);
+
+ if (!preg_match('/((?' || $operator === '><') {
+ if ($type === 'array') {
+ if ($operator === '><') {
+ $column .= ' NOT';
+ }
+
+ if ($this->isRaw($value[0]) && $this->isRaw($value[1])) {
+ $stack[] = "({$column} BETWEEN {$this->buildRaw($value[0], $map)} AND {$this->buildRaw($value[1], $map)})";
+ } else {
+ $stack[] = "({$column} BETWEEN {$mapKey}a AND {$mapKey}b)";
+ $dataType = (is_numeric($value[0]) && is_numeric($value[1])) ? PDO::PARAM_INT : PDO::PARAM_STR;
+
+ $map[$mapKey . 'a'] = [$value[0], $dataType];
+ $map[$mapKey . 'b'] = [$value[1], $dataType];
+ }
+ }
+ } elseif ($operator === 'REGEXP') {
+ $stack[] = "{$column} REGEXP {$mapKey}";
+ $map[$mapKey] = [$value, PDO::PARAM_STR];
+ } else {
+ throw new InvalidArgumentException("Invalid operator [{$operator}] for column {$column} supplied.");
+ }
+
+ continue;
+ }
+
+ switch ($type) {
+
+ case 'NULL':
+ $stack[] = $column . ' IS NULL';
+ break;
+
+ case 'array':
+ $placeholders = [];
+
+ foreach ($value as $index => $item) {
+ $stackKey = $mapKey . $index . '_i';
+
+ $placeholders[] = $stackKey;
+ $map[$stackKey] = $this->typeMap($item, gettype($item));
+ }
+
+ $stack[] = $column . ' IN (' . implode(', ', $placeholders) . ')';
+ break;
+
+ case 'object':
+ if ($raw = $this->buildRaw($value, $map)) {
+ $stack[] = "{$column} = {$raw}";
+ }
+ break;
+
+ case 'integer':
+ case 'double':
+ case 'boolean':
+ case 'string':
+ $stack[] = "{$column} = {$mapKey}";
+ $map[$mapKey] = $this->typeMap($value, $type);
+ break;
+ }
+ }
+
+ return implode($conjunctor . ' ', $stack);
+ }
+
+ /**
+ * Build the where clause.
+ *
+ * @param array|null $where
+ * @param array $map
+ * @return string
+ */
+ protected function whereClause($where, array &$map): string
+ {
+ $clause = '';
+
+ if (is_array($where)) {
+ $conditions = array_diff_key($where, array_flip(
+ ['GROUP', 'ORDER', 'HAVING', 'LIMIT', 'LIKE', 'MATCH']
+ ));
+
+ if (!empty($conditions)) {
+ $clause = ' WHERE ' . $this->dataImplode($conditions, $map, ' AND');
+ }
+
+ if (isset($where['MATCH']) && $this->type === 'mysql') {
+ $match = $where['MATCH'];
+
+ if (is_array($match) && isset($match['columns'], $match['keyword'])) {
+ $mode = '';
+
+ $options = [
+ 'natural' => 'IN NATURAL LANGUAGE MODE',
+ 'natural+query' => 'IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION',
+ 'boolean' => 'IN BOOLEAN MODE',
+ 'query' => 'WITH QUERY EXPANSION'
+ ];
+
+ if (isset($match['mode'], $options[$match['mode']])) {
+ $mode = ' ' . $options[$match['mode']];
+ }
+
+ $columns = implode(', ', array_map([$this, 'columnQuote'], $match['columns']));
+ $mapKey = $this->mapKey();
+ $map[$mapKey] = [$match['keyword'], PDO::PARAM_STR];
+ $clause .= ($clause !== '' ? ' AND ' : ' WHERE') . ' MATCH (' . $columns . ') AGAINST (' . $mapKey . $mode . ')';
+ }
+ }
+
+ if (isset($where['GROUP'])) {
+ $group = $where['GROUP'];
+
+ if (is_array($group)) {
+ $stack = [];
+
+ foreach ($group as $column => $value) {
+ $stack[] = $this->columnQuote($value);
+ }
+
+ $clause .= ' GROUP BY ' . implode(',', $stack);
+ } elseif ($raw = $this->buildRaw($group, $map)) {
+ $clause .= ' GROUP BY ' . $raw;
+ } else {
+ $clause .= ' GROUP BY ' . $this->columnQuote($group);
+ }
+ }
+
+ if (isset($where['HAVING'])) {
+ $having = $where['HAVING'];
+
+ if ($raw = $this->buildRaw($having, $map)) {
+ $clause .= ' HAVING ' . $raw;
+ } else {
+ $clause .= ' HAVING ' . $this->dataImplode($having, $map, ' AND');
+ }
+ }
+
+ if (isset($where['ORDER'])) {
+ $order = $where['ORDER'];
+
+ if (is_array($order)) {
+ $stack = [];
+
+ foreach ($order as $column => $value) {
+ if (is_array($value)) {
+ $valueStack = [];
+
+ foreach ($value as $item) {
+ $valueStack[] = is_int($item) ? $item : $this->quote($item);
+ }
+
+ $valueString = implode(',', $valueStack);
+ $stack[] = "FIELD({$this->columnQuote($column)}, {$valueString})";
+ } elseif ($value === 'ASC' || $value === 'DESC') {
+ $stack[] = $this->columnQuote($column) . ' ' . $value;
+ } elseif (is_int($column)) {
+ $stack[] = $this->columnQuote($value);
+ }
+ }
+
+ $clause .= ' ORDER BY ' . implode(',', $stack);
+ } elseif ($raw = $this->buildRaw($order, $map)) {
+ $clause .= ' ORDER BY ' . $raw;
+ } else {
+ $clause .= ' ORDER BY ' . $this->columnQuote($order);
+ }
+ }
+
+ if (isset($where['LIMIT'])) {
+ $limit = $where['LIMIT'];
+
+ if (in_array($this->type, ['oracle', 'mssql'])) {
+ if ($this->type === 'mssql' && !isset($where['ORDER'])) {
+ $clause .= ' ORDER BY (SELECT 0)';
+ }
+
+ if (is_numeric($limit)) {
+ $limit = [0, $limit];
+ }
+
+ if (
+ is_array($limit) &&
+ is_numeric($limit[0]) &&
+ is_numeric($limit[1])
+ ) {
+ $clause .= " OFFSET {$limit[0]} ROWS FETCH NEXT {$limit[1]} ROWS ONLY";
+ }
+ } else {
+ if (is_numeric($limit)) {
+ $clause .= ' LIMIT ' . $limit;
+ } elseif (
+ is_array($limit) &&
+ is_numeric($limit[0]) &&
+ is_numeric($limit[1])
+ ) {
+ $clause .= " LIMIT {$limit[1]} OFFSET {$limit[0]}";
+ }
+ }
+ }
+ } elseif ($raw = $this->buildRaw($where, $map)) {
+ $clause .= ' ' . $raw;
+ }
+
+ return $clause;
+ }
+
+ /**
+ * Build statement for the select query.
+ *
+ * @param string $table
+ * @param array $map
+ * @param array|string $join
+ * @param array|string $columns
+ * @param array $where
+ * @param string $columnFn
+ * @return string
+ */
+ protected function selectContext(
+ string $table,
+ array &$map,
+ $join,
+ &$columns = null,
+ $where = null,
+ $columnFn = null
+ ): string {
+ preg_match('/(?[\p{L}_][\p{L}\p{N}@$#\-_]*)\s*\((?[\p{L}_][\p{L}\p{N}@$#\-_]*)\)/u', $table, $tableMatch);
+
+ if (isset($tableMatch['table'], $tableMatch['alias'])) {
+ $table = $this->tableQuote($tableMatch['table']);
+ $tableAlias = $this->tableQuote($tableMatch['alias']);
+ $tableQuery = "{$table} AS {$tableAlias}";
+ } else {
+ $table = $this->tableQuote($table);
+ $tableQuery = $table;
+ }
+
+ $isJoin = $this->isJoin($join);
+
+ if ($isJoin) {
+ $tableQuery .= ' ' . $this->buildJoin($tableAlias ?? $table, $join, $map);
+ } else {
+ if (is_null($columns)) {
+ if (
+ !is_null($where) ||
+ (is_array($join) && isset($columnFn))
+ ) {
+ $where = $join;
+ $columns = null;
+ } else {
+ $where = null;
+ $columns = $join;
+ }
+ } else {
+ $where = $columns;
+ $columns = $join;
+ }
+ }
+
+ if (isset($columnFn)) {
+ if ($columnFn === 1) {
+ $column = '1';
+
+ if (is_null($where)) {
+ $where = $columns;
+ }
+ } elseif ($raw = $this->buildRaw($columnFn, $map)) {
+ $column = $raw;
+ } else {
+ if (empty($columns) || $this->isRaw($columns)) {
+ $columns = '*';
+ $where = $join;
+ }
+
+ $column = $columnFn . '(' . $this->columnPush($columns, $map, true) . ')';
+ }
+ } else {
+ $column = $this->columnPush($columns, $map, true, $isJoin);
+ }
+
+ return 'SELECT ' . $column . ' FROM ' . $tableQuery . $this->whereClause($where, $map);
+ }
+
+ /**
+ * Determine the array with join syntax.
+ *
+ * @param mixed $join
+ * @return bool
+ */
+ protected function isJoin($join): bool
+ {
+ if (!is_array($join)) {
+ return false;
+ }
+
+ $keys = array_keys($join);
+
+ if (
+ isset($keys[0]) &&
+ is_string($keys[0]) &&
+ strpos($keys[0], '[') === 0
+ ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Build the join statement.
+ *
+ * @param string $table
+ * @param array $join
+ * @param array $map
+ * @return string
+ */
+ protected function buildJoin(string $table, array $join, array &$map): string
+ {
+ $tableJoin = [];
+ $type = [
+ '>' => 'LEFT',
+ '<' => 'RIGHT',
+ '<>' => 'FULL',
+ '><' => 'INNER'
+ ];
+
+ foreach ($join as $subtable => $relation) {
+ preg_match('/(\[(?\<\>?|\>\)\])?(?[\p{L}_][\p{L}\p{N}@$#\-_]*)\s?(\((?[\p{L}_][\p{L}\p{N}@$#\-_]*)\))?/u', $subtable, $match);
+
+ if ($match['join'] === '' || $match['table'] === '') {
+ continue;
+ }
+
+ if (is_string($relation)) {
+ $relation = 'USING ("' . $relation . '")';
+ } elseif (is_array($relation)) {
+ // For ['column1', 'column2']
+ if (isset($relation[0])) {
+ $relation = 'USING ("' . implode('", "', $relation) . '")';
+ } else {
+ $joins = [];
+
+ foreach ($relation as $key => $value) {
+ if ($key === 'AND' && is_array($value)) {
+ $joins[] = $this->dataImplode($value, $map, ' AND');
+ continue;
+ }
+
+ $joins[] = (
+ strpos($key, '.') > 0 ?
+ // For ['tableB.column' => 'column']
+ $this->columnQuote($key) :
+
+ // For ['column1' => 'column2']
+ $table . '.' . $this->columnQuote($key)
+ ) .
+ ' = ' .
+ $this->tableQuote($match['alias'] ?? $match['table']) . '.' . $this->columnQuote($value);
+ }
+
+ $relation = 'ON ' . implode(' AND ', $joins);
+ }
+ } elseif ($raw = $this->buildRaw($relation, $map)) {
+ $relation = $raw;
+ }
+
+ $tableName = $this->tableQuote($match['table']);
+
+ if (isset($match['alias'])) {
+ $tableName .= ' AS ' . $this->tableQuote($match['alias']);
+ }
+
+ $tableJoin[] = $type[$match['join']] . " JOIN {$tableName} {$relation}";
+ }
+
+ return implode(' ', $tableJoin);
+ }
+
+ /**
+ * Mapping columns for the stack.
+ *
+ * @param array|string $columns
+ * @param array $stack
+ * @param bool $root
+ * @return array
+ */
+ protected function columnMap($columns, array &$stack, bool $root): array
+ {
+ if ($columns === '*') {
+ return $stack;
+ }
+
+ foreach ($columns as $key => $value) {
+ if (is_int($key)) {
+ preg_match('/([\p{L}_][\p{L}\p{N}@$#\-_]*\.)?(?[\p{L}_][\p{L}\p{N}@$#\-_]*)(?:\s*\((?[\p{L}_][\p{L}\p{N}@$#\-_]*)\))?(?:\s*\[(?(?:String|Bool|Int|Number|Object|JSON))\])?/u', $value, $keyMatch);
+
+ $columnKey = !empty($keyMatch['alias']) ?
+ $keyMatch['alias'] :
+ $keyMatch['column'];
+
+ $stack[$value] = isset($keyMatch['type']) ?
+ [$columnKey, $keyMatch['type']] :
+ [$columnKey];
+ } elseif ($this->isRaw($value)) {
+ preg_match('/([\p{L}_][\p{L}\p{N}@$#\-_]*\.)?(?[\p{L}_][\p{L}\p{N}@$#\-_]*)(\s*\[(?(String|Bool|Int|Number))\])?/u', $key, $keyMatch);
+ $columnKey = $keyMatch['column'];
+
+ $stack[$key] = isset($keyMatch['type']) ?
+ [$columnKey, $keyMatch['type']] :
+ [$columnKey];
+ } elseif (!is_int($key) && is_array($value)) {
+ if ($root && count(array_keys($columns)) === 1) {
+ $stack[$key] = [$key, 'String'];
+ }
+
+ $this->columnMap($value, $stack, false);
+ }
+ }
+
+ return $stack;
+ }
+
+ /**
+ * Mapping the data from the table.
+ *
+ * @param array $data
+ * @param array $columns
+ * @param array $columnMap
+ * @param array $stack
+ * @param bool $root
+ * @param array $result
+ * @codeCoverageIgnore
+ * @return void
+ */
+ protected function dataMap(
+ array $data,
+ array $columns,
+ array $columnMap,
+ array &$stack,
+ bool $root,
+ array &$result = null
+ ): void {
+ if ($root) {
+ $columnsKey = array_keys($columns);
+
+ if (count($columnsKey) === 1 && is_array($columns[$columnsKey[0]])) {
+ $indexKey = array_keys($columns)[0];
+ $dataKey = preg_replace("/^[\p{L}_][\p{L}\p{N}@$#\-_]*\./u", '', $indexKey);
+ $currentStack = [];
+
+ foreach ($data as $item) {
+ $this->dataMap($data, $columns[$indexKey], $columnMap, $currentStack, false, $result);
+ $index = $data[$dataKey];
+
+ if (isset($result)) {
+ $result[$index] = $currentStack;
+ } else {
+ $stack[$index] = $currentStack;
+ }
+ }
+ } else {
+ $currentStack = [];
+ $this->dataMap($data, $columns, $columnMap, $currentStack, false, $result);
+
+ if (isset($result)) {
+ $result[] = $currentStack;
+ } else {
+ $stack = $currentStack;
+ }
+ }
+
+ return;
+ }
+
+ foreach ($columns as $key => $value) {
+ $isRaw = $this->isRaw($value);
+
+ if (is_int($key) || $isRaw) {
+ $map = $columnMap[$isRaw ? $key : $value];
+ $columnKey = $map[0];
+ $item = $data[$columnKey];
+
+ if (isset($map[1])) {
+ if ($isRaw && in_array($map[1], ['Object', 'JSON'])) {
+ continue;
+ }
+
+ if (is_null($item)) {
+ $stack[$columnKey] = null;
+ continue;
+ }
+
+ switch ($map[1]) {
+
+ case 'Number':
+ $stack[$columnKey] = (float) $item;
+ break;
+
+ case 'Int':
+ $stack[$columnKey] = (int) $item;
+ break;
+
+ case 'Bool':
+ $stack[$columnKey] = (bool) $item;
+ break;
+
+ case 'Object':
+ $stack[$columnKey] = unserialize($item);
+ break;
+
+ case 'JSON':
+ $stack[$columnKey] = json_decode($item, true);
+ break;
+
+ case 'String':
+ $stack[$columnKey] = (string) $item;
+ break;
+ }
+ } else {
+ $stack[$columnKey] = $item;
+ }
+ } else {
+ $currentStack = [];
+ $this->dataMap($data, $value, $columnMap, $currentStack, false, $result);
+
+ $stack[$key] = $currentStack;
+ }
+ }
+ }
+
+ /**
+ * Build and execute returning query.
+ *
+ * @param string $query
+ * @param array $map
+ * @param array $data
+ * @return \PDOStatement|null
+ */
+ private function returningQuery($query, &$map, &$data): ?PDOStatement
+ {
+ $returnColumns = array_map(
+ function ($value) {
+ return $value[0];
+ },
+ $data
+ );
+
+ $query .= ' RETURNING ' .
+ implode(', ', array_map([$this, 'columnQuote'], $returnColumns)) .
+ ' INTO ' .
+ implode(', ', array_keys($data));
+
+ return $this->exec($query, $map, function ($statement) use (&$data) {
+ // @codeCoverageIgnoreStart
+ foreach ($data as $key => $return) {
+ if (isset($return[3])) {
+ $statement->bindParam($key, $data[$key][1], $return[2], $return[3]);
+ } else {
+ $statement->bindParam($key, $data[$key][1], $return[2]);
+ }
+ }
+ // @codeCoverageIgnoreEnd
+ });
+ }
+
+ /**
+ * Create a table.
+ *
+ * @param string $table
+ * @param array $columns Columns definition.
+ * @param array $options Additional table options for creating a table.
+ * @return \PDOStatement|null
+ */
+ public function create(string $table, $columns, $options = null): ?PDOStatement
+ {
+ $stack = [];
+ $tableOption = '';
+ $tableName = $this->tableQuote($table);
+
+ foreach ($columns as $name => $definition) {
+ if (is_int($name)) {
+ $stack[] = preg_replace('/\<([\p{L}_][\p{L}\p{N}@$#\-_]*)\>/u', '"$1"', $definition);
+ } elseif (is_array($definition)) {
+ $stack[] = $this->columnQuote($name) . ' ' . implode(' ', $definition);
+ } elseif (is_string($definition)) {
+ $stack[] = $this->columnQuote($name) . ' ' . $definition;
+ }
+ }
+
+ if (is_array($options)) {
+ $optionStack = [];
+
+ foreach ($options as $key => $value) {
+ if (is_string($value) || is_int($value)) {
+ $optionStack[] = "{$key} = {$value}";
+ }
+ }
+
+ $tableOption = ' ' . implode(', ', $optionStack);
+ } elseif (is_string($options)) {
+ $tableOption = ' ' . $options;
+ }
+
+ $command = 'CREATE TABLE';
+
+ if (in_array($this->type, ['mysql', 'pgsql', 'sqlite'])) {
+ $command .= ' IF NOT EXISTS';
+ }
+
+ return $this->exec("{$command} {$tableName} (" . implode(', ', $stack) . "){$tableOption}");
+ }
+
+ /**
+ * Drop a table.
+ *
+ * @param string $table
+ * @return \PDOStatement|null
+ */
+ public function drop(string $table): ?PDOStatement
+ {
+ return $this->exec('DROP TABLE IF EXISTS ' . $this->tableQuote($table));
+ }
+
+ /**
+ * Select data from the table.
+ *
+ * @param string $table
+ * @param array $join
+ * @param array|string $columns
+ * @param array $where
+ * @return array|null
+ */
+ public function select(string $table, $join, $columns = null, $where = null): ?array
+ {
+ $map = [];
+ $result = [];
+ $columnMap = [];
+
+ $args = func_get_args();
+ $lastArgs = $args[array_key_last($args)];
+ $callback = is_callable($lastArgs) ? $lastArgs : null;
+
+ $where = is_callable($where) ? null : $where;
+ $columns = is_callable($columns) ? null : $columns;
+
+ $column = $where === null ? $join : $columns;
+ $isSingle = (is_string($column) && $column !== '*');
+
+ $statement = $this->exec($this->selectContext($table, $map, $join, $columns, $where), $map);
+
+ $this->columnMap($columns, $columnMap, true);
+
+ if (!$this->statement) {
+ return $result;
+ }
+
+ // @codeCoverageIgnoreStart
+ if ($columns === '*') {
+ if (isset($callback)) {
+ while ($data = $statement->fetch(PDO::FETCH_ASSOC)) {
+ $callback($data);
+ }
+
+ return null;
+ }
+
+ return $statement->fetchAll(PDO::FETCH_ASSOC);
+ }
+
+ while ($data = $statement->fetch(PDO::FETCH_ASSOC)) {
+ $currentStack = [];
+
+ if (isset($callback)) {
+ $this->dataMap($data, $columns, $columnMap, $currentStack, true);
+
+ $callback(
+ $isSingle ?
+ $currentStack[$columnMap[$column][0]] :
+ $currentStack
+ );
+ } else {
+ $this->dataMap($data, $columns, $columnMap, $currentStack, true, $result);
+ }
+ }
+
+ if (isset($callback)) {
+ return null;
+ }
+
+ if ($isSingle) {
+ $singleResult = [];
+ $resultKey = $columnMap[$column][0];
+
+ foreach ($result as $item) {
+ $singleResult[] = $item[$resultKey];
+ }
+
+ return $singleResult;
+ }
+
+ return $result;
+ }
+ // @codeCoverageIgnoreEnd
+
+ /**
+ * Insert one or more records into the table.
+ *
+ * @param string $table
+ * @param array $values
+ * @param string $primaryKey
+ * @return \PDOStatement|null
+ */
+ public function insert(string $table, array $values, string $primaryKey = null): ?PDOStatement
+ {
+ $stack = [];
+ $columns = [];
+ $fields = [];
+ $map = [];
+ $returnings = [];
+
+ if (!isset($values[0])) {
+ $values = [$values];
+ }
+
+ foreach ($values as $data) {
+ foreach ($data as $key => $value) {
+ $columns[] = $key;
+ }
+ }
+
+ $columns = array_unique($columns);
+
+ foreach ($values as $data) {
+ $values = [];
+
+ foreach ($columns as $key) {
+ $value = $data[$key];
+ $type = gettype($value);
+
+ if ($this->type === 'oracle' && $type === 'resource') {
+ $values[] = 'EMPTY_BLOB()';
+ $returnings[$this->mapKey()] = [$key, $value, PDO::PARAM_LOB];
+ continue;
+ }
+
+ if ($raw = $this->buildRaw($data[$key], $map)) {
+ $values[] = $raw;
+ continue;
+ }
+
+ $mapKey = $this->mapKey();
+ $values[] = $mapKey;
+
+ switch ($type) {
+
+ case 'array':
+ $map[$mapKey] = [
+ strpos($key, '[JSON]') === strlen($key) - 6 ?
+ json_encode($value) :
+ serialize($value),
+ PDO::PARAM_STR
+ ];
+ break;
+
+ case 'object':
+ $value = serialize($value);
+ break;
+
+ case 'NULL':
+ case 'resource':
+ case 'boolean':
+ case 'integer':
+ case 'double':
+ case 'string':
+ $map[$mapKey] = $this->typeMap($value, $type);
+ break;
+ }
+ }
+
+ $stack[] = '(' . implode(', ', $values) . ')';
+ }
+
+ foreach ($columns as $key) {
+ $fields[] = $this->columnQuote(preg_replace("/(\s*\[JSON\]$)/i", '', $key));
+ }
+
+ $query = 'INSERT INTO ' . $this->tableQuote($table) . ' (' . implode(', ', $fields) . ') VALUES ' . implode(', ', $stack);
+
+ if (
+ $this->type === 'oracle' && (!empty($returnings) || isset($primaryKey))
+ ) {
+ if ($primaryKey) {
+ $returnings[':RETURNID'] = [$primaryKey, '', PDO::PARAM_INT, 8];
+ }
+
+ $statement = $this->returningQuery($query, $map, $returnings);
+
+ if ($primaryKey) {
+ $this->returnId = $returnings[':RETURNID'][1];
+ }
+
+ return $statement;
+ }
+
+ return $this->exec($query, $map);
+ }
+
+ /**
+ * Modify data from the table.
+ *
+ * @param string $table
+ * @param array $data
+ * @param array $where
+ * @return \PDOStatement|null
+ */
+ public function update(string $table, $data, $where = null): ?PDOStatement
+ {
+ $fields = [];
+ $map = [];
+ $returnings = [];
+
+ foreach ($data as $key => $value) {
+ $column = $this->columnQuote(preg_replace("/(\s*\[(JSON|\+|\-|\*|\/)\]$)/", '', $key));
+ $type = gettype($value);
+
+ if ($this->type === 'oracle' && $type === 'resource') {
+ $fields[] = "{$column} = EMPTY_BLOB()";
+ $returnings[$this->mapKey()] = [$key, $value, PDO::PARAM_LOB];
+ continue;
+ }
+
+ if ($raw = $this->buildRaw($value, $map)) {
+ $fields[] = "{$column} = {$raw}";
+ continue;
+ }
+
+ preg_match('/(?[\p{L}_][\p{L}\p{N}@$#\-_]*)(\[(?\+|\-|\*|\/)\])?/u', $key, $match);
+
+ if (isset($match['operator'])) {
+ if (is_numeric($value)) {
+ $fields[] = "{$column} = {$column} {$match['operator']} {$value}";
+ }
+ } else {
+ $mapKey = $this->mapKey();
+ $fields[] = "{$column} = {$mapKey}";
+
+ switch ($type) {
+
+ case 'array':
+ $map[$mapKey] = [
+ strpos($key, '[JSON]') === strlen($key) - 6 ?
+ json_encode($value) :
+ serialize($value),
+ PDO::PARAM_STR
+ ];
+ break;
+
+ case 'object':
+ $value = serialize($value);
+
+ break;
+ case 'NULL':
+ case 'resource':
+ case 'boolean':
+ case 'integer':
+ case 'double':
+ case 'string':
+ $map[$mapKey] = $this->typeMap($value, $type);
+ break;
+ }
+ }
+ }
+
+ $query = 'UPDATE ' . $this->tableQuote($table) . ' SET ' . implode(', ', $fields) . $this->whereClause($where, $map);
+
+ if ($this->type === 'oracle' && !empty($returnings)) {
+ return $this->returningQuery($query, $map, $returnings);
+ }
+
+ return $this->exec($query, $map);
+ }
+
+ /**
+ * Delete data from the table.
+ *
+ * @param string $table
+ * @param array|Raw $where
+ * @return \PDOStatement|null
+ */
+ public function delete(string $table, $where): ?PDOStatement
+ {
+ $map = [];
+
+ return $this->exec('DELETE FROM ' . $this->tableQuote($table) . $this->whereClause($where, $map), $map);
+ }
+
+ /**
+ * Replace old data with a new one.
+ *
+ * @param string $table
+ * @param array $columns
+ * @param array $where
+ * @return \PDOStatement|null
+ */
+ public function replace(string $table, array $columns, $where = null): ?PDOStatement
+ {
+ $map = [];
+ $stack = [];
+
+ foreach ($columns as $column => $replacements) {
+ if (is_array($replacements)) {
+ foreach ($replacements as $old => $new) {
+ $mapKey = $this->mapKey();
+ $columnName = $this->columnQuote($column);
+ $stack[] = "{$columnName} = REPLACE({$columnName}, {$mapKey}a, {$mapKey}b)";
+
+ $map[$mapKey . 'a'] = [$old, PDO::PARAM_STR];
+ $map[$mapKey . 'b'] = [$new, PDO::PARAM_STR];
+ }
+ }
+ }
+
+ if (empty($stack)) {
+ throw new InvalidArgumentException('Invalid columns supplied.');
+ }
+
+ return $this->exec('UPDATE ' . $this->tableQuote($table) . ' SET ' . implode(', ', $stack) . $this->whereClause($where, $map), $map);
+ }
+
+ /**
+ * Get only one record from the table.
+ *
+ * @param string $table
+ * @param array $join
+ * @param array|string $columns
+ * @param array $where
+ * @return mixed
+ */
+ public function get(string $table, $join = null, $columns = null, $where = null)
+ {
+ $map = [];
+ $result = [];
+ $columnMap = [];
+ $currentStack = [];
+
+ if ($where === null) {
+ if ($this->isJoin($join)) {
+ $where['LIMIT'] = 1;
+ } else {
+ $columns['LIMIT'] = 1;
+ }
+
+ $column = $join;
+ } else {
+ $column = $columns;
+ $where['LIMIT'] = 1;
+ }
+
+ $isSingle = (is_string($column) && $column !== '*');
+ $query = $this->exec($this->selectContext($table, $map, $join, $columns, $where), $map);
+
+ if (!$this->statement) {
+ return false;
+ }
+
+ // @codeCoverageIgnoreStart
+ $data = $query->fetchAll(PDO::FETCH_ASSOC);
+
+ if (isset($data[0])) {
+ if ($column === '*') {
+ return $data[0];
+ }
+
+ $this->columnMap($columns, $columnMap, true);
+ $this->dataMap($data[0], $columns, $columnMap, $currentStack, true, $result);
+
+ if ($isSingle) {
+ return $result[0][$columnMap[$column][0]];
+ }
+
+ return $result[0];
+ }
+ }
+ // @codeCoverageIgnoreEnd
+
+ /**
+ * Determine whether the target data existed from the table.
+ *
+ * @param string $table
+ * @param array $join
+ * @param array $where
+ * @return bool
+ */
+ public function has(string $table, $join, $where = null): bool
+ {
+ $map = [];
+ $column = null;
+
+ $query = $this->exec(
+ $this->type === 'mssql' ?
+ $this->selectContext($table, $map, $join, $column, $where, Medoo::raw('TOP 1 1')) :
+ 'SELECT EXISTS(' . $this->selectContext($table, $map, $join, $column, $where, 1) . ')',
+ $map
+ );
+
+ if (!$this->statement) {
+ return false;
+ }
+
+ // @codeCoverageIgnoreStart
+ $result = $query->fetchColumn();
+
+ return $result === '1' || $result === 1 || $result === true;
+ }
+ // @codeCoverageIgnoreEnd
+
+ /**
+ * Randomly fetch data from the table.
+ *
+ * @param string $table
+ * @param array $join
+ * @param array|string $columns
+ * @param array $where
+ * @return array
+ */
+ public function rand(string $table, $join = null, $columns = null, $where = null): array
+ {
+ $orderRaw = $this->raw(
+ $this->type === 'mysql' ? 'RAND()'
+ : ($this->type === 'mssql' ? 'NEWID()'
+ : 'RANDOM()')
+ );
+
+ if ($where === null) {
+ if ($this->isJoin($join)) {
+ $where['ORDER'] = $orderRaw;
+ } else {
+ $columns['ORDER'] = $orderRaw;
+ }
+ } else {
+ $where['ORDER'] = $orderRaw;
+ }
+
+ return $this->select($table, $join, $columns, $where);
+ }
+
+ /**
+ * Build for the aggregate function.
+ *
+ * @param string $type
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return string|null
+ */
+ private function aggregate(string $type, string $table, $join = null, $column = null, $where = null): ?string
+ {
+ $map = [];
+
+ $query = $this->exec($this->selectContext($table, $map, $join, $column, $where, $type), $map);
+
+ if (!$this->statement) {
+ return null;
+ }
+
+ // @codeCoverageIgnoreStart
+ return (string) $query->fetchColumn();
+ }
+ // @codeCoverageIgnoreEnd
+
+ /**
+ * Count the number of rows from the table.
+ *
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return int|null
+ */
+ public function count(string $table, $join = null, $column = null, $where = null): ?int
+ {
+ return (int) $this->aggregate('COUNT', $table, $join, $column, $where);
+ }
+
+ /**
+ * Calculate the average value of the column.
+ *
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return string|null
+ */
+ public function avg(string $table, $join, $column = null, $where = null): ?string
+ {
+ return $this->aggregate('AVG', $table, $join, $column, $where);
+ }
+
+ /**
+ * Get the maximum value of the column.
+ *
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return string|null
+ */
+ public function max(string $table, $join, $column = null, $where = null): ?string
+ {
+ return $this->aggregate('MAX', $table, $join, $column, $where);
+ }
+
+ /**
+ * Get the minimum value of the column.
+ *
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return string|null
+ */
+ public function min(string $table, $join, $column = null, $where = null): ?string
+ {
+ return $this->aggregate('MIN', $table, $join, $column, $where);
+ }
+
+ /**
+ * Calculate the total value of the column.
+ *
+ * @param string $table
+ * @param array $join
+ * @param string $column
+ * @param array $where
+ * @return string|null
+ */
+ public function sum(string $table, $join, $column = null, $where = null): ?string
+ {
+ return $this->aggregate('SUM', $table, $join, $column, $where);
+ }
+
+ /**
+ * Start a transaction.
+ *
+ * @param callable $actions
+ * @codeCoverageIgnore
+ * @return void
+ */
+ public function action(callable $actions): void
+ {
+ if (is_callable($actions)) {
+ $this->pdo->beginTransaction();
+
+ try {
+ $result = $actions($this);
+
+ if ($result === false) {
+ $this->pdo->rollBack();
+ } else {
+ $this->pdo->commit();
+ }
+ } catch (Exception $e) {
+ $this->pdo->rollBack();
+ throw $e;
+ }
+ }
+ }
+
+ /**
+ * Return the ID for the last inserted row.
+ *
+ * @param string $name
+ * @codeCoverageIgnore
+ * @return string|null
+ */
+ public function id(string $name = null): ?string
+ {
+ $type = $this->type;
+
+ if ($type === 'oracle') {
+ return $this->returnId;
+ } elseif ($type === 'pgsql') {
+ $id = $this->pdo->query('SELECT LASTVAL()')->fetchColumn();
+
+ return (string) $id ?: null;
+ }
+
+ return $this->pdo->lastInsertId($name);
+ }
+
+ public function sql_exec( $bindings, $sql=null )
+ {
+ // Argument shifting
+ if ( $sql === null ) {
+ $sql = $bindings;
+ }
+
+ $stmt = $this->pdo->prepare( $sql );
+
+ // Bind parameters
+ if ( is_array( $bindings ) ) {
+ for ( $i=0, $ien=count($bindings) ; $i<$ien ; $i++ ) {
+ $binding = $bindings[$i];
+ $stmt->bindValue( $binding['key'], $binding['val'], $binding['type'] );
+ }
+ }
+
+ // Execute
+ try {
+ $stmt->execute();
+ }
+ catch (PDOException $e) {
+ die(json_encode( array( "error" => "An SQL error occurred: ".$e->getMessage() )));
+ }
+
+ // Return all
+ return $stmt->fetchAll();
+ }
+
+ /**
+ * Enable debug mode and output readable statement string.
+ *
+ * @codeCoverageIgnore
+ * @return Medoo
+ */
+ public function debug(): self
+ {
+ $this->debugMode = true;
+
+ return $this;
+ }
+
+ /**
+ * Enable debug logging mode.
+ *
+ * @codeCoverageIgnore
+ * @return void
+ */
+ public function beginDebug(): void
+ {
+ $this->debugMode = true;
+ $this->debugLogging = true;
+ }
+
+ /**
+ * Disable debug logging and return all readable statements.
+ *
+ * @codeCoverageIgnore
+ * @return void
+ */
+ public function debugLog(): array
+ {
+ $this->debugMode = false;
+ $this->debugLogging = false;
+
+ return $this->debugLogs;
+ }
+
+ /**
+ * Return the last performed statement.
+ *
+ * @codeCoverageIgnore
+ * @return string|null
+ */
+ public function last(): ?string
+ {
+ if (empty($this->logs)) {
+ return null;
+ }
+
+ $log = $this->logs[array_key_last($this->logs)];
+
+ return $this->generate($log[0], $log[1]);
+ }
+
+ /**
+ * Return all executed statements.
+ *
+ * @codeCoverageIgnore
+ * @return string[]
+ */
+ public function log(): array
+ {
+ return array_map(
+ function ($log) {
+ return $this->generate($log[0], $log[1]);
+ },
+ $this->logs
+ );
+ }
+
+ /**
+ * Get information about the database connection.
+ *
+ * @codeCoverageIgnore
+ * @return array
+ */
+ public function info(): array
+ {
+ $output = [
+ 'server' => 'SERVER_INFO',
+ 'driver' => 'DRIVER_NAME',
+ 'client' => 'CLIENT_VERSION',
+ 'version' => 'SERVER_VERSION',
+ 'connection' => 'CONNECTION_STATUS'
+ ];
+
+ foreach ($output as $key => $value) {
+ try {
+ $output[$key] = $this->pdo->getAttribute(constant('PDO::ATTR_' . $value));
+ } catch (PDOException $e) {
+ $output[$key] = $e->getMessage();
+ }
+ }
+
+ $output['dsn'] = $this->dsn;
+
+ return $output;
+ }
+}
+?>
diff --git a/class/class.emoji.php b/class/class.emoji.php
new file mode 100644
index 0000000..cdb55f2
--- /dev/null
+++ b/class/class.emoji.php
@@ -0,0 +1,7 @@
+
diff --git a/class/class.export.php b/class/class.export.php
new file mode 100644
index 0000000..4856990
--- /dev/null
+++ b/class/class.export.php
@@ -0,0 +1,47 @@
+ $val) {
+ $key_array[] = $key;
+ $val = str_replace('"', '""', $val);
+ $val_array[] = "\"$val\"";
+ }
+ if($b == 0) {
+ $string .= implode(",", $key_array)."\n";
+ }
+ $string .= implode(",", $val_array)."\n";
+ $b++;
+ }
+ emailExport::downloadFile($string, $filename);
+ }
+
+ private static function downloadFile($string, $filename) {
+ header("Pragma: public");
+ header("Expires: 0");
+ header("Cache-Control: private");
+ header("Content-type: application/octet-stream");
+ header("Content-Disposition: attachment; filename=$filename");
+ header("Accept-Ranges: bytes");
+ echo $string;
+ exit;
+ }
+}
+
+?>
diff --git a/class/class.imap.php b/class/class.imap.php
new file mode 100644
index 0000000..12d0f46
--- /dev/null
+++ b/class/class.imap.php
@@ -0,0 +1,734 @@
+
+ * @modified JAKWEB / Version 1.2
+ */
+class Imap {
+
+ /**
+ * imap connection
+ */
+ protected $imap = false;
+
+ /**
+ * mailbox url string
+ */
+ protected $mailbox = "";
+
+ /**
+ * currentfolder
+ */
+ protected $folder = "Inbox";
+
+ /**
+ * initialize imap helper
+ *
+ * @return void
+ * @param $mailbox imap_open string
+ * @param $username
+ * @param $password
+ * @param $encryption ssl or tls
+ */
+ public function __construct($mailbox, $username, $password, $encryption = false) {
+ $enc = '';
+ if($encryption!=null && isset($encryption) && $encryption=='ssl')
+ $enc = '/imap/ssl/novalidate-cert';
+ else if($encryption!=null && isset($encryption) && $encryption=='tls')
+ $enc = '/imap/tls/novalidate-cert';
+ $this->mailbox = "{" . $mailbox . $enc . "}";
+ $this->imap = @imap_open($this->mailbox, $username, $password);
+ }
+
+
+ /**
+ * close connection
+ */
+ function __destruct() {
+ if($this->imap !== false) imap_close($this->imap);
+ }
+
+
+ /**
+ * returns true after successfull connection
+ *
+ * @return bool true on success
+ */
+ public function isConnected() {
+ return $this->imap !== false;
+ }
+
+
+ /**
+ * returns last imap error
+ *
+ * @return string error message
+ */
+ public function getError() {
+ return imap_last_error();
+ }
+
+
+ /**
+ * select given folder
+ *
+ * @return bool successfull opened folder
+ * @param $folder name
+ */
+ public function selectFolder($folder) {
+ $result = imap_reopen($this->imap, $this->mailbox . $folder);
+ if($result === true)
+ $this->folder = $folder;
+ return $result;
+ }
+
+
+ /**
+ * returns all available folders
+ *
+ * @return array with foldernames
+ */
+ public function getFolders() {
+ $folders = imap_list($this->imap, $this->mailbox, "*");
+ return str_replace($this->mailbox, "", $folders);
+ }
+
+
+ /**
+ * returns the number of messages in the current folder
+ *
+ * @return int message count
+ */
+ public function countMessages() {
+ return imap_num_msg($this->imap);
+ }
+
+
+ /**
+ * returns the number of unread messages in the current folder
+ *
+ * @return int message count
+ */
+ public function countUnreadMessages() {
+ $result = imap_search($this->imap, 'UNSEEN');
+ if($result===false)
+ return 0;
+ return count($result);
+ }
+
+ /**
+ * returns unseen emails in the current folder
+ *
+ * @return array messages
+ * @param $withbody without body
+ */
+ public function getUnreadMessages($withbody=true){
+ $emails = array();
+ $result = imap_search($this->imap, 'UNSEEN');
+ if($result){
+ foreach($result as $k=>$i){
+ $emails[]= $this->formatMessage($i, $withbody);
+ }
+ }
+ return $emails;
+ }
+
+
+ /**
+ * returns all emails in the current folder
+ *
+ * @return array messages
+ * @param $withbody without body
+ */
+ public function getMessages($withbody = true) {
+ $count = $this->countMessages();
+ $emails = array();
+ for($i=1;$i<=$count;$i++) {
+ $emails[]= $this->formatMessage($i, $withbody);
+ }
+
+ // sort emails descending by date
+ // usort($emails, function($a, $b) {
+ // try {
+ // $datea = new \DateTime($a['date']);
+ // $dateb = new \DateTime($b['date']);
+ // } catch(\Exception $e) {
+ // return 0;
+ // }
+ // if ($datea == $dateb)
+ // return 0;
+ // return $datea < $dateb ? 1 : -1;
+ // });
+
+ return $emails;
+ }
+
+ /**
+ * returns email by given id
+ *
+ * @return array messages
+ * @param $id
+ * @param $withbody without body
+ */
+ public function getMessage($id, $withbody = true) {
+ return $this->formatMessage($id, $withbody);
+ }
+
+ /**
+ * @param $id
+ * @param bool $withbody
+ * @return array
+ */
+ protected function formatMessage($id, $withbody=true){
+ $header = imap_headerinfo($this->imap, $id);
+
+ // fetch unique uid
+ $uid = imap_uid($this->imap, $id);
+
+ // Get the header from simply
+ $fromname = $fromaddress = '';
+ foreach ($header->from as $id => $object) {
+ $fromname = $object->personal;
+ $fromaddress = $object->mailbox . "@" . $object->host;
+ }
+
+ // get email data
+ $subject = '';
+ if ( isset($header->subject) && strlen($header->subject) > 0 ) {
+ foreach(imap_mime_header_decode($header->subject) as $obj){
+ $subject .= $obj->text;
+ }
+ }
+ $subject = $this->convertToUtf8($subject);
+ $email = array(
+ 'to' => isset($header->to) ? $this->arrayToAddress($header->to) : '',
+ 'from' => $this->convertToUtf8($fromaddress),
+ 'fromname' => $this->convertToUtf8($fromname),
+ 'date' => $header->date,
+ 'subject' => $subject,
+ 'uid' => $uid,
+ 'unread' => strlen(trim($header->Unseen))>0,
+ 'answered' => strlen(trim($header->Answered))>0,
+ 'deleted' => strlen(trim($header->Deleted))>0
+ );
+ if(isset($header->cc))
+ $email['cc'] = $this->arrayToAddress($header->cc);
+
+ // get email body
+ if($withbody===true) {
+ $body = $this->getBody($uid);
+ $email['body'] = $body['body'];
+ $email['html'] = $body['html'];
+ }
+
+ return $email;
+ }
+
+ /**
+ * delete given message
+ *
+ * @return bool success or not
+ * @param $id of the message
+ */
+ public function deleteMessage($id) {
+ return $this->deleteMessages(array($id));
+ }
+
+
+ /**
+ * delete messages
+ *
+ * @return bool success or not
+ * @param $ids array of ids
+ */
+ public function deleteMessages($ids) {
+ if( imap_mail_move($this->imap, implode(",", $ids), $this->getTrash(), CP_UID) == false)
+ return false;
+ return imap_expunge($this->imap);
+ }
+
+
+ /**
+ * move given message in new folder
+ *
+ * @return bool success or not
+ * @param $id of the message
+ * @param $target new folder
+ */
+ public function moveMessage($id, $target) {
+ return $this->moveMessages(array($id), $target);
+ }
+
+
+ /**
+ * move given message in new folder
+ *
+ * @return bool success or not
+ * @param $ids array of message ids
+ * @param $target new folder
+ */
+ public function moveMessages($ids, $target) {
+ if(imap_mail_move($this->imap, implode(",", $ids), $target, CP_UID)===false)
+ return false;
+ return imap_expunge($this->imap);
+ }
+
+
+ /**
+ * mark message as read
+ *
+ * @return bool success or not
+ * @param $id of the message
+ * @param $seen true = message is read, false = message is unread
+ */
+ public function setUnseenMessage($id, $seen = true) {
+ $header = $this->getMessageHeader($id);
+ if($header==false)
+ return false;
+
+ $flags = "";
+ $flags .= (strlen(trim($header->Answered))>0 ? "\\Answered " : '');
+ $flags .= (strlen(trim($header->Flagged))>0 ? "\\Flagged " : '');
+ $flags .= (strlen(trim($header->Deleted))>0 ? "\\Deleted " : '');
+ $flags .= (strlen(trim($header->Draft))>0 ? "\\Draft " : '');
+
+ $flags .= (($seen == true) ? '\\Seen ' : ' ');
+ //echo "\n
".$id.": ".$flags;
+ imap_clearflag_full($this->imap, $id, '\\Seen', ST_UID);
+ return imap_setflag_full($this->imap, $id, trim($flags), ST_UID);
+ }
+
+
+ /**
+ * return content of messages attachment
+ *
+ * @return binary attachment
+ * @param $id of the message
+ * @param $index of the attachment (default: first attachment)
+ */
+ public function getAttachment($id, $structureToExplore = null) {
+
+ $messageIndex = imap_msgno($this->imap, $id);
+ if ($structureToExplore != null) {
+ $structure = $structureToExplore;
+ } else {
+ $structure = imap_fetchstructure($this->imap, $messageIndex);
+ }
+
+ $attachments = array();
+
+ if (isset($structure->parts) && count($structure->parts)) {
+
+ for($i = 0; $i < count($structure->parts); $i++) {
+
+ if ($structure->parts && is_array($structure->parts[$i]) && count($structure->parts[$i])>0) {
+ $toAdd = $this->getAttachment($id, $structure->parts[$i]);
+ if (count($toAdd)>0) {
+ foreach ($toAdd as $att) array_push($attachments, $att);
+ }
+ }
+
+ $attachment = array(
+ 'is_attachment' => false,
+ 'filename' => '',
+ 'name' => '',
+ 'attachment' => ''
+ );
+
+ if ($structure->parts[$i]->ifdparameters) {
+ foreach($structure->parts[$i]->dparameters as $object) {
+ if(strtolower($object->attribute) == 'filename') {
+ $attachment['is_attachment'] = true;
+ $attachment['filename'] = $object->value;
+ }
+ }
+ }
+
+ if ($structure->parts[$i]->ifparameters) {
+ foreach($structure->parts[$i]->parameters as $object) {
+ if(strtolower($object->attribute) == 'name') {
+ $attachment['is_attachment'] = true;
+ $attachment['name'] = $object->value;
+ }
+ }
+ }
+
+ if ($attachment['is_attachment']) {
+ // get attachment body
+
+ // First we try the html body
+ $message = imap_fetchbody($this->imap, $messageIndex, $i+1.2);
+
+ if (empty($message)) {
+ // Then we try the text body
+ $message = imap_fetchbody($this->imap, $messageIndex, $i+1.1);
+ }
+
+ if (empty($message)) {
+ // Then we try the text body
+ $message = imap_fetchbody($this->imap, $messageIndex, $i+1);
+ }
+
+ switch ($structure->parts[$i]->encoding) {
+ case 0:
+ case 1:
+ $message = imap_8bit($message);
+ break;
+ case 2:
+ $message = imap_binary($message);
+ break;
+ case 3:
+ $message = base64_decode($message);
+ break;
+ case 4:
+ $message = quoted_printable_decode($message);
+ break;
+ case 5:
+ $message = imap_base64($message);
+ break;
+ }
+
+ $attachment['attachment'] = $message;
+
+ }
+
+ array_push($attachments,$attachment);
+ }
+
+ }
+
+ return $attachments;
+ }
+
+
+ /**
+ * add new folder
+ *
+ * @return bool success or not
+ * @param $name of the folder
+ * @param $subscribe immediately subscribe to folder
+ */
+ public function addFolder($name, $subscribe = false) {
+ $success = imap_createmailbox($this->imap, $this->mailbox . $name);
+
+ if ($success && $subscribe) {
+ $success = imap_subscribe($this->imap, $this->mailbox . $name);
+ }
+
+ return $success;
+ }
+
+
+ /**
+ * remove folder
+ *
+ * @return bool success or not
+ * @param $name of the folder
+ */
+ public function removeFolder($name) {
+ return imap_deletemailbox($this->imap, $this->mailbox . $name);
+ }
+
+
+ /**
+ * rename folder
+ *
+ * @return bool success or not
+ * @param $name of the folder
+ * @param $newname of the folder
+ */
+ public function renameFolder($name, $newname) {
+ return imap_renamemailbox($this->imap, $this->mailbox . $name, $this->mailbox . $newname);
+ }
+
+
+ /**
+ * clean folder content of selected folder
+ *
+ * @return bool success or not
+ */
+ public function purge() {
+ // delete trash and spam
+ if($this->folder==$this->getTrash() || strtolower($this->folder)=="spam") {
+ if(imap_delete($this->imap,'1:*')===false) {
+ return false;
+ }
+ return imap_expunge($this->imap);
+
+ // move others to trash
+ } else {
+ if( imap_mail_move($this->imap,'1:*', $this->getTrash()) == false)
+ return false;
+ return imap_expunge($this->imap);
+ }
+ }
+
+
+ /**
+ * returns all email addresses
+ *
+ * @return array with all email addresses or false on error
+ */
+ public function getAllEmailAddresses() {
+ $saveCurrentFolder = $this->folder;
+ $emails = array();
+ foreach($this->getFolders() as $folder) {
+ $this->selectFolder($folder);
+ foreach($this->getMessages(false) as $message) {
+ $emails[] = $message['from'];
+ $emails = array_merge($emails, $message['to']);
+ if(isset($message['cc']))
+ $emails = array_merge($emails, $message['cc']);
+ }
+ }
+ $this->selectFolder($saveCurrentFolder);
+ return array_unique($emails);
+ }
+
+
+ /**
+ * save email in sent
+ *
+ * @return void
+ * @param $header
+ * @param $body
+ */
+ public function saveMessageInSent($header, $body) {
+ return imap_append($this->imap, $this->mailbox . $this->getSent(), $header . "\r\n" . $body . "\r\n", "\\Seen");
+ }
+
+
+ /**
+ * explicitly close imap connection
+ */
+ public function close() {
+ if($this->imap!==false)
+ imap_close($this->imap);
+ }
+
+
+
+ // protected helpers
+
+
+ /**
+ * get trash folder name or create new trash folder
+ *
+ * @return trash folder name
+ */
+ protected function getTrash() {
+ foreach($this->getFolders() as $folder) {
+ if(strtolower($folder)==="trash" || strtolower($folder)==="papierkorb")
+ return $folder;
+ }
+
+ // no trash folder found? create one
+ $this->addFolder('Trash');
+
+ return 'Trash';
+ }
+
+
+ /**
+ * get sent folder name or create new sent folder
+ *
+ * @return sent folder name
+ */
+ protected function getSent() {
+ foreach($this->getFolders() as $folder) {
+ if(strtolower($folder)==="sent" || strtolower($folder)==="gesendet")
+ return $folder;
+ }
+
+ // no sent folder found? create one
+ $this->addFolder('Sent');
+
+ return 'Sent';
+ }
+
+
+ /**
+ * fetch message by id
+ *
+ * @return header
+ * @param $id of the message
+ */
+ protected function getMessageHeader($id) {
+ $count = $this->countMessages();
+ for($i=1;$i<=$count;$i++) {
+ $uid = imap_uid($this->imap, $i);
+ if($uid==$id) {
+ $header = imap_headerinfo($this->imap, $i);
+ return $header;
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * convert imap given address in string
+ *
+ * @return string in format "Name "
+ * @param $headerinfos the infos given by imap
+ */
+ protected function toAddress($headerinfos) {
+ $email = "";
+ $name = "";
+ if(isset($headerinfos->mailbox) && isset($headerinfos->host)) {
+ $email = $headerinfos->mailbox . "@" . $headerinfos->host;
+ }
+
+ if(!empty($headerinfos->personal)) {
+ $name = imap_mime_header_decode($headerinfos->personal);
+ $name = $name[0]->text;
+ } else {
+ $name = $email;
+ }
+
+ $name = $this->convertToUtf8($name);
+
+ return $name . " <" . $email . ">";
+ }
+
+
+ /**
+ * converts imap given array of addresses in strings
+ *
+ * @return array with strings (e.g. ["Name ", "Name2 "]
+ * @param $addresses imap given addresses as array
+ */
+ protected function arrayToAddress($addresses) {
+ $addressesAsString = array();
+ foreach($addresses as $address) {
+ $addressesAsString[] = $this->toAddress($address);
+ }
+ return $addressesAsString;
+ }
+
+
+ /**
+ * returns body of the email. First search for html version of the email, then the plain part.
+ *
+ * @return string email body
+ * @param $uid message id
+ */
+ protected function getBody($uid) {
+ $body = $this->get_part($this->imap, $uid, "TEXT/PLAIN");
+ $html = false;
+ // if text body is empty, try getting text body
+ if ($body == "") {
+ $body = $this->get_part($this->imap, $uid, "TEXT/HTML");
+ $html = true;
+ }
+ $body = $this->convertToUtf8($body);
+ return array( 'body' => $body, 'html' => $html);
+ }
+
+ /**
+ * convert to utf8 if necessary.
+ *
+ * @return true or false
+ * @param $string utf8 encoded string
+ */
+ protected function convertToUtf8($string) {
+ $newString = '';
+ $elements = imap_mime_header_decode($string);
+
+ for($i = 0; $i < count($elements); $i++) {
+ $newString .= $this->convertStringEncoding($elements[$i]->text);
+ }
+ return $newString;
+ }
+
+ /**
+ * Converts a string from one encoding to another.
+ * @param string $string
+ * @return string Converted string if conversion was successful, or the original string if not
+ */
+ protected function convertStringEncoding($string) {
+
+ if (extension_loaded('mbstring') && mb_detect_encoding($string, "UTF-8, ISO-8859-1, GBK")!="UTF-8") {
+ $string = utf8_encode($string);
+ }
+ $string = iconv('UTF-8', 'UTF-8//IGNORE', $string);
+ return $string;
+ }
+
+ /**
+ * returns a part with a given mimetype
+ * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+ *
+ * @return string email body
+ * @param $imap imap stream
+ * @param $uid message id
+ * @param $mimetype
+ */
+ protected function get_part($imap, $uid, $mimetype, $structure = false, $partNumber = false) {
+ if (!$structure) {
+ $structure = imap_fetchstructure($imap, $uid, FT_UID);
+ }
+ if ($structure) {
+ if ($mimetype == $this->get_mime_type($structure)) {
+ if (!$partNumber) {
+ $partNumber = 1;
+ }
+ $text = imap_fetchbody($imap, $uid, $partNumber, FT_UID | FT_PEEK);
+ switch ($structure->encoding) {
+ case 3: return imap_base64($text);
+ case 4: return imap_qprint($text);
+ default: return $text;
+ }
+ }
+
+ // multipart
+ if ($structure->type == 1) {
+ foreach ($structure->parts as $index => $subStruct) {
+ $prefix = "";
+ if ($partNumber) {
+ $prefix = $partNumber . ".";
+ }
+ $data = $this->get_part($imap, $uid, $mimetype, $subStruct, $prefix . ($index + 1));
+ if ($data) {
+ return $data;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+
+ /**
+ * extract mimetype
+ * taken from http://www.sitepoint.com/exploring-phps-imap-library-2/
+ *
+ * @return string mimetype
+ * @param $structure
+ */
+ protected function get_mime_type($structure) {
+ $primaryMimetype = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
+
+ if ($structure->subtype) {
+ return $primaryMimetype[(int)$structure->type] . "/" . $structure->subtype;
+ }
+ return "TEXT/PLAIN";
+ }
+
+
+ /**
+ * Return general mailbox statistics
+ *
+ * @return bool | StdClass object
+ */
+ public function getMailboxStatistics() {
+ return $this->isConnected() ? imap_mailboxmsginfo($this->imap) : false ;
+ }
+
+}
+?>
diff --git a/class/class.jakbase.php b/class/class.jakbase.php
new file mode 100644
index 0000000..44a2e9d
--- /dev/null
+++ b/class/class.jakbase.php
@@ -0,0 +1,161 @@
+$v){
+ if(isset($this->$k)){
+ $this->$k = $v;
+ }
+ }
+ }
+
+ public static function pluralize($count, $text, $plural) {
+ return $count . ( ( $count == 1 ) ? ( " $text" ) : ( " {$plural}" ) );
+ }
+
+ public static function jakTimesince($mysqlstamp, $date, $time) {
+
+ $today = time(); /* Current unix time */
+ if (is_numeric($mysqlstamp)) {
+ $unixtime = $mysqlstamp;
+ //$mysqlstamp = date('Y-m-d H:i:s', $mysqlstamp);
+ } else {
+ $unixtime = strtotime($mysqlstamp);
+ }
+
+ // Return date time
+ return date(($date && $time ? $date.' ' : $date).$time, (int)$unixtime);
+
+ }
+
+ public static function jakCheckSession($convid, $restoreid)
+ {
+
+ global $jakdb;
+ if ($jakdb->has("sessions", ["id" => $convid, "uniqueid" => $restoreid, "status" => 1])) {
+ return true;
+ }
+
+ }
+
+ public static function jakWriteinCache($file, $content, $extra) {
+
+ if ($file && $content) {
+
+ if (isset($extra)) {
+ file_put_contents($file, $content, FILE_APPEND | LOCK_EX);
+ } else {
+ file_put_contents($file, $content, LOCK_EX);
+ }
+
+ return true;
+ }
+
+ }
+
+ public static function jakAvailableHours($hours,$available) {
+
+ $ohours = "";
+ if (isset($hours) && !empty($hours)) $ohours = json_decode($hours, true);
+
+ // get the php str
+ $dtime = new DateTime($available);
+
+ // Days of the week
+ $daysaweekid = array(0 => "Mon", 1 => "Tue", 2 => "Wed", 3 => "Thu", 4 => "Fri", 5 => "Sat", 6 => "Sun");
+
+ // Return the correct day
+ $day = array_search($dtime->format('D'), $daysaweekid);
+
+ $nobh = false;
+
+ // Check if the day is active and proceed
+ if (isset($ohours[$day]["isActive"]) && !empty($ohours[$day]["isActive"])) {
+
+ // Now we need to check the time
+ if (!empty($ohours[$day]["timeFrom"]) && !empty($ohours[$day]["timeTill"])) {
+
+ if ($ohours[$day]["timeTill"] == "24:00") $ohours[$day]["timeTill"] = "23.59";
+
+ if (($ohours[$day]["timeFrom"] <= $dtime->format('H:i')) && ($ohours[$day]["timeTill"] >= $dtime->format('H:i'))) $nobh = true;
+ }
+
+ if (!$nobh && !empty($ohours[$day]["timeFroma"]) && !empty($ohours[$day]["timeTilla"])) {
+
+ if ($ohours[$day]["timeTilla"] == "24:00") $ohours[$day]["timeTilla"] = "23.59";
+
+ if (($ohours[$day]["timeFroma"] <= $dtime->format('H:i')) && ($ohours[$day]["timeTilla"] >= $dtime->format('H:i'))) $nobh = true;
+ }
+
+ return $nobh;
+
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakWhatslog($guestid, $opcache, $opid, $clientid, $whatsid, $itemid, $location, $email, $url, $ip, $agent) {
+
+ global $jakdb;
+
+ // We are calling the geo
+ if (isset($location) && !empty($location)) {
+ list($city, $country_name, $country_code, $country_lat, $country_lng) = explode('|', strip_tags(base64_decode($location)));
+ } else {
+ // Country Stuff
+ $country_name = 'Disabled';
+ $country_code = 'xx';
+ $city = 'Disabled';
+ $country_lng = $country_lat = '';
+ }
+
+ if ($whatsid == 2 || $whatsid == 5) {
+ $jakdb->update("whatslog", ["opid" => $opcache, "operatorid" => $opid, "clientid" => $clientid, "whatsid" => $whatsid], ["AND" => ["ip" => $ip, "name" => $email, "time" => $jakdb->raw("NOW()")]]);
+ } else {
+ $jakdb->insert("whatslog", ["guestid" => $guestid, "opid" => $opcache, "operatorid" => $opid, "clientid" => $clientid, "whatsid" => $whatsid, "itemid" => $itemid, "country" => $country_name, "city" => $city, "countrycode" => $country_code, "latitude" => $country_lat, "longitude" => $country_lng, "name" => $email, "fromwhere" => $url, "usragent" => $agent, "ip" => $ip, "time" => $jakdb->raw("NOW()")]);
+ }
+
+ return true;
+
+ }
+
+ public static function jakCookie($cookiename, $value, $expires, $path) {
+
+ if (version_compare(PHP_VERSION, '7.3', '>=')) {
+
+ setcookie($cookiename, $value, [
+ 'expires' => time() + $expires,
+ 'path' => $path,
+ 'httponly' => true,
+ 'samesite' => 'None',
+ 'secure' => true]);
+
+ } else {
+
+ setcookie($cookiename, $value, time() + $expires, $path.'; SameSite=None; Secure');
+ }
+ }
+}
+?>
diff --git a/class/class.jaklic.php b/class/class.jaklic.php
new file mode 100644
index 0000000..9c92003
--- /dev/null
+++ b/class/class.jaklic.php
@@ -0,0 +1,568 @@
+support.');
+define("LB_TEXT_VERIFIED_RESPONSE", 'Verified! Thanks for purchasing Cloud Desk 3.');
+define("LB_TEXT_PREPARING_MAIN_DOWNLOAD", 'Preparing to download main update...');
+define("LB_TEXT_MAIN_UPDATE_SIZE", 'Main Update size:');
+define("LB_TEXT_DONT_REFRESH", '(Please do not refresh the page).');
+define("LB_TEXT_DOWNLOADING_MAIN", 'Downloading main update...');
+define("LB_TEXT_UPDATE_PERIOD_EXPIRED", 'Your update period has ended or your license is invalid, please contact support.');
+define("LB_TEXT_UPDATE_PATH_ERROR", 'Folder does not have write permission or the update file path could not be resolved, please contact support.');
+define("LB_TEXT_MAIN_UPDATE_DONE", 'Main update files downloaded, extracted and installed.');
+define("LB_TEXT_UPDATE_EXTRACTION_ERROR", 'Update zip extraction failed.');
+define("LB_TEXT_PREPARING_SQL_DOWNLOAD", 'Preparing to download database update...');
+define("LB_TEXT_SQL_UPDATE_SIZE", 'Database update size:');
+define("LB_TEXT_DOWNLOADING_SQL", 'Downloading database update...');
+define("LB_TEXT_SQL_UPDATE_DONE", 'Database update file downloaded.');
+define("LB_TEXT_UPDATE_WITH_SQL_DONE", 'Update successful, files and database have been updated.');
+define("LB_TEXT_UPDATE_WITHOUT_SQL_DONE", 'Update successful, files have been updated there were no database updates.');
+
+if(!LB_API_DEBUG){
+ @ini_set('display_errors', 0);
+}
+
+if((@ini_get('max_execution_time')!=='0')&&(@ini_get('max_execution_time'))<600){
+ @ini_set('max_execution_time', 600);
+}
+@ini_set('memory_limit', '256M');
+
+class JAKLicenseAPI{
+
+ private $product_id;
+ private $api_url;
+ private $api_key;
+ private $api_language;
+ private $current_version;
+ private $verify_type;
+ private $verification_period;
+ private $root_path;
+ private $license_file;
+
+ public function __construct(){
+ $this->product_id = 'CD3_CA82F2FF';
+ $this->api_url = 'https://license.jakweb.ch/';
+ $this->api_key = 'B505125128CDA848466F';
+ $this->api_language = 'english';
+ $this->current_version = 'v'.(defined('JAK_VERSION') ? JAK_VERSION : '');
+ $this->verify_type = 'envato';
+ $this->verification_period = 30;
+ $this->root_path = APP_PATH.JAK_FILES_DIRECTORY.'/updates/';
+ $this->license_file = APP_PATH.JAK_FILES_DIRECTORY.'/updates/.lic';
+ }
+
+ public function check_local_license_exist(){
+ return is_file($this->license_file);
+ }
+
+ public function get_current_version(){
+ return $this->current_version;
+ }
+
+ private function call_api($method, $url, $data){
+ $curl = curl_init();
+ switch ($method){
+ case "POST":
+ curl_setopt($curl, CURLOPT_POST, 1);
+ if($data)
+ curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+ break;
+ case "PUT":
+ curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
+ if($data)
+ curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
+ break;
+ default:
+ if($data)
+ $url = sprintf("%s?%s", $url, http_build_query($data));
+ }
+ $this_server_name = getenv('SERVER_NAME')?:
+ $_SERVER['SERVER_NAME']?:
+ getenv('HTTP_HOST')?:
+ $_SERVER['HTTP_HOST'];
+ $this_http_or_https = ((
+ (isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS']=="on"))or
+ (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])and
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
+ )?'https://':'http://');
+ $this_url = $this_http_or_https.$this_server_name.$_SERVER['REQUEST_URI'];
+ $this_ip = getenv('SERVER_ADDR')?:
+ $_SERVER['SERVER_ADDR']?:
+ $this->get_ip_from_third_party()?:
+ gethostbyname(gethostname());
+ curl_setopt($curl, CURLOPT_HTTPHEADER,
+ array('Content-Type: application/json',
+ 'LB-API-KEY: '.$this->api_key,
+ 'LB-URL: '.$this_url,
+ 'LB-IP: '.$this_ip,
+ 'LB-LANG: '.$this->api_language)
+ );
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
+ curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+ $result = curl_exec($curl);
+ if(!$result&&!LB_API_DEBUG){
+ $rs = array(
+ 'status' => FALSE,
+ 'message' => LB_TEXT_CONNECTION_FAILED
+ );
+ return json_encode($rs);
+ }
+ $http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ if($http_status != 200){
+ if(LB_API_DEBUG){
+ $temp_decode = json_decode($result, true);
+ $rs = array(
+ 'status' => FALSE,
+ 'message' => ((!empty($temp_decode['error']))?
+ $temp_decode['error']:
+ $temp_decode['message'])
+ );
+ return json_encode($rs);
+ }else{
+ $rs = array(
+ 'status' => FALSE,
+ 'message' => LB_TEXT_INVALID_RESPONSE
+ );
+ return json_encode($rs);
+ }
+ }
+ curl_close($curl);
+ return $result;
+ }
+
+ public function check_connection(){
+ $data_array = array();
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/check_connection_ext',
+ json_encode($data_array)
+ );
+ $response = json_decode($get_data, true);
+ return $response;
+ }
+
+ public function get_latest_version(){
+ $data_array = array(
+ "product_id" => $this->product_id
+ );
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/latest_version',
+ json_encode($data_array)
+ );
+ $response = json_decode($get_data, true);
+ return $response;
+ }
+
+ public function activate_license($license, $client, $create_lic = true){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "license_code" => $license,
+ "client_name" => $client,
+ "verify_type" => $this->verify_type
+ );
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/activate_license',
+ json_encode($data_array)
+ );
+ $response = json_decode($get_data, true);
+ if(!empty($create_lic)){
+ if($response['status']){
+ $licfile = trim($response['lic_response']);
+ file_put_contents($this->license_file, $licfile, LOCK_EX);
+ }else{
+ @chmod($this->license_file, 0777);
+ if(is_writeable($this->license_file)){
+ unlink($this->license_file);
+ }
+ }
+ }
+ return $response;
+ }
+
+ public function verify_license($time_based_check = false, $license = false, $client = false){
+ if(!empty($license)&&!empty($client)){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "license_file" => null,
+ "license_code" => $license,
+ "client_name" => $client
+ );
+ }else{
+ if(is_file($this->license_file)){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "license_file" => file_get_contents($this->license_file),
+ "license_code" => null,
+ "client_name" => null
+ );
+ }else{
+ $data_array = array();
+ }
+ }
+ $res = array('status' => TRUE, 'message' => LB_TEXT_VERIFIED_RESPONSE);
+ if($time_based_check && $this->verification_period > 0){
+ ob_start();
+ if(session_status() == PHP_SESSION_NONE){
+ session_start();
+ }
+ $type = (int) $this->verification_period;
+ $today = date('d-m-Y');
+ if(empty($_SESSION["c7f9c6b8b03214d"])){
+ $_SESSION["c7f9c6b8b03214d"] = '00-00-0000';
+ }
+ if($type == 1){
+ $type_text = '1 day';
+ }elseif($type == 3){
+ $type_text = '3 days';
+ }elseif($type == 7){
+ $type_text = '1 week';
+ }elseif($type == 30){
+ $type_text = '1 month';
+ }elseif($type == 90){
+ $type_text = '3 months';
+ }elseif($type == 365) {
+ $type_text = '1 year';
+ }else{
+ $type_text = $type.' days';
+ }
+ if(strtotime($today) >= strtotime($_SESSION["c7f9c6b8b03214d"])){
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/verify_license',
+ json_encode($data_array)
+ );
+ $res = json_decode($get_data, true);
+ if($res['status']==true){
+ $tomo = date('d-m-Y', strtotime($today. ' + '.$type_text));
+ $_SESSION["c7f9c6b8b03214d"] = $tomo;
+ }
+ }
+ ob_end_clean();
+ }else{
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/verify_license',
+ json_encode($data_array)
+ );
+ $res = json_decode($get_data, true);
+ }
+ return $res;
+ }
+
+ public function deactivate_license($license = false, $client = false){
+ if(!empty($license)&&!empty($client)){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "license_file" => null,
+ "license_code" => $license,
+ "client_name" => $client
+ );
+ }else{
+ if(is_file($this->license_file)){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "license_file" => file_get_contents($this->license_file),
+ "license_code" => null,
+ "client_name" => null
+ );
+ }else{
+ $data_array = array();
+ }
+ }
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/deactivate_license',
+ json_encode($data_array)
+ );
+ $response = json_decode($get_data, true);
+ if($response['status']){
+ @chmod($this->license_file, 0777);
+ if(is_writeable($this->license_file)){
+ unlink($this->license_file);
+ }
+ }
+ return $response;
+ }
+
+ public function check_update(){
+ $data_array = array(
+ "product_id" => $this->product_id,
+ "current_version" => $this->current_version
+ );
+ $get_data = $this->call_api(
+ 'POST',
+ $this->api_url.'api/check_update',
+ json_encode($data_array)
+ );
+ $response = json_decode($get_data, true);
+ return $response;
+ }
+
+ public function download_update($update_id, $type, $version, $license = false, $client = false){
+ if(!empty($license)&&!empty($client)){
+ $data_array = array(
+ "license_file" => null,
+ "license_code" => $license,
+ "client_name" => $client
+ );
+ }else{
+ if(is_file($this->license_file)){
+ $data_array = array(
+ "license_file" => file_get_contents($this->license_file),
+ "license_code" => null,
+ "client_name" => null
+ );
+ }else{
+ $data_array = array();
+ }
+ }
+ ob_end_flush();
+ ob_implicit_flush(true);
+ $version = str_replace(".", "_", $version);
+ ob_start();
+ $source_size = $this->api_url."api/get_update_size/main/".$update_id;
+ echo LB_TEXT_PREPARING_MAIN_DOWNLOAD."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ echo LB_TEXT_MAIN_UPDATE_SIZE." ".$this->get_remote_filesize($source_size)." ".LB_TEXT_DONT_REFRESH."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ $temp_progress = '';
+ $ch = curl_init();
+ $source = $this->api_url."api/download_update/main/".$update_id;
+ curl_setopt($ch, CURLOPT_URL, $source);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array);
+ $this_server_name = getenv('SERVER_NAME')?:
+ $_SERVER['SERVER_NAME']?:
+ getenv('HTTP_HOST')?:
+ $_SERVER['HTTP_HOST'];
+ $this_http_or_https = ((
+ (isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS']=="on"))or
+ (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])and
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
+ )?'https://':'http://');
+ $this_url = $this_http_or_https.$this_server_name.$_SERVER['REQUEST_URI'];
+ $this_ip = getenv('SERVER_ADDR')?:
+ $_SERVER['SERVER_ADDR']?:
+ $this->get_ip_from_third_party()?:
+ gethostbyname(gethostname());
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'LB-API-KEY: '.$this->api_key,
+ 'LB-URL: '.$this_url,
+ 'LB-IP: '.$this_ip,
+ 'LB-LANG: '.$this->api_language)
+ );
+ if(LB_SHOW_UPDATE_PROGRESS){curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, array($this, 'progress'));}
+ if(LB_SHOW_UPDATE_PROGRESS){curl_setopt($ch, CURLOPT_NOPROGRESS, false);}
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
+ echo LB_TEXT_DOWNLOADING_MAIN."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ $data = curl_exec($ch);
+ $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ if($http_status != 200){
+ if($http_status == 401){
+ curl_close($ch);
+ exit("
".LB_TEXT_UPDATE_PERIOD_EXPIRED);
+ }else{
+ curl_close($ch);
+ exit("
".LB_TEXT_INVALID_RESPONSE);
+ }
+ }
+ curl_close($ch);
+ $destination = $this->root_path."/update_main_".$version.".zip";
+ $file = fopen($destination, "w+");
+ if(!$file){
+ exit("
".LB_TEXT_UPDATE_PATH_ERROR);
+ }
+ fputs($file, $data);
+ fclose($file);
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ $zip = new ZipArchive;
+ $res = $zip->open($destination);
+ if($res === TRUE){
+ $zip->extractTo(APP_PATH);
+ $zip->close();
+ unlink($destination);
+ echo LB_TEXT_MAIN_UPDATE_DONE."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ }else{
+ echo LB_TEXT_UPDATE_EXTRACTION_ERROR."
";
+ ob_flush();
+ }
+ if($type == true){
+ $source_size = $this->api_url."api/get_update_size/sql/".$update_id;
+ echo LB_TEXT_PREPARING_SQL_DOWNLOAD."
";
+ ob_flush();
+ echo LB_TEXT_SQL_UPDATE_SIZE." ".$this->get_remote_filesize($source_size)." ".LB_TEXT_DONT_REFRESH."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ $temp_progress = '';
+ $ch = curl_init();
+ $source = $this->api_url."api/download_update/sql/".$update_id;
+ curl_setopt($ch, CURLOPT_URL, $source);
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data_array);
+ $this_server_name = getenv('SERVER_NAME')?:
+ $_SERVER['SERVER_NAME']?:
+ getenv('HTTP_HOST')?:
+ $_SERVER['HTTP_HOST'];
+ $this_http_or_https = ((
+ (isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS']=="on"))or
+ (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])and
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
+ )?'https://':'http://');
+ $this_url = $this_http_or_https.$this_server_name.$_SERVER['REQUEST_URI'];
+ $this_ip = getenv('SERVER_ADDR')?:
+ $_SERVER['SERVER_ADDR']?:
+ $this->get_ip_from_third_party()?:
+ gethostbyname(gethostname());
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'LB-API-KEY: '.$this->api_key,
+ 'LB-URL: '.$this_url,
+ 'LB-IP: '.$this_ip,
+ 'LB-LANG: '.$this->api_language)
+ );
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
+ echo LB_TEXT_DOWNLOADING_SQL."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ ob_flush();
+ $data = curl_exec($ch);
+ $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ if($http_status!=200){
+ curl_close($ch);
+ exit(LB_TEXT_INVALID_RESPONSE);
+ }
+ curl_close($ch);
+ $destination = $this->root_path."/update_sql_".$version.".sql";
+ $file = fopen($destination, "w+");
+ if(!$file){
+ exit(LB_TEXT_UPDATE_PATH_ERROR);
+ }
+ fputs($file, $data);
+ fclose($file);
+ // We run the real database update file
+ $dbupdatefile = APP_PATH.'update.php';
+ if (file_exists($dbupdatefile)) {
+ global $jakdb;
+ include($dbupdatefile);
+ unlink($dbupdatefile);
+ }
+ echo LB_TEXT_SQL_UPDATE_DONE."
";
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ echo LB_TEXT_UPDATE_WITH_SQL_DONE;
+ ob_flush();
+ }else{
+ if(LB_SHOW_UPDATE_PROGRESS){echo '';}
+ echo LB_TEXT_UPDATE_WITHOUT_SQL_DONE;
+ ob_flush();
+ }
+ ob_end_flush();
+ }
+
+ private function progress($resource, $download_size, $downloaded, $upload_size, $uploaded){
+ static $prev = 0;
+ if($download_size == 0){
+ $progress = 0;
+ }else{
+ $progress = round( $downloaded * 100 / $download_size );
+ }
+ if(($progress!=$prev) && ($progress == 25)){
+ $prev = $progress;
+ echo '';
+ ob_flush();
+ }
+ if(($progress!=$prev) && ($progress == 50)){
+ $prev=$progress;
+ echo '';
+ ob_flush();
+ }
+ if(($progress!=$prev) && ($progress == 75)){
+ $prev=$progress;
+ echo '';
+ ob_flush();
+ }
+ if(($progress!=$prev) && ($progress == 100)){
+ $prev=$progress;
+ echo '';
+ ob_flush();
+ }
+ }
+
+ private function get_ip_from_third_party(){
+ $curl = curl_init ();
+ curl_setopt($curl, CURLOPT_URL, "http://ipecho.net/plain");
+ curl_setopt($curl, CURLOPT_HEADER, 0);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
+ curl_setopt($curl, CURLOPT_TIMEOUT, 10);
+ $response = curl_exec($curl);
+ curl_close($curl);
+ return $response;
+ }
+
+ private function get_remote_filesize($url){
+ $curl = curl_init();
+ curl_setopt($curl, CURLOPT_HEADER, TRUE);
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_NOBODY, TRUE);
+ $this_server_name = getenv('SERVER_NAME')?:
+ $_SERVER['SERVER_NAME']?:
+ getenv('HTTP_HOST')?:
+ $_SERVER['HTTP_HOST'];
+ $this_http_or_https = ((
+ (isset($_SERVER['HTTPS'])&&($_SERVER['HTTPS']=="on"))or
+ (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])and
+ $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https')
+ )?'https://':'http://');
+ $this_url = $this_http_or_https.$this_server_name.$_SERVER['REQUEST_URI'];
+ $this_ip = getenv('SERVER_ADDR')?:
+ $_SERVER['SERVER_ADDR']?:
+ $this->get_ip_from_third_party()?:
+ gethostbyname(gethostname());
+ curl_setopt($curl, CURLOPT_HTTPHEADER, array(
+ 'LB-API-KEY: '.$this->api_key,
+ 'LB-URL: '.$this_url,
+ 'LB-IP: '.$this_ip,
+ 'LB-LANG: '.$this->api_language)
+ );
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
+ $result = curl_exec($curl);
+ $filesize = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
+ if ($filesize){
+ switch ($filesize){
+ case $filesize < 1024:
+ $size = $filesize .' B'; break;
+ case $filesize < 1048576:
+ $size = round($filesize / 1024, 2) .' KB'; break;
+ case $filesize < 1073741824:
+ $size = round($filesize / 1048576, 2) . ' MB'; break;
+ case $filesize < 1099511627776:
+ $size = round($filesize / 1073741824, 2) . ' GB'; break;
+ }
+ return $size;
+ }
+ }
+}
+?>
diff --git a/class/class.paginator.php b/class/class.paginator.php
new file mode 100644
index 0000000..1ddc93a
--- /dev/null
+++ b/class/class.paginator.php
@@ -0,0 +1,84 @@
+current_page = 1;
+ $this->mid_range = 3;
+ }
+
+ public function paginate()
+ {
+ $this->num_pages = ceil($this->items_total/$this->items_per_page);
+ $this->current_page = (int) $this->jak_get_page; // must be numeric > 0
+ if($this->current_page < 1 Or !is_numeric($this->current_page)) $this->current_page = 1;
+ if($this->current_page > $this->num_pages) $this->current_page = $this->num_pages;
+ $prev_page = $this->current_page-1;
+ $next_page = $this->current_page+1;
+
+ if($this->num_pages > 1) {
+
+ $this->return = ($this->current_page != 1 And $this->items_total >= 2) ? ' ';
+ }
+ $this->low = ($this->current_page-1) * $this->items_per_page;
+ $this->high = ($this->current_page * $this->items_per_page)-1;
+ $this->limit = [$this->low,$this->items_per_page];
+ }
+
+ public function display_pages()
+ {
+ return $this->return;
+ }
+}
+?>
diff --git a/class/class.payment.php b/class/class.payment.php
new file mode 100644
index 0000000..cae02f0
--- /dev/null
+++ b/class/class.payment.php
@@ -0,0 +1,2272 @@
+
+require_once __DIR__ . '/payment/paypal/vendor/autoload.php';
+use PayPalCheckoutSdk\Core\PayPalHttpClient;
+use PayPalCheckoutSdk\Core\SandboxEnvironment;
+use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
+
+//<-paypal dependencies end
+//authorize.net dependencies start->
+require_once __DIR__ . '/payment/authorize/vendor/autoload.php';
+use net\authorize\api\contract\v1 as AnetAPI;
+use net\authorize\api\controller as AnetController;
+
+//<-authroize.net dependencies end
+//yookassa dependencies start->
+require_once __DIR__ . '/payment/yookassa/vendor/autoload.php';
+use YooKassa\Client;
+
+//<-yookassa dependencies end
+class JAK_payment
+{
+ private function pay_with_stripe($amount, $currency, $id, $name, $type, $action, $success_page, $cancel_page, $stripe_secret, $stripe_publishable)
+ {
+ /*
+ 1. $type is used to specify the type of transaction i.e. single or subscription payment
+ 2. $action is used to specify the action to be taken on the transaction in case of
+ subscription method i.e. buy,update,cancel
+ 3. $success_page is used to specify the url where the user will be redirected after the successful transaction
+ 4. $cancel_page is used to specify the url where the user will be redirected after the transaction fails,
+ either by user end or server end.
+ */
+ switch ($type)
+ {
+ case 'single':
+ /*
+ $amount is used to specify the amount of product
+ $currency is used to specify the currency of payment
+ $id is used to specify the id of product
+ $name is used to specify the name of product
+ $type = single
+ $action can be anything
+ */
+ $stripe_publishable = '"' . $stripe_publishable . '"';
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ //header('Content-Type: application/json');
+ $checkout_session = \Stripe\Checkout\Session::create(['payment_method_types' => ['card'], 'line_items' => [[
+ 'price_data' => [
+ 'currency' => $currency,
+ 'unit_amount' => ($amount * 100),
+ 'product_data' => [
+ 'name' => $name,
+ 'description' => $id,
+ 'images' => ['https://example.com/t-shirt.png'],
+ ],
+ ],
+ 'quantity' => '1',
+ ]],
+ 'mode' => 'payment',
+ 'success_url' => $success_page,
+ 'cancel_url' => $cancel_page,
+ ]);
+ $response = json_encode(['id' => $checkout_session->id]); ?>
+
+
+
+ can be left empty
+ //$currency =>can be left empty
+ //$id will take the id of subscription
+ //$name => can be left empty
+ //$type => recurring
+ //$action => buy
+ try
+ {
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ //header('Content-Type: application/json');
+ $checkout_session = \Stripe\Checkout\Session::create(['success_url' => $success_page . "?session_id={CHECKOUT_SESSION_ID}", 'cancel_url' => $cancel_page, 'payment_method_types' => ['card'], 'mode' => 'subscription', 'line_items' => [['price' => $id, 'quantity' => 1, ]], ]);
+ $response = json_encode(['id' => $checkout_session->id]);
+ $stripe_publishable = '"' . $stripe_publishable . '"'; ?>
+
+
+ can be left empty
+ //$currency => can be left empty
+ //$id => session id produced when subscribing to the plan
+ //$name => can be left empty
+ //$type => recurring
+ //$action => cancel_immediate
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ try
+ {
+ $subscription = \Stripe\Checkout\Session::retrieve($id);
+ $subscription_id = $subscription->subscription;
+ $subscription = \Stripe\Subscription::retrieve($subscription_id);
+ $response = $subscription->cancel();
+ try
+ {
+ if ($response->id)
+ {
+ return true;
+ }
+ return false;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'cancel_period_end':
+ //$amount => can be left empty
+ //$currency => can be left empty
+ //$id => session id produced when subscribing to the plan
+ //$name => can be left empty
+ //$type => recurring
+ //$action => cancel_period_end
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ try
+ {
+ $subscription = \Stripe\Checkout\Session::retrieve($id);
+ $subscription_id = $subscription->subscription;
+ $response = \Stripe\Subscription::update($subscription_id, ['cancel_at_period_end' => true, ]);
+ try
+ {
+ if ($response->id)
+ {
+ return true;
+ }
+ return false;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'update':
+ //$amount => new price id
+ //$currency => can be left empty
+ //$id => session id produced when subscribing to the plan
+ //$name => can be left empty
+ //$type => recurring
+ //$action => update
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ try
+ {
+ $subscription = \Stripe\Checkout\Session::retrieve($id);
+ $subscription_id = $subscription->subscription;
+ $subscription = \Stripe\Subscription::retrieve($subscription_id);
+ $response = \Stripe\Subscription::update($subscription_id, ['cancel_at_period_end' => false, 'proration_behavior' => 'create_prorations', 'items' => [['id' => $subscription
+ ->items
+ ->data[0]->id, 'price' => $amount, ], ], ]);
+ try
+ {
+ if ($response->id)
+ {
+ return true;
+ }
+ return false;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'create_plan':
+ /**
+ * $amount contains the amount of plan
+ * $currency takes the currency of plan
+ * $id takes the interval of plan
+ * $name takes the name of plan
+ * $success_page is left empty
+ * $cancel_page is left empty
+ */
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ try
+ {
+ $stripe = new \Stripe\StripeClient($stripe_secret);
+ $response = $stripe
+ ->products
+ ->create(['name' => $name, ]);
+ try
+ {
+ $product_ID = $response->id;
+ $response = $stripe
+ ->plans
+ ->create(['amount' => ($amount * 100) , 'currency' => $currency, 'interval' => $id, 'interval_count' => $success_page, 'product' => $product_ID]);
+ try
+ {
+ return $response->id;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'delete_plan':
+ try
+ {
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ $stripe = new \Stripe\StripeClient($stripe_secret);
+ $response = $stripe
+ ->plans
+ ->delete($id, []);
+ // var_dump($response);
+ if ($response->deleted == true)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'check_plan':
+ /**
+ * $id contains the plan id
+ * $name contains the date
+ */
+ require_once __DIR__ . '/payment/stripe/init.php';
+ \Stripe\Stripe::setApiKey($stripe_secret);
+ try
+ {
+ $stripe = new \Stripe\StripeClient(
+ $stripe_secret
+ );
+ $response = $stripe->subscriptions->retrieve(
+ $id,
+ []
+ );
+
+ if ($response->status == "active")
+ {
+
+ // Get the ending date of the subscription
+ $subsend = $response->current_period_end;
+
+ // Get the starting date of the subscription
+ $subsstart = $response->current_period_start;
+
+ // Calculate in time stamp from the database
+ $paidunix = strtotime($name);
+
+ // Now let's compare if we have a valid date
+ if ($subsend > $paidunix && $subsstart < $paidunix) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ }
+ break;
+ }
+ }
+ private function pay_with_paypal($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $clientId, $clientSecret, $sandbox)
+ {
+ /*
+ 1. $payment_type is used to specify the type of transaction at hand i.e. single or recurring
+ 2. $action is used to specify the action to be taken at the transaction in case of subscription
+ 3. $success_page is used to specify the url where the user will be redirected after successful
+ transaction takes place.
+ 4. $cancel_page is used to specify the url where the user will be redirected after the transaction
+ fails either at the customer end or server end.
+ */
+ switch ($payment_type)
+ {
+ case 'single':
+ /*
+ $amount defines the amount of transaction
+ $currency defines the currency of transaction
+ $prodID defined the ID of product
+ $prodName is used to specify the name of product
+ */
+ try
+ {
+ if ($sandbox == true)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/oauth2/token");
+ curl_setopt($ch, CURLOPT_HEADER, false);
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_USERPWD, $clientId . ':' . $clientSecret);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ curl_close($ch);
+ $response = json_decode($response);
+ $accessToken = $response->access_token;
+ if ($accessToken)
+ {
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v2/checkout/orders");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ $redirect = (defined('BASE_URL_ORIG') ? BASE_URL_ORIG : BASE_URL) . 'class/payment/paypal_single_success.php?redirect=' . $success_page;
+
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ $data = '{
+ "intent": "CAPTURE",
+ "purchase_units": [
+ {
+ "amount": {
+ "currency_code": "' . $currency . '",
+ "value": "' . $amount . '"
+ }
+ }
+ ],
+ "application_context": {
+ "return_url": "' . $redirect . '",
+ "cancel_url": "' . $cancel_page . '"
+ }
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ header("Location: " . $response->links[1]
+ ->href);
+ exit();
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'recurring':
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/oauth2/token");
+ curl_setopt($ch, CURLOPT_HEADER, false);
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_USERPWD, $clientId . ':' . $clientSecret);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $result = curl_exec($ch);
+ $json = json_decode($result);
+ $accessToken = $json->access_token;
+ curl_close($ch);
+ switch ($action)
+ {
+ case 'buy':
+ /*
+ 1. $amount specifies the price of subscription
+ 2. $prodID specifies the id of subscription plan
+ 3. $prodName specifies the name of subscription plan
+ 4. $currency defines the currency in which the subscription plan is created
+ */
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $accessToken
+ ));
+ $date = date("Y\-m\-d\Th:i:s\Z");
+ $data = '{
+ "plan_id": "' . $prodID . '",
+ "application_context": {
+ "payment_method": {
+ "payer_selected": "PAYPAL",
+ "payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
+ },
+ "return_url": "' . $success_page . '",
+ "cancel_url": "' . $cancel_page . '"
+ }
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ // die(print_r($response));
+
+ if (isset($response->id) && !empty($response->id))
+ {
+ // return $response->id;
+
+ // die(var_dump($response->links[0]->href));
+
+ // We redirect to the payment site
+ header("Location: " . $response->links[0]->href);
+ exit();
+
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ case 'update':
+ /*
+ 1. $prodID specifies the ID of subscription
+ 2. $prodName specifies the ID of subscription plan to which the user is to be upgraded or
+ downgraded.
+ 3. $amount specifies the amount of the subscription plan to which the user is to be
+ updated.
+ 4. $currency specified the currency of the subscription plan to user is to be updated
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions/" . $prodID . "/revise");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $accessToken
+ ));
+ $data = '{
+ "plan_id": "' . $prodName . '",
+ "shipping_amount": {
+ "currency_code": "' . $currency . '",
+ "value": "' . $amount . '"
+ },
+ "application_context": {
+ "shipping_preference": "SET_PROVIDED_ADDRESS",
+ "payment_method": {
+ "payer_selected": "PAYPAL",
+ "payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
+ },
+ "return_url": "' . $success_page . '",
+ "cancel_url": "' . $cancel_page . '"
+ }
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ header("Location: " . $response->links[0]
+ ->href);
+ exit();
+ break;
+ case 'pause':
+ /*
+ 1. $prodID specifies the ID of subscription
+ 2. $prodName specifies the reason of suspending the transaction
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions/" . $prodID . "/suspend");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $accessToken
+ ));
+ $data = '{
+ "reason": "' . $prodName . '"
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ if ($response == "")
+ {
+ return true;
+ }
+ return false;
+ break;
+ case 'cancel':
+ /*
+ 1. $prodID specifies the ID of subscription
+ 2. $prodName specifies the reason of cancelling the subscription
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions/" . $prodID . "/cancel");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $accessToken
+ ));
+ $data = '{
+ "reason": "' . $prodName . '"
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ if ($response == "")
+ {
+ return true;
+ }
+ return false;
+ break;
+ case 'activate':
+ /*
+ 1. $prodID specifies the id of subcription
+ 2. $prodName specifies the reason of reactiviting a previously suspended/paused subscription
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions/" . $prodID . "/activate");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Content-Type: application/json",
+ "Authorization: Bearer " . $accessToken
+ ));
+ $data = '{
+ "reason": "' . $prodName . '"
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ if ($response == "")
+ {
+ return true;
+ }
+ return false;
+ break;
+ case 'create_plan':
+ /**
+ * $amount,$currency,$prodID,$prodName,$payment_type,$action,$success_page,$cancel_page
+ * $amount contains the plan price
+ * $currency contains the currency of the plan
+ * $prodID contains the description of subscription plan
+ * $prodName contains the name of subscription
+ * $success_page contains the interval
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/catalogs/products");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ $data = '{
+ "name": "' . $prodName . ' Product",
+ "description": "Subscription Plan: ' . $prodName . '",
+ "type": "service",
+ "category": "software"
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ $product_ID = $response->id;
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/plans");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ $data = '{
+ "product_id": "' . $product_ID . '",
+ "name": "' . $prodName . '",
+ "description": "' . $prodID . '",
+ "status": "ACTIVE",
+ "billing_cycles": [
+ {
+ "frequency": {
+ "interval_unit": "' . strtoupper($success_page) . '",
+ "interval_count": ' . $cancel_page . '
+ },
+ "tenure_type": "REGULAR",
+ "sequence": 1,
+ "total_cycles": 0,
+ "pricing_scheme": {
+ "fixed_price": {
+ "value": "' . $amount . '",
+ "currency_code": "' . $currency . '"
+ }
+ }
+ }
+ ],
+ "payment_preferences": {
+ "auto_bill_outstanding": true,
+ "payment_failure_threshold": 3
+ }
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ return $response->id;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'delete_plan':
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/plans/" . $prodID . "/deactivate");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ if ($response == NULL)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'check_plan':
+ /**
+ * $id contains the plan id
+ * $name contains the date
+ */
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/subscriptions/" . $prodID);
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ if ($response->status == "ACTIVE")
+ {
+
+ // Get the ending date of the subscription
+ $subsupdate = strtotime($response->status_update_time);
+
+ // Calculate in time stamp from the database
+ $paidunix = strtotime($name);
+
+ // Now let's compare if we have a valid date
+ if ($subsupdate > $paidunix) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'update_plan':
+ if ($sandbox)
+ {
+ $url = "https://api-m.sandbox.paypal.com";
+ }
+ else
+ {
+ $url = "https://api-m.paypal.com";
+ }
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $url . "/v1/billing/plans/" . $prodID . "/update-pricing-schemes");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Authorization: Bearer ' . $accessToken
+ ));
+ $data = '{
+ "pricing_schemes": [
+ {
+ "billing_cycle_sequence": 1,
+ "pricing_scheme": {
+ "fixed_price": {
+ "value": "' . $amount . '",
+ "currency_code": "' . $currency . '"
+ }
+ }
+ }
+ ]
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ if ($response == NULL)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ break;
+ }
+ }
+ private function pay_with_authorize($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $loginID, $transactionKey, $sandbox)
+ {
+ /*
+ API LOGIN ID: 2xQ7rs3KfSZ
+ TRANSACTION KEY: 86Ns29u4JS6Sny3P
+ KEY: Simon
+ */
+ define("AUTHORIZENET_LOG_FILE", "phplog");
+ switch ($payment_type)
+ {
+ case 'single':
+ /* Create a merchantAuthenticationType object with authentication details
+ retrieved from the constants file */
+
+ /*
+ $amount = amount of transaction
+ $currency is equal to card number in this case
+ $prodId = ID of product
+ $prodName = name of product
+ $paymentType = single
+ $action can be left empty
+ $success_page is card expiration date in this case
+ $cancel_page is card code in this case
+
+ */
+
+ $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+ $merchantAuthentication->setName($loginID);
+ $merchantAuthentication->setTransactionKey($transactionKey);
+
+ // Set the transaction's refId
+ $refId = 'ref' . time();
+
+ // Create the payment data for a credit card
+ $creditCard = new AnetAPI\CreditCardType();
+ $creditCard->setCardNumber($currency);
+ $creditCard->setExpirationDate($success_page);
+ $creditCard->setCardCode($cancel_page);
+
+ // Add the payment data to a paymentType object
+ $paymentOne = new AnetAPI\PaymentType();
+ $paymentOne->setCreditCard($creditCard);
+
+ // Create order information
+ $order = new AnetAPI\OrderType();
+ $order->setInvoiceNumber($prodID);
+ $order->setDescription($prodName);
+
+ // Add values for transaction settings
+ $duplicateWindowSetting = new AnetAPI\SettingType();
+ $duplicateWindowSetting->setSettingName("duplicateWindow");
+ $duplicateWindowSetting->setSettingValue("60");
+
+ // Create a TransactionRequestType object and add the previous objects to it
+ $transactionRequestType = new AnetAPI\TransactionRequestType();
+ $transactionRequestType->setTransactionType("authCaptureTransaction");
+ $transactionRequestType->setAmount($amount);
+ $transactionRequestType->setOrder($order);
+ $transactionRequestType->setPayment($paymentOne);
+ $transactionRequestType->addToTransactionSettings($duplicateWindowSetting);
+
+ // Assemble the complete transaction request
+ $request = new AnetAPI\CreateTransactionRequest();
+ $request->setMerchantAuthentication($merchantAuthentication);
+ $request->setRefId($refId);
+ $request->setTransactionRequest($transactionRequestType);
+
+ // Create the controller and get the response
+ $controller = new AnetController\CreateTransactionController($request);
+ if ($sandbox)
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
+ }
+ else
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
+ }
+
+ if ($response != null)
+ {
+ // Check to see if the API request was successfully received and acted upon
+ if ($response->getMessages()
+ ->getResultCode() == "Ok")
+ {
+ // Since the API request was successful, look for a transaction response
+ // and parse it to display the results of authorizing the card
+ $tresponse = $response->getTransactionResponse();
+
+ if ($tresponse != null && $tresponse->getMessages() != null)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ // Or, print errors if the API request wasn't successful
+
+ }
+ else
+ {
+ return false;
+ }
+ }
+ return false;
+ break;
+ case 'recurring':
+ switch ($action)
+ {
+ case 'buy':
+
+ /*
+ parameters: $amount,$currency,$prodID,$prodName,$payment_type,$action,$success_page,$cancel_page
+ $amount = amount to be charged at the time of buying subscription
+ $currency implies to customer name
+ $prodID implies to start date of the subscription
+ $prodName implies to the name of subscription plan
+ $payment_type = recurring
+ $action = buy
+ $success_page implies to credit card number
+ $cancel_page imples to credit card expiration date
+ */
+ $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+ $merchantAuthentication->setName($loginID);
+ $merchantAuthentication->setTransactionKey($transactionKey);
+
+ // Set the transaction's refId
+ $refId = 'ref' . time();
+
+ // Subscription Type Info
+ $subscription = new AnetAPI\ARBSubscriptionType();
+ $subscription->setName($prodName);
+
+ $interval = new AnetAPI\PaymentScheduleType\IntervalAType();
+ $interval->setLength("1");
+ $interval->setUnit("months");
+
+ $paymentSchedule = new AnetAPI\PaymentScheduleType();
+ $paymentSchedule->setInterval($interval);
+ $paymentSchedule->setStartDate($prodID);
+ $paymentSchedule->setTotalOccurrences("9999");
+
+ $subscription->setPaymentSchedule($paymentSchedule);
+ $subscription->setAmount($amount);
+
+ $creditCard = new AnetAPI\CreditCardType();
+ $creditCard->setCardNumber($success_page);
+ $creditCard->setExpirationDate($cancel_page);
+
+ $payment = new AnetAPI\PaymentType();
+ $payment->setCreditCard($creditCard);
+ $subscription->setPayment($payment);
+
+ $Name = explode(" ", $currency);
+ $billTo = new AnetAPI\NameAndAddressType();
+ $billTo->setFirstName($Name[0]);
+ $billTo->setLastName($Name[1]);
+
+ $subscription->setBillTo($billTo);
+
+ $request = new AnetAPI\ARBCreateSubscriptionRequest();
+ $request->setmerchantAuthentication($merchantAuthentication);
+ $request->setRefId($refId);
+ $request->setSubscription($subscription);
+ $controller = new AnetController\ARBCreateSubscriptionController($request);
+ if ($sandbox)
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
+ }
+ else
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
+ }
+
+ if (($response != null) && ($response->getMessages()
+ ->getResultCode() == "Ok"))
+ {
+ return $response->getSubscriptionId();
+ }
+ return false;
+ break;
+ case 'update':
+
+ /*
+ parameters: $amount,$currency,$prodID,$prodName,$payment_type,$action,$success_page,$cancel_page
+ $amount = amount to be charged at the time of updating subscription
+ $currency is to be left empty
+ $prodID implies the id of subscription
+ $prodName implies to the name of new subscription plan
+ $payment_type = recurring
+ $action = update
+ $success_page is to be left empty
+ $cancel_page is to be left empty
+ */
+ $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+ $merchantAuthentication->setName($loginID);
+ $merchantAuthentication->setTransactionKey($transactionKey);
+
+ // Set the transaction's refId
+ $refId = 'ref' . time();
+
+ $subscription = new AnetAPI\ARBSubscriptionType();
+
+ $subscription->setName($prodName);
+ $subscription->setAmount($amount);
+ //set customer profile information
+ //$subscription->setProfile($profile);
+ $request = new AnetAPI\ARBUpdateSubscriptionRequest();
+ $request->setMerchantAuthentication($merchantAuthentication);
+ $request->setRefId($refId);
+ $request->setSubscriptionId($prodID);
+ $request->setSubscription($subscription);
+
+ $controller = new AnetController\ARBUpdateSubscriptionController($request);
+
+ if ($sandbox)
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
+ }
+ else
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
+ }
+ if (($response != null) && ($response->getMessages()
+ ->getResultCode() == "Ok"))
+ {
+ return true;
+ }
+ return false;
+ break;
+ case 'cancel':
+
+ /*
+ parameters: $amount,$currency,$prodID,$prodName,$payment_type,$action,$success_page,$cancel_page
+ $amount is to be left empty
+ $currency is to be left empty
+ $prodID implies the id of subscription
+ $prodName is to be left empty
+ $payment_type = recurring
+ $action = cancel
+ $success_page is to be left empty
+ $cancel_page is to be left empty
+ */
+ $merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+ $merchantAuthentication->setName($loginID);
+ $merchantAuthentication->setTransactionKey($transactionKey);
+
+ // Set the transaction's refId
+ $refId = 'ref' . time();
+
+ $request = new AnetAPI\ARBCancelSubscriptionRequest();
+ $request->setMerchantAuthentication($merchantAuthentication);
+ $request->setRefId($refId);
+ $request->setSubscriptionId($prodID);
+
+ $controller = new AnetController\ARBCancelSubscriptionController($request);
+
+ if ($sandbox)
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
+ }
+ else
+ {
+ $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
+ }
+ if (($response != null) && ($response->getMessages()
+ ->getResultCode() == "Ok"))
+ {
+ return true;
+ }
+ return false;
+ break;
+ }
+ }
+ }
+ private function pay_with_yoomoney($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $shopID, $secretKey)
+ {
+
+ switch ($payment_type)
+ {
+ case 'single':
+ /*
+ *$amount is the amount to be charged
+ *$currency is the currency of transaction
+ *$prodID is not used
+ *$prodName contains thee description of transaction
+ *$payment_type = single
+ *$action is not used
+ *$success_page is used as returnUrl
+ *$cancel_page is not used
+ */
+ $client = new Client();
+ $client->setAuth($shopID, $secretKey);
+ $payment = $client->createPayment(array(
+ 'amount' => array(
+ 'value' => $amount,
+ 'currency' => $currency,
+ ) ,
+ 'confirmation' => array(
+ 'type' => 'redirect',
+ 'return_url' => $success_page,
+ ) ,
+ 'capture' => true,
+ 'description' => $prodName,
+ ) , uniqid('', true));
+ try
+ {
+ $_SESSION["yoomoney"] = $payment->_id;
+ header("Location: " . $payment
+ ->confirmation
+ ->confirmation_url);
+ exit();
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'recurring':
+ switch ($action)
+ {
+ case 'buy':
+ /*
+ *$amount is the amount to be charged
+ *$currency is the currency of transaction
+ *$prodID is not used
+ *$prodName contains thee description of transaction
+ *$payment_type = recurring
+ *$action = buy
+ *$success_page is used as returnUrl
+ *$cancel_page is not used
+ */
+ $client = new Client();
+ $client->setAuth($shopID, $secretKey);
+ $payment = $client->createPayment(array(
+ 'amount' => array(
+ 'value' => floatval($amount) ,
+ 'currency' => $currency,
+ ) ,
+ 'payment_method_data' => array(
+ 'type' => 'bank_card',
+ ) ,
+ 'confirmation' => array(
+ 'type' => 'redirect',
+ 'return_url' => $success_page,
+ ) ,
+ 'capture' => true,
+ 'description' => $prodName,
+ 'save_payment_method' => true,
+ ) , uniqid('', true));
+ try
+ {
+ $_SESSION["yoomoney"] = $payment->_id;
+ header("Location: " . $payment
+ ->confirmation
+ ->confirmation_url);
+ exit();
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'charge':
+ /*
+ *$amount is the amount to be charged
+ *$currency is the currency of transaction
+ *$prodID contains the id of previously saved description
+ *$prodName contains thee description of transaction
+ *$payment_type = recurring
+ *$action = charge
+ *$success_page is left empty
+ *$cancel_page is not used
+ */
+ $client = new Client();
+ $client->setAuth($shopID, $secretKey);
+ $payment = $client->createPayment(array(
+ 'amount' => array(
+ 'value' => floatval($amount) ,
+ 'currency' => $currency,
+ ) ,
+ 'capture' => true,
+ 'payment_method_id' => $prodID,
+ 'description' => $prodName,
+ ) , uniqid('', true));
+ if ($payment->status == "succeeded")
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ }
+ }
+ private function pay_with_paystack($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secretKey)
+ {
+ switch ($payment_type)
+ {
+ case 'single':
+ /*
+ $amount contains the amount to be charged
+ $currency contains the currency of transaction
+ $prodID contains the id of product
+ $prodName contains the name of product
+ $action contains the email of customer
+ $payment_type = single
+ $success_page contains the url where user will be redirected after the transactions succeeds
+ $cancel_page contains the url where user will be redirected in case the user cancels the transaction
+ */
+ if ($amount == "" || $currency == "" || $prodID == "" || $prodName == "" || $action == "" || $success_page == "" || $cancel_page == "")
+ {
+ return false;
+ }
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.paystack.co/transaction/initialize");
+ curl_Setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Authorization: Bearer " . $secretKey,
+ "Content-Type: application/json"
+ ));
+ $data = '{
+ "email": "' . $action . '",
+ "amount": "' . (floatval($amount) * 100) . '",
+ "currency": "' . $currency . '",
+ "callback_url": "' . $success_page . '",
+ "metadata": {
+ "cart_id": "' . $prodID . '",
+ "custom_fields": [
+ {
+ "display_name": "Product Name",
+ "variable_name": "product_name",
+ "value": "' . $prodName . '"
+ }
+ ],
+ "cancel_action": "' . $cancel_page . '"
+ }
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_Setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ // die(var_dump($response));
+ if ($response->status == true)
+ {
+ try
+ {
+ header("Location: " . $response
+ ->data
+ ->authorization_url);
+ exit();
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ return false;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+
+ case 'create_plan':
+ /*
+ $amount contains the amount to be charged
+ $currency contains the currency of transaction
+ $prodName contains the name of product
+ $action contains the email of customer
+ $payment_type = single
+ $success_page contains the url where user will be redirected after the transactions succeeds
+ $cancel_page contains the url where user will be redirected in case the user cancels the transaction
+ */
+
+ // paystack has a strange way to charge customers. Let's modify the plans
+ // We get the details that worked for all others but not for paystack Interval in words. Valid intervals are: daily, weekly, monthly, biannually, annually
+ // Month
+ $paystack_interval = $success_page;
+ // How often
+ $paystack_howoften = $cancel_page;
+
+ if ($paystack_interval == "week")
+ {
+ $paystack_interval = "weekly";
+ }
+ elseif ($paystack_interval == "month" && $paystack_howoften == 1)
+ {
+ $paystack_interval = "monthly";
+ }
+ elseif ($paystack_interval == "month" && $paystack_howoften == 6)
+ {
+ $paystack_interval = "biannually";
+ }
+ else
+ {
+ $paystack_interval = "annually";
+ }
+
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.paystack.co/plan");
+ curl_Setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Authorization: Bearer " . $secretKey,
+ "Content-Type: application/json"
+ ));
+ $data = '{
+ "name": "' . $prodID . '",
+ "interval": "' . $paystack_interval . '",
+ "amount": "' . (floatval($amount) * 100) . '",
+ "currency": "' . $currency . '"
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_Setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ // var_dump($response->message);
+ // var_dump($response->data->plan_code);
+ // die(print_r($response));
+ if ($response->status)
+ {
+ return $response->data->plan_code;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ case 'buy_plan':
+ /*
+ 1. $action specifies the email address of the customer
+ 2. $prodID specifies the id of subscription plan
+ */
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.paystack.co/subscription");
+ curl_Setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Authorization: Bearer " . $secretKey,
+ "Content-Type: application/json"
+ ));
+ $date = date("Y\-m\-d\Th:i:s\Z");
+ $data = '{
+ "customer": "' . $action . '",
+ "plan": "' . $prodID . '",
+ "start_date": "' . $date . '"
+
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ // die(print_r($response));
+ if ($response->status == true && isset($response->data->email_token) && !empty($response->data->email_token))
+ {
+ return $response->data->subscription_code.'_-_'.$response->data->email_token;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ case 'cancel_plan':
+ /*
+ 1. $prodID specifies the id of subscription plan
+ */
+
+ // Paystack is special again
+ $pscancel = explode("_-_", $prodID);
+
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.paystack.co/subscription/disable");
+ curl_Setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ "Authorization: Bearer " . $secretKey,
+ "Content-Type: application/json"
+ ));
+ $data = '{
+ "code": "' . $pscancel[0] . '",
+ "token": "' . $pscancel[1] . '"
+
+ }';
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ // die(print_r($response));
+ if ($response->status == true)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ case 'check_plan':
+ /**
+ * $prodID contains the plan id
+ * $prodName contains the date
+ */
+
+ // Paystack is special again
+ $pscancel = explode("_-_", $prodID);
+
+ $curl = curl_init();
+ curl_setopt_array($curl, array(
+ CURLOPT_URL => "https://api.paystack.co/subscription/".$pscancel[0],
+ CURLOPT_RETURNTRANSFER => true,
+ CURLOPT_ENCODING => "",
+ CURLOPT_MAXREDIRS => 10,
+ CURLOPT_TIMEOUT => 30,
+ CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
+ CURLOPT_CUSTOMREQUEST => "GET",
+ CURLOPT_HTTPHEADER => array(
+ "Authorization: Bearer " . $secretKey,
+ "Cache-Control: no-cache",
+ ),
+ ));
+
+ $response = curl_exec($curl);
+ $response = json_decode($response);
+
+ // Get the ending date of the subscription
+ $subsupdate = strtotime($response->data->updatedAt);
+
+ // Calculate in time stamp from the database
+ $paidunix = strtotime($prodName);
+
+ // die(print_r($response));
+ if ($response->status == true && $response->data->status == "active" && $subsupdate > $paidunix)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ }
+ private function pay_with_verifone($amount, $currency, $prodID, $prodName, $payment_type, $action, $card_type, $info, $code, $key)
+ {
+ switch ($payment_type)
+ {
+ case 'single':
+ /**
+ * $amount is used to specify the amount of transaction
+ * $currency is used to specify the currency of transaction
+ * $prodID specifies the description of transaction
+ * $prodName specifies the name of product
+ * $payment_type = single
+ * $action specifies the card number
+ * $card_type specifies the card type
+ * $info specifies the card expiry date, ccid, holder name and email in following format month:year:ccid:name:email
+ */
+
+ try
+ {
+ if ($amount == "" || $currency == "" || $prodID == "" || $prodName == "" || !is_array($info))
+ {
+ return false;
+ }
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/orders");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Content-Type: application/json',
+ 'Accept: application/json'
+ ));
+ $data = '{
+ "Country": "us",
+ "Currency": "' . $currency . '",
+ "ExternalReference": "REST_API_AVANGTE",
+ "Language": "en",
+ "Source": "' . BASE_URL . '",
+ "BillingDetails": {
+ "Address1": "Address",
+ "City": "City",
+ "State": "State",
+ "CountryCode": "US",
+ "Email": "' . $info['email'] . '",
+ "FirstName": "' . $info['name'] . '",
+ "LastName": "' . $info['name'] . '",
+ "Zip": "12345"
+ },
+ "Items": [
+ {
+ "Name": "' . $prodName . '",
+ "Description": "' . $prodID . '",
+ "Quantity": 1,
+ "IsDynamic": true,
+ "Tangible": false,
+ "PurchaseType": "PRODUCT",
+ "Price": {
+ "Amount": ' . floatval($amount) . ',
+ "Type": "CUSTOM"
+ }
+ }
+ ],
+ "PaymentDetails": {
+ "Type": "' . $prodName . '",
+ "Currency": "' . $currency . '",
+ "PaymentMethod": {
+ "CardNumber": "'.$action.'",
+ "CardType": "'.$card_type.'",
+ "Vendor3DSReturnURL": "www.success.com",
+ "Vendor3DSCancelURL": "www.fail.com",
+ "ExpirationYear": "'.$info['Year'].'",
+ "ExpirationMonth": "'.$info['Month'].'",
+ "CCID": "'.$info['CCID'].'",
+ "HolderName": "'.$fname." ".$lname.'",
+ "RecurringEnabled": false,
+ "HolderNameTime": 1,
+ "CardNumberTime": 1
+ }
+ }
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+
+ die(var_dump($response));
+ try
+ {
+ if ($response->ApproveStatus == "AUTHRECEIVED")
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'recurring':
+ switch ($action)
+ {
+ case 'buy':
+ /**
+ * $amount contains the amount of recurring transaction
+ * $currency contains the currency of recurring transaction
+ * $prodID contains the productCode of subscription plan
+ * $prodName will be left empty
+ * $payment_type = recurring
+ * $action = buy
+ * $card_type contains the card type
+ * $info contains the cardNumber, expiry month, expiry year, ccid, card holder name, email, recurring period
+ */
+ if ($amount == "" || $currency == "" || $prodID == "" || $card_type == "" || !is_array($info))
+ {
+ return false;
+ }
+ if (count($info) < 7)
+ {
+ return false;
+ }
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ if (strtolower($info['Period']) == "month")
+ {
+ $cycles = 36;
+ }
+ else if (strtolower($info['Period']) == "day")
+ {
+ $cycles = 1095;
+ }
+ else
+ {
+ return false;
+ }
+ $name = explode(" ", $info['Name']);
+ if (count($name) >= 2)
+ {
+ $fname = $name[0];
+ $lname = $name[1];
+ }
+ else if (count($name) < 2)
+ {
+ $fname = $name[0];
+ $lname = "";
+ }
+ $start_date = date("Y-m-d");
+ $end_date = explode("-", $start_date);
+ $end_date[0] = (int)$end_date[0];
+ $end_date[0] += 3;
+ $end_date[0] = (string)$end_date[0];
+ $end_date = implode("-", $end_date);
+
+ //getting product id and product name using the productCode
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/products/" . $prodID . "/");
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Accept: application/json',
+ 'ProductCode: ' . $prodID
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ $productID = $response->AvangateId;
+ $productName = $response->ProductName;
+
+ //buying subscription request
+ $ch = curl_init("https://api.2checkout.com/rest/6.0/subscriptions");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Content-Type: application/json',
+ 'Accept: application/json'
+ ));
+ $data = '{
+ "CustomPriceBillingCyclesLeft": ' . $cycles . ',
+ "EndUser": {
+ "Address1": "Address",
+ "Address2": "",
+ "City": "City",
+ "Company": "",
+ "CountryCode": "us",
+ "Email": "' . $info['Email'] . '",
+ "Fax": "",
+ "FirstName": "' . $fname . '",
+ "Language": "en",
+ "LastName": "' . $lname . '",
+ "Phone": "",
+ "State": "CA",
+ "Zip": "12345"
+ },
+ "ExpirationDate": "' . $end_date . '",
+ "ExternalSubscriptionReference": "' . uniqid() . '",
+ "NextRenewalPrice": ' . $amount . ',
+ "NextRenewalPriceCurrency": "' . $currency . '",
+ "PartnerCode": "",
+ "Payment": {
+ "CCID": "' . $info['CCID'] . '",
+ "CardNumber": "' . $info['CardNumber'] . '",
+ "CardType": "' . $card_type . '",
+ "ExpirationMonth": "' . $info['Month'] . '",
+ "ExpirationYear": "' . $info['Year'] . '",
+ "HolderName": "' . $info['Name'] . '"
+ },
+ "Product": {
+ "ProductId": "' . $productID . '",
+ "ProductName": "' . $productName . '",
+ "ProductQuantity": 1,
+ "ProductVersion": ""
+ },
+ "RecurringEnabled": true,
+ "SubscriptionEnabled": true,
+ "StartDate": "' . $start_date . '",
+ "SubscriptionValue": ' . $amount . ',
+ "SubscriptionValueCurrency": "' . $currency . '",
+ "Test": 1
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ if ($response)
+ {
+ $response = json_decode($response);
+ return $response;
+ }
+ return false;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'update':
+ /**
+ * $amount contains the amount of recurring transaction
+ * $currency contains the currency of recurring transaction
+ * $prodID contains the productCode of subscription plan
+ * $prodName will be left empty
+ * $payment_type = recurring
+ * $action = buy
+ * $card_type contains the card type
+ * $info contains the cardNumber, expiry month, expiry year, ccid, card holder name, email, recurring period, subscription reference
+ */
+ if ($amount == "" || $currency == "" || $prodID == "" || $card_type = "" || !is_array($info))
+ {
+ return false;
+ }
+ if (count($info) < 8)
+ {
+ return false;
+ }
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ if (strtolower($info['Period']) == "month")
+ {
+ $cycles = 36;
+ }
+ else if (strtolower($info['Period']) == "day")
+ {
+ $cycles = 1095;
+ }
+ else
+ {
+ return false;
+ }
+ $name = explode(" ", $info['Name']);
+ if (count($name) >= 2)
+ {
+ $fname = $name[0];
+ $lname = $name[1];
+ }
+ else if (count($name) < 2)
+ {
+ $fname = $name[0];
+ $lname = "";
+ }
+ $start_date = date("Y-m-d");
+ $end_date = explode("-", $start_date);
+ $end_date[0] = (int)$end_date[0];
+ $end_date[0] += 3;
+ $end_date[0] = (string)$end_date[0];
+ $end_date = implode("-", $end_date);
+ //getting product id and product name using the productCode
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/products/" . $prodID . "/");
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Accept: application/json',
+ 'ProductCode: ' . $prodID
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ $productID = $response->AvangateId;
+ $productName = $response->ProductName;
+
+ //sending update request
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/subscriptions/" . $info['SubscriptionReference']);
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Content-Type: application/json',
+ 'Accept: application/json',
+ 'SubscriptionReference: ' . $info['SubscriptionReference']
+ ));
+ $data = '{
+ "EndUser": {
+ "Address1": "Address",
+ "Address2": "",
+ "City": "City",
+ "Company": "",
+ "CountryCode": "us",
+ "Email": "' . $info['Email'] . '",
+ "Fax": "",
+ "FirstName": "' . $fname . '",
+ "Language": "en",
+ "LastName": "' . $lname . '",
+ "Phone": "",
+ "State": "CA",
+ "Zip": "12345"
+ },
+ "ExpirationDate": "' . $end_date . '",
+ "Product": {
+ "ProductId": "' . $productID . '",
+ "ProductName": "' . $productName . '",
+ "ProductQuantity": 1
+ },
+ "RecurringEnabled": true,
+ "SubscriptionEnabled": true
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ return $response;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'cancel':
+ if (!is_array($info))
+ {
+ return false;
+ }
+ if (count($info) < 1)
+ {
+ return false;
+ }
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/subscriptions/" . $info['SubscriptionReference']);
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Content-Type: application/json',
+ 'Accept: application/json',
+ 'SubscriptionReference: ' . $info['SubscriptionReference']
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ return $response;
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'create_plan':
+ /**
+ * $amount contains the amount of subscription
+ * $currency contains the currency of subscription plan
+ * $prodID contains the description of subscription plan
+ * $prodName contains the name of subscription plan
+ * $card_type contains the interval of subscription plan
+ */
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ $productCode = uniqid();
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/products/");
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Accept: application/json',
+ 'Content-Type: application/json'
+ ));
+ if (strtolower($card_type) == "m")
+ {
+ $interval = 36;
+ }
+ else if (strtolower($card_type) == "h")
+ {
+ $interval = 1095;
+ }
+ $data = '{
+ "BundleProducts": [],
+ "Enabled": true,
+ "GeneratesSubscription": true,
+ "GiftOption": false,
+ "LongDescription": "\r\n\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Donec maximus orci a nulla dignissim, ut egestas nunc blandit. Nunc porta lorem sed dui placerat lobortis. Suspendisse rutrum justo enim, et mattis ex convallis at. Nullam vehicula justo nunc, non maximus purus pharetra a. Ut ipsum velit, efficitur ac laoreet a, pellentesque et lorem. Morbi ac nibh ut lectus tempus ullamcorper tincidunt in justo. Aenean viverra euismod cursus. Donec rhoncus laoreet ligula nec euismod.",
+ "Platforms": [
+ {
+ "Category": "Mobile",
+ "IdPlatform": "23",
+ "PlatformName": "Android"
+ },
+ {
+ "Category": "Mobile",
+ "IdPlatform": "20",
+ "PlatformName": "iPhone"
+ },
+ {
+ "Category": "Desktop",
+ "IdPlatform": "32",
+ "PlatformName": "Windows 10"
+ }
+ ],
+ "Prices": [],
+ "PricingConfigurations": [
+ {
+ "BillingCountries": [],
+ "Code": "54DCBC3DC8",
+ "Default": true,
+ "DefaultCurrency": "' . $currency . '",
+ "Name": "2Checkout Subscriptions Price Configuration Marius",
+ "PriceOptions": [
+ {
+ "Code": "SUPPORT",
+ "Required": true
+ },
+ {
+ "Code": "USERS",
+ "Required": true
+ },
+ {
+ "Code": "BACKUP",
+ "Required": false
+ }
+ ],
+ "PriceType": "NET",
+ "Prices": {
+ "Regular": [
+ {
+ "Amount": ' . floatval($amount) . ',
+ "Currency": "' . $currency . '",
+ "MaxQuantity": "99999",
+ "MinQuantity": "1",
+ "OptionCodes": []
+ }
+ ],
+ "Renewal": []
+ },
+ "PricingSchema": "DYNAMIC"
+ }
+ ],
+ "ProductCategory": "Audio & Video",
+ "ProductCode": "' . $productCode . '",
+ "ProductName": "' . $prodName . '",
+ "ProductType": "REGULAR",
+ "ProductVersion": "1.0",
+ "PurchaseMultipleUnits": true,
+ "ShortDescription": "\r\n\tLorem ipsum dolor sit amet, consectetur adipiscing elit. Donec maximus orci a nulla dignissim, ut egestas nunc blandit. ",
+ "SubscriptionInformation": {
+ "BillingCycle": "' . $interval . '",
+ "BillingCycleUnits": "' . $card_type . '",
+ "BundleRenewalManagement": "GLOBAL",
+ "ContractPeriod": {
+ "Action": "RESTART",
+ "EmailsDuringContract": true,
+ "IsUnlimited": true,
+ "Period": -1
+ },
+ "DeprecatedProducts": [],
+ "IsOneTimeFee": false,
+ "RenewalEmails": {
+ "Settings": {
+ "AutomaticRenewal": {
+ "After15Days": false,
+ "After5Days": false,
+ "Before15Days": false,
+ "Before1Day": false,
+ "Before30Days": false,
+ "Before7Days": true,
+ "OnExpirationDate": true
+ },
+ "ManualRenewal": {
+ "After15Days": false,
+ "After5Days": false,
+ "Before15Days": false,
+ "Before1Day": false,
+ "Before30Days": false,
+ "Before7Days": true,
+ "OnExpirationDate": true
+ }
+ },
+ "Type": "CUSTOM"
+ },
+ "UsageBilling": 0
+ },
+ "SystemRequirements": "",
+ "TrialDescription": "",
+ "TrialUrl": ""
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ if ($response == true)
+ {
+ return $productCode;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ var_dump($e);
+ return false;
+ }
+ break;
+ case 'delete_plan':
+ //$prodID contains the productCode of subscription plan
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ //getting product ID and product name
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/products/" . $prodID . "/");
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Accept: application/json',
+ 'ProductCode: ' . $prodID,
+ "Content-Type: application/json"
+ ));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ try
+ {
+ if ($response == true)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+ return false;
+ }
+ break;
+ case 'update_plan':
+ //$prodId corresponds to the productCode of subscription plan
+ //$prodName contains the new name of subscription plan
+ $date = gmdate('Y-m-d H:i:s');
+ $hash_string = strlen($code) . $code . strlen($date) . $date;
+ $hash = hash_hmac('md5', $hash_string, $key);
+ try
+ {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, "https://api.2checkout.com/rest/6.0/products/" . $prodID . "/");
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'X-Avangate-Authentication: code="' . $code . '" date="' . $date . '" hash="' . $hash . '"',
+ 'Accept: application/json',
+ 'ProductCode: ' . $prodID,
+ "Content-Type: application/json",
+ "Accept: application/json"
+ ));
+ $data = '{
+ "Enabled": true,
+ "ProductName": "' . $prodName . '"
+ }';
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ $response = curl_exec($ch);
+ $response = json_decode($response);
+ var_dump($response);
+ try
+ {
+ if ($response == true)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ catch(Exception $e)
+ {
+
+ }
+ }
+ catch(Exception $e)
+ {
+
+ }
+ break;
+ }
+ break;
+ }
+ }
+ public function JAK_pay($platform, $amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two, $sandbox)
+ {
+ $platform = strtolower($platform);
+ switch ($platform)
+ {
+ case 'stripe':
+ return $this->pay_with_stripe($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two);
+ break;
+ case 'paypal':
+ return $this->pay_with_paypal($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two, $sandbox);
+ break;
+ case 'verifone':
+ return $this->pay_with_verifone($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two);
+ break;
+ case 'authorize.net':
+ return $this->pay_with_authorize($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two, $sandbox);
+ break;
+ case 'yoomoney':
+ return $this->pay_with_yoomoney($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one, $secret_two);
+ break;
+ case 'paystack':
+ return $this->pay_with_paystack($amount, $currency, $prodID, $prodName, $payment_type, $action, $success_page, $cancel_page, $secret_one);
+ break;
+ }
+ }
+
+ }
+?>
diff --git a/class/class.rewrite.php b/class/class.rewrite.php
new file mode 100644
index 0000000..d2d9554
--- /dev/null
+++ b/class/class.rewrite.php
@@ -0,0 +1,285 @@
+url) : str_replace(SITE_SUBFOLDER, '', $this->url));
+ $_tmp = explode('?', $url);
+ $url = $_tmp[0];
+
+ if ($url = explode('/', $url)) {
+ foreach ($url as $d) {
+ if ($d) {
+ $data[] = $d;
+ }
+ }
+ }
+
+ if (!empty($data[$var])) $url_seg = $data[$var];
+
+ } else {
+
+ // get the url and parse it
+ $parseurl = parse_url($this->url);
+
+ if (!empty($parseurl["query"])) {
+ // get only the query
+ $parameters = $parseurl["query"];
+ parse_str($parameters, $data);
+
+ // Now we have to set the array to basic keys
+ if (!empty($data)) foreach($data as $d) {
+ $data[] = $d;
+ }
+
+ if (!empty($data[$var])) $url_seg = $data[$var];
+
+ }
+ }
+
+
+ if (!empty($url_seg)) return $url_seg;
+
+ }
+ }
+
+ public static function jakCleanurl($str, $options = array()) {
+
+ $defaults = array(
+ 'delimiter' => '-',
+ 'limit' => null,
+ 'lowercase' => true,
+ 'replacements' => array(),
+ 'transliterate' => true,
+ );
+
+ // Merge options
+ $options = array_merge($defaults, $options);
+
+ $char_map = array(
+ // Latin
+ 'À' => 'A', 'Ã' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Ã…' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
+ 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'ÃŒ' => 'I', 'Ã' => 'I', 'ÃŽ' => 'I', 'Ã' => 'I',
+ 'Ã' => 'D', 'Ñ' => 'N', 'Ã’' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Å' => 'O',
+ 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ã' => 'Y', 'Þ' => 'TH',
+ 'ß' => 'ss',
+ 'à ' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
+ 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'Ã' => 'i', 'î' => 'i', 'ï' => 'i',
+ 'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
+ 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
+ 'ÿ' => 'y',
+
+ // Latin symbols
+ '©' => '(c)',
+
+ // Greek
+ 'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
+ 'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Î' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Î ' => 'P',
+ 'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
+ 'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'ÎŒ' => 'O', 'ÎŽ' => 'Y', 'Ή' => 'H', 'Î' => 'W', 'Ϊ' => 'I',
+ 'Ϋ' => 'Y',
+ 'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
+ 'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
+ 'Ï' => 'r', 'σ' => 's', 'Ï„' => 't', 'Ï…' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
+ 'ά' => 'a', 'Î' => 'e', 'ί' => 'i', 'ÏŒ' => 'o', 'Ï' => 'y', 'ή' => 'h', 'ÏŽ' => 'w', 'Ï‚' => 's',
+ 'ÏŠ' => 'i', 'ΰ' => 'y', 'Ï‹' => 'y', 'Î' => 'i',
+
+ // Turkish
+ 'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
+ 'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
+
+ // Russian
+ 'Ð' => 'A', 'Б' => 'B', 'Ð’' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ð' => 'Yo', 'Ж' => 'Zh',
+ 'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Ð' => 'N', 'О' => 'O',
+ 'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
+ 'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Ð' => 'E', 'Ю' => 'Yu',
+ 'Я' => 'Ya',
+ 'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
+ 'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
+ 'п' => 'p', 'Ñ€' => 'r', 'Ñ' => 's', 'Ñ‚' => 't', 'у' => 'u', 'Ñ„' => 'f', 'Ñ…' => 'h', 'ц' => 'c',
+ 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ÑŠ' => '', 'Ñ‹' => 'y', 'ÑŒ' => '', 'Ñ' => 'e', 'ÑŽ' => 'yu',
+ 'Ñ' => 'ya',
+
+ // Ukrainian
+ 'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ò' => 'G',
+ 'Ñ”' => 'ye', 'Ñ–' => 'i', 'Ñ—' => 'yi', 'Ò‘' => 'g',
+
+ // Czech
+ 'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
+ 'Ž' => 'Z',
+ 'Ä' => 'c', 'Ä' => 'd', 'Ä›' => 'e', 'ň' => 'n', 'Å™' => 'r', 'Å¡' => 's', 'Å¥' => 't', 'ů' => 'u',
+ 'ž' => 'z',
+
+ // Polish
+ 'Ä„' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Å' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Åš' => 'S', 'Ź' => 'Z',
+ 'Å»' => 'Z',
+ 'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
+ 'ż' => 'z',
+
+ // Latvian
+ 'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
+ 'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
+ 'Ä' => 'a', 'Ä' => 'c', 'Ä“' => 'e', 'Ä£' => 'g', 'Ä«' => 'i', 'Ä·' => 'k', 'ļ' => 'l', 'ņ' => 'n',
+ 'š' => 's', 'ū' => 'u', 'ž' => 'z'
+ );
+
+ // Make custom replacements
+ if (!empty($options['replacements'])) {
+ $str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
+ }
+
+ // Transliterate characters to ASCII
+ if ($options['transliterate']) {
+ $str = str_replace(array_keys($char_map), $char_map, $str);
+ }
+
+ // Replace non-alphanumeric characters with our delimiter
+ $str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
+
+ // Remove duplicate delimiters
+ $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
+
+ // Truncate slug to max. characters
+ $str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
+
+ // Remove delimiter from ends
+ $str = trim($str, $options['delimiter']);
+
+ return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
+
+ }
+
+ public static function jakParseurl($var, $var1 = '', $var2 = '', $var3 = '', $var4 = '', $var5 = '', $var6 = '', $var7 = '')
+ {
+
+ // Global
+ global $BASE_URL;
+
+ // Set v to zero
+ $v = $v1 = $v2 = $v3 = $v4 = $v5 = $v6 = $v7 = $varname = '';
+
+ // Check if is/not apache and create url
+ if (!JAK_USE_APACHE) {
+
+ if ($var1) {
+ $v = '&sp='.htmlspecialchars($var1);
+ }
+ if ($var2) {
+ $v1 = '&ssp='.htmlspecialchars($var2);
+ }
+ if ($var3) {
+ $v2 = '&sssp='.htmlspecialchars($var3);
+ }
+
+ if ($var4) {
+ $v3 = '&ssssp='.htmlspecialchars($var4);
+ }
+
+ if ($var5) {
+ $v4 = '&sssssp='.htmlspecialchars($var5);
+ }
+
+ if ($var6) {
+ $v5 = '&sssssp='.htmlspecialchars($var6);
+ }
+
+ if ($var7) {
+ $v6 = '&sssssp='.htmlspecialchars($var7);
+ }
+
+ // if not apache add some stuff to the url
+ if ($var) {
+ if ($var == JAK_OPERATOR_LOC) {
+ $var = JAK_OPERATOR_LOC.'/index.php?p='.htmlspecialchars($var1);
+ $varname = (defined('BASE_URL') ? BASE_URL : $BASE_URL).html_entity_decode($var.$v1.$v2.$v3.$v4.$v5.$v6);
+ } else {
+ $var = 'index.php?p='.htmlspecialchars($var);
+ $varname = (defined('BASE_URL') ? BASE_URL : $BASE_URL).html_entity_decode($var.$v.$v1.$v2.$v3.$v4.$v5.$v6);
+ }
+ } else {
+ $var = '/';
+ $varname = (defined('BASE_URL') ? BASE_URL : $BASE_URL).html_entity_decode($var.$v.$v1.$v2.$v3.$v4.$v5.$v6);
+ }
+
+ } else {
+
+ if ($var1) {
+ $v = '/'.htmlspecialchars($var1);
+ }
+ if ($var2) {
+ $v1 = '/'.htmlspecialchars($var2);
+ }
+ if ($var3) {
+ $v2 = '/'.htmlspecialchars($var3);
+ }
+ if ($var4) {
+ $v3 = '/'.htmlspecialchars($var4);
+ }
+ if ($var5) {
+ $v4 = '/'.htmlspecialchars($var5);
+ }
+ if ($var6) {
+ $v5 = '/'.htmlspecialchars($var6);
+ }
+ if ($var7) {
+ $v6 = '/'.htmlspecialchars($var7);
+ }
+
+ // page is always the same
+ $var = htmlspecialchars($var);
+
+ // Now se the var for apache
+ $varname = (defined('BASE_URL') ? BASE_URL : $BASE_URL).$var.$v.$v1.$v2.$v3.$v4.$v5.$v6;
+
+ }
+
+ if (!empty($varname)) return $varname;
+
+ }
+
+ public static function jakParseurlpaginate($var) {
+
+ $varname = '';
+
+ if ($var != 1) {
+ // Check if is/not apache and create url
+ if (!JAK_USE_APACHE && $var) {
+ // Now se the var for none apache
+ $varname = '&page='.$var;
+ } else {
+ // Now se the var for seo apache
+ $varname = '/'.$var;
+ }
+ }
+
+ return $varname;
+
+ }
+
+ public function jakRealrequest()
+ {
+ return str_replace(_APP_MAIN_DIR, '', $this->url);
+ }
+}
+?>
diff --git a/class/class.user.php b/class/class.user.php
new file mode 100644
index 0000000..33983b7
--- /dev/null
+++ b/class/class.user.php
@@ -0,0 +1,45 @@
+data = $row;
+ }
+
+ function jakSuperadminaccess($lsvar) {
+ $useridarray = explode(',', JAK_SUPERADMIN);
+ // check if userid exist in db.php
+ if (in_array($lsvar, $useridarray)) {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ function getVar($lsvar) {
+
+ // Setting up an alias, so we don't have to write $this->data every time:
+ $d = $this->data;
+
+ if (isset($d[$lsvar])) {
+ return $d[$lsvar];
+ } else {
+ return false;
+ }
+
+ }
+}
+?>
diff --git a/class/class.userlogin.php b/class/class.userlogin.php
new file mode 100644
index 0000000..28f7d09
--- /dev/null
+++ b/class/class.userlogin.php
@@ -0,0 +1,362 @@
+username = '';
+ }
+
+ function jakChecklogged() {
+
+ /* Check if user has been remembered */
+ if (isset($_COOKIE['jak_lcp_cookname']) && isset($_COOKIE['jak_lcp_cookid'])) {
+ $_SESSION['jak_lcp_username'] = $_COOKIE['jak_lcp_cookname'];
+ $_SESSION['jak_lcp_idhash'] = $_COOKIE['jak_lcp_cookid'];
+ }
+
+ /* Username and idhash have been set */
+ if (isset($_SESSION['jak_lcp_username']) && isset($_SESSION['jak_lcp_idhash']) && $_SESSION['jak_lcp_username'] != $this->username) {
+ /* Confirm that username and userid are valid */
+ if (!JAK_userlogin::jakConfirmidhash($_SESSION['jak_lcp_username'], $_SESSION['jak_lcp_idhash'])) {
+ /* Variables are incorrect, user not logged in */
+ unset($_SESSION['jak_lcp_username']);
+ unset($_SESSION['jak_lcp_idhash']);
+
+ return false;
+ }
+
+ // Return the user data
+ return JAK_userlogin::jakUserinfo($_SESSION['jak_lcp_username']);
+
+ /* User not logged in */
+ } else {
+ return false;
+ }
+ }
+
+ function jakCheckrestlogged($userid, $hash) {
+
+ /* UserID and Hash have been set */
+ global $jakdb;
+ $datauinfo = $jakdb->get("user", "*", ["AND" => ["id" => $userid, "idhash" => $hash]]);
+ if (isset($datauinfo) && !empty($datauinfo)) {
+
+ // Return the user data
+ return $datauinfo;
+
+ /* User not logged in */
+ } else {
+ return false;
+ }
+ }
+
+ public static function jakCheckuserdata($username, $pass) {
+
+ // The new password encrypt with hash_hmac
+ $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
+
+ if (!filter_var($username, FILTER_VALIDATE_EMAIL)) {
+
+ if (!preg_match('/^([a-zA-Z0-9\-_])+$/', $username)) {
+ return false;
+ }
+
+ }
+
+ global $jakdb;
+ $datausr = $jakdb->get("user", ["id", "username"], ["AND" => ["OR" => ["username" => strtolower($username), "email" => strtolower($username)], "password" => $passcrypt, "access" => 1]]);
+ if ($datausr) {
+ return $datausr;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakLogin($name, $pass, $remember) {
+
+ // The new password encrypt with hash_hmac
+ $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
+
+ global $jakdb;
+
+ // Get the stuff out the database
+ $datausr = $jakdb->get("user", ["idhash", "logins"], ["AND" => ["username" => $name, "password" => $passcrypt]]);
+
+ if ($datausr['logins'] % 10 == 0) {
+
+ // Generate new idhash
+ $nidhash = JAK_userlogin::generateRandID();
+
+ } else {
+
+ if (isset($datausr['idhash']) && !empty($datausr['idhash']) && $datausr['idhash'] != "NULL") {
+
+ // Take old idhash
+ $nidhash = $datausr['idhash'];
+
+ } else {
+
+ // Generate new idhash
+ $nidhash = JAK_userlogin::generateRandID();
+
+ }
+
+ }
+
+ // Set session in database
+ $jakdb->update("user", ["session" => session_id(), "idhash" => $nidhash, "logins[+]" => 1, "available" => 1, "forgot" => 0, "lastactivity" => time()], ["AND" => ["username" => $name, "password" => $passcrypt]]);
+
+ $_SESSION['jak_lcp_username'] = $name;
+ $_SESSION['jak_lcp_idhash'] = $nidhash;
+
+ // Check if cookies are set previous (wrongly) and delete
+ if (isset($_COOKIE['jak_lcp_cookname']) || isset($_COOKIE['jak_lcp_cookid'])) {
+
+ JAK_base::jakCookie('jak_lcp_cookname', $name, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcp_cookid', $nidhash, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ }
+
+ // Now check if remember is selected and set cookies new...
+ if ($remember) {
+
+ JAK_base::jakCookie('jak_lcp_cookname', $name, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcp_cookid', $nidhash, JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ }
+
+ }
+
+ public static function jakrestLogin($name, $pass) {
+
+ // The new password encrypt with hash_hmac
+ $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
+
+ global $jakdb;
+
+ // Get the stuff out the database
+ $datausr = $jakdb->get("user",["idhash", "logins"], ["AND" => ["username" => $name, "password" => $passcrypt]]);
+
+ if ($datausr['logins'] % 10 == 0) {
+
+ // Generate new idhash
+ $nidhash = JAK_userlogin::generateRandID();
+
+ } else {
+
+ if (isset($datausr['idhash']) && !empty($datausr['idhash']) && $datausr['idhash'] != "NULL") {
+
+ // Take old idhash
+ $nidhash = $datausr['idhash'];
+
+ } else {
+
+ // Generate new idhash
+ $nidhash = JAK_userlogin::generateRandID();
+
+ }
+
+ }
+
+ // Set session in database
+ $jakdb->update("user", ["session" => session_id(), "idhash" => $nidhash, "logins[+]" => 1, "available" => 1, "forgot" => 0, "lastactivity" => time()], ["AND" => ["username" => $name, "password" => $passcrypt]]);
+
+ // Return the user data
+ return JAK_userlogin::jakUserinfo($name);
+
+ }
+
+ public static function jakWriteDeviceToken($userid, $opid, $device, $token, $appname, $appversion) {
+
+ // Check the data before we run any queries
+ $allowed_device_types = ['ios', 'android'];
+ if (in_array($device, $allowed_device_types) === false) {
+ return false;
+ }
+
+ if ((strlen(trim($token)) === 0) || (strlen(trim($token)) > 250)) {
+ return false;
+ }
+
+ $allowed_app_versions = ['LC3', 'HD3'];
+ if (in_array($appname, $allowed_app_versions) === false) {
+ $appname = 'LC3';
+ }
+
+ // trim token
+ $token = trim($token);
+
+ global $jakdb;
+ // Get the info out the database
+ $pushid = $jakdb->get("push_notification_devices", "id", ["token" => $token]);
+
+ if (isset($pushid) && !empty($pushid)) {
+ $jakdb->update("push_notification_devices", ["lastedit" => $jakdb->raw("NOW()")], ["id" => $pushid]);
+ } else {
+ // We have no entry at all
+ $jakdb->insert("push_notification_devices", ["userid" => $userid, "opid" => $opid, "ostype" => $device, "token" => $token, "appname" => $appname, "appversion" => $appversion, "lastedit" => $jakdb->raw("NOW()"), "created" => $jakdb->raw("NOW()")]);
+ }
+
+ // Remove old entries older than 4 weeks
+ $deleteold = strtotime("-4 weeks");
+ $deleteoldmysql = date('Y-m-d H:i:s', $deleteold);
+ $jakdb->delete("push_notification_devices", ["lastedit[<]" => $deleteoldmysql]);
+
+ return true;
+
+ }
+
+ public static function jakConfirmidhash($username, $idhash) {
+
+ global $jakdb;
+
+ if (isset($username) && !empty($username)) {
+
+ $datausr = $jakdb->get("user","idhash",["AND" => ["username" => $username, "access" => 1]]);
+
+ if ($datausr) {
+
+ $datausr = stripslashes($datausr);
+ $idhash = stripslashes($idhash);
+
+ /* Validate that userid is correct */
+ if(!is_null($datausr) && $idhash == $datausr) {
+ return true; //Success! Username and idhash confirmed
+ }
+
+ }
+
+ }
+
+ return false;
+
+ }
+
+ public static function jakUserinfo($username) {
+
+ global $jakdb;
+ $datauinfo = $jakdb->get("user", "*", ["AND" => ["username" => $username, "access" => 1]]);
+ if ($datauinfo) {
+ return $datauinfo;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakUpdatelastactivity($userid) {
+
+ global $jakdb;
+ if (is_numeric($userid)) $jakdb->update("user", ["lastactivity" => time()], ["id" => $userid]);
+
+ }
+
+ public static function jakForgotpassword($email, $time) {
+
+ global $jakdb;
+ if ($jakdb->has("user", ["AND" => ["email" => $email, "access" => 1]])) {
+ if ($time != 0) $jakdb->update("user", ["forgot" => $time], ["email" => $email]);
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
+ public static function jakForgotactive($forgotid) {
+
+ global $jakdb;
+ if ($jakdb->has("user", ["AND" => ["forgot" => $forgotid, "access" => 1]])) {
+ return true;
+ } else
+ return false;
+
+ }
+
+ public static function jakForgotcheckuser($email, $forgotid) {
+
+ global $jakdb;
+ if ($jakdb->has("user", ["AND" => ["email" => $email, "forgot" => $forgotid, "access" => 1]])) {
+ return true;
+ } else
+ return false;
+
+ }
+
+ public static function jakWriteloginlog($username, $url, $ip, $agent, $success) {
+
+ global $jakdb;
+ if ($success == 1) {
+ $jakdb->update("loginlog", ["access" => 1], ["AND" => ["ip" => $ip, "time" => $jakdb->raw("NOW()")]]);
+ } else {
+ $jakdb->insert("loginlog", ["name" => $username, "fromwhere" => $url, "usragent" => $agent, "ip" => $ip, "time" => $jakdb->raw("NOW()"), "access" => 0]);
+ }
+
+ }
+
+ public static function jakLogout($userid) {
+
+ global $jakdb;
+
+ // Delete cookies from this page
+ JAK_base::jakCookie('jak_lcp_cookname', '', -JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+ JAK_base::jakCookie('jak_lcp_cookid', '', - JAK_COOKIE_TIME, JAK_COOKIE_PATH);
+
+ // Update Database to session NULL
+ $jakdb->update("user", ["session" => $jakdb->raw("NULL"), "idhash" => $jakdb->raw("NULL"), "available" => 0], ["id" => $userid]);
+
+ // Unset the main sessions
+ unset($_SESSION['jak_lcp_username']);
+ unset($_SESSION['jak_lcp_idhash']);
+ unset($_SESSION['jak_lcp_lang']);
+
+ // Destroy session and generate new one for that user
+ session_destroy();
+
+ // Start new session
+ session_start();
+ session_regenerate_id();
+
+ }
+
+ public static function jakLogoutRest($userid) {
+
+ global $jakdb;
+
+ // Update Database to session NULL
+ $jakdb->update("user", ["session" => $jakdb->raw("NULL"), "idhash" => $jakdb->raw("NULL"), "available" => 0], ["id" => $userid]);
+
+ }
+
+ public static function generateRandStr($length) {
+ $randstr = "";
+ for($i=0; $i<$length; $i++){
+ $randnum = mt_rand(0,61);
+ if($randnum < 10){
+ $randstr .= chr($randnum+48);
+ }else if($randnum < 36){
+ $randstr .= chr($randnum+55);
+ }else{
+ $randstr .= chr($randnum+61);
+ }
+ }
+ return $randstr;
+ }
+
+ private static function generateRandID() {
+ return md5(JAK_userlogin::generateRandStr(16));
+ }
+}
+?>
diff --git a/class/emoji/Client.php b/class/emoji/Client.php
new file mode 100644
index 0000000..dfec8f6
--- /dev/null
+++ b/class/emoji/Client.php
@@ -0,0 +1,480 @@
+]*>.*?<\/object>|]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>';
+ public $unicodeRegexp = '([*#0-9](?>\\xEF\\xB8\\x8F)?\\xE2\\x83\\xA3|\\xC2[\\xA9\\xAE]|\\xE2..(\\xF0\\x9F\\x8F[\\xBB-\\xBF])?(?>\\xEF\\xB8\\x8F)?|\\xE3(?>\\x80[\\xB0\\xBD]|\\x8A[\\x97\\x99])(?>\\xEF\\xB8\\x8F)?|\\xF0\\x9F(?>[\\x80-\\x86].(?>\\xEF\\xB8\\x8F)?|\\x87.\\xF0\\x9F\\x87.|..((\\xE2\\x80\\x8D\\xF0\\x9F\\x97\\xA8)|(\\xF0\\x9F\\x8F[\\xBB-\\xBF])|(\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6-\\xA9]){2,3}|(\\xE2\\x80\\x8D\\xE2\\x9D\\xA4\\xEF\\xB8\\x8F\\xE2\\x80\\x8D\\xF0\\x9F..(\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6-\\xA9])?))?))';
+
+ public $shortcodeRegexp = ':([-+\\w]+):';
+
+ protected $ruleset = null;
+
+ public function __construct(RulesetInterface $ruleset = null)
+ {
+ if ( ! is_null($ruleset) )
+ {
+ $this->ruleset = $ruleset;
+ }
+ }
+
+ // ##########################################
+ // ######## core methods
+ // ##########################################
+
+ /**
+ * First pass changes unicode characters into emoji markup.
+ * Second pass changes any shortnames into emoji markup.
+ *
+ * @param string $string The input string.
+ * @return string String with appropriate html for rendering emoji.
+ */
+ public function toImage($string)
+ {
+ $string = $this->unicodeToImage($string);
+ $string = $this->shortnameToImage($string);
+ return $string;
+ }
+
+ /**
+ * Uses toShort to transform all unicode into a standard shortname
+ * then transforms the shortname into unicode.
+ * This is done for standardization when converting several unicode types.
+ *
+ * @param string $string The input string.
+ * @return string String with standardized unicode.
+ */
+ public function unifyUnicode($string)
+ {
+ $string = $this->toShort($string);
+ $string = $this->shortnameToUnicode($string);
+ return $string;
+ }
+
+ /**
+ * This will output unicode from shortname input.
+ * If Client/$ascii is true it will also output unicode from ascii.
+ * This is useful for sending emojis back to mobile devices.
+ *
+ * @param string $string The input string.
+ * @return string String with unicode replacements.
+ */
+ public function shortnameToUnicode($string)
+ {
+ $string = preg_replace_callback('/'.$this->ignoredRegexp.'|('.$this->shortcodeRegexp.')/Si', array($this, 'shortnameToUnicodeCallback'), $string);
+
+ if ($this->ascii)
+ {
+ $ruleset = $this->getRuleset();
+ $asciiRegexp = $ruleset->getAsciiRegexp();
+
+ $string = preg_replace_callback('/'.$this->ignoredRegexp.'|((\\s|^)'.$asciiRegexp.'(?=\\s|$|[!,.?]))/S', array($this, 'asciiToUnicodeCallback'), $string);
+ }
+
+ return $string;
+ }
+
+ /**
+ * This will replace shortnames with their ascii equivalent.
+ * ex. :wink: --> ;^)
+ * This is useful for systems that don't support unicode or images.
+ *
+ * @param string $string The input string.
+ * @return string String with ascii replacements.
+ */
+ public function shortnameToAscii($string)
+ {
+ $string = preg_replace_callback('/'.$this->ignoredRegexp.'|('.$this->shortcodeRegexp.')/Si', array($this, 'shortnameToAsciiCallback'), $string);
+
+ return $string;
+ }
+
+ /**
+ * This will output image markup (for png or svg) from shortname input.
+ *
+ * @param string $string The input string.
+ * @return string String with appropriate html for rendering emoji.
+ */
+ public function shortnameToImage($string)
+ {
+ $string = preg_replace_callback('/'.$this->ignoredRegexp.'|('.$this->shortcodeRegexp.')/Si', array($this, 'shortnameToImageCallback'), $string);
+
+ if ($this->ascii)
+ {
+ $ruleset = $this->getRuleset();
+ $asciiRegexp = $ruleset->getAsciiRegexp();
+
+ $string = preg_replace_callback('/'.$this->ignoredRegexp.'|((\\s|^)'.$asciiRegexp.'(?=\\s|$|[!,.?]))/S', array($this, 'asciiToImageCallback'), $string);
+ }
+
+ return $string;
+ }
+
+ /**
+ * This will return the shortname from unicode input.
+ *
+ * @param string $string The input string.
+ * @return string shortname
+ */
+ public function toShort($string)
+ {
+ return preg_replace_callback('/'.$this->ignoredRegexp.'|'.$this->unicodeRegexp.'/S', array($this, 'toShortCallback'), $string);
+ }
+
+ /**
+ * This will output image markup (for png or svg) from unicode input.
+ *
+ * @param string $string The input string.
+ * @return string String with appropriate html for rendering emoji.
+ */
+ public function unicodeToImage($string)
+ {
+ return preg_replace_callback('/'.$this->ignoredRegexp.'|'.$this->unicodeRegexp.'/S', array($this, 'unicodeToImageCallback'), $string);
+ }
+
+ // ##########################################
+ // ######## preg_replace callbacks
+ // ##########################################
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Ascii replacement result.
+ */
+ public function shortnameToAsciiCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[1])) || (empty($m[1])))
+ {
+ return $m[0];
+ }
+ else
+ {
+ $ruleset = $this->getRuleset();
+ $shortcode_replace = $ruleset->getShortcodeReplace();
+ $ascii_replace = $ruleset->getAsciiReplace();
+
+ $aflipped = array_flip($ascii_replace);
+
+ $shortname = $m[0];
+
+ if (!isset($shortcode_replace[$shortname]))
+ {
+ return $m[0];
+ }
+
+ $unicode = $shortcode_replace[$shortname];
+
+ return isset($aflipped[$unicode]) ? $aflipped[$unicode] : $m[0];
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Unicode replacement result.
+ */
+ public function shortnameToUnicodeCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[1])) || (empty($m[1]))) {
+ return $m[0];
+ }
+ else {
+ $ruleset = $this->getRuleset();
+ $unicode_replace = $ruleset->getUnicodeReplace();
+
+
+ $shortname = $m[1];
+
+ if (!array_key_exists($shortname, $unicode_replace)) {
+ return $m[0];
+ }
+
+
+ $unicode = $unicode_replace[$shortname];
+
+ return $unicode;
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Image HTML replacement result.
+ */
+ public function shortnameToImageCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[1])) || (empty($m[1]))) {
+ return $m[0];
+ }
+ else {
+ $ruleset = $this->getRuleset();
+ $shortcode_replace = $ruleset->getShortcodeReplace();
+
+ $shortname = $m[1];
+
+ if (!isset($shortcode_replace[$shortname]))
+ {
+ return $m[0];
+ }
+
+
+ $unicode = $shortcode_replace[$shortname];
+ $filename = $unicode;
+
+ if ($this->unicodeAlt)
+ {
+ $alt = $this->convert($unicode);
+ }
+ else
+ {
+ $alt = $shortname;
+ }
+
+ if ($this->imageType == 'png')
+ {
+ if ($this->sprites)
+ {
+ return ''.$alt.'';
+ }
+ else
+ {
+ return '
';
+ }
+ }
+
+ if ($this->sprites)
+ {
+ return '';
+ }
+ else
+ {
+ return '';
+ }
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Unicode replacement result.
+ */
+ public function asciiToUnicodeCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[3])) || (empty($m[3])))
+ {
+ return $m[0];
+ }
+ else
+ {
+ $ruleset = $this->getRuleset();
+ $ascii_replace = $ruleset->getAsciiReplace();
+
+ $shortname = $m[3];
+ $unicode = $ascii_replace[$shortname];
+ return $m[2].$this->convert($unicode);
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Image HTML replacement result.
+ */
+ public function asciiToImageCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[3])) || (empty($m[3])))
+ {
+ return $m[0];
+ }
+ else
+ {
+ $ruleset = $this->getRuleset();
+ $ascii_replace = $ruleset->getAsciiReplace();
+
+ $shortname = html_entity_decode($m[3]);
+ $unicode = $ascii_replace[$shortname];
+
+ // unicode char or shortname for the alt tag? (unicode is better for copying and pasting the resulting text)
+ if ($this->unicodeAlt)
+ {
+ $alt = $this->convert($unicode);
+ }
+ else
+ {
+ $alt = htmlspecialchars($shortname);
+ }
+
+ if ($this->imageType == 'png')
+ {
+ if ($this->sprites)
+ {
+ return $m[2].''.$alt.'';
+ }
+ else
+ {
+ return $m[2].'
';
+ }
+ }
+
+ if ($this->sprites)
+ {
+ return $m[2].'';
+ }
+ else
+ {
+ return $m[2].'';
+ }
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string shortname result
+ */
+ public function toShortCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[1])) || (empty($m[1])))
+ {
+ return $m[0];
+ }
+ else
+ {
+ $ruleset = $this->getRuleset();
+ $unicode_replace = $ruleset->getUnicodeReplace();
+
+ $unicode = $m[1];
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ $unicode .= "\xEF\xB8\x8F";
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ $unicode = substr($m[1], 0, 4);
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ return $m[0];
+ }
+ }
+ }
+
+ return array_search($unicode, $unicode_replace);
+ }
+ }
+
+ /**
+ * @param array $m Results of preg_replace_callback().
+ * @return string Image HTML replacement result.
+ */
+ public function unicodeToImageCallback($m)
+ {
+ if ((!is_array($m)) || (!isset($m[1])) || (empty($m[1])))
+ {
+ return $m[0];
+ }
+ else
+ {
+ $ruleset = $this->getRuleset();
+ $shortcode_replace = $ruleset->getShortcodeReplace();
+ $unicode_replace = $ruleset->getUnicodeReplace();
+
+ $unicode = $m[1];
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ $unicode .= "\xEF\xB8\x8F";
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ $unicode = substr($m[1], 0, 4);
+
+ if (!in_array($unicode, $unicode_replace))
+ {
+ return $m[0];
+ }
+ }
+ }
+
+ $shortname = array_search($unicode, $unicode_replace);
+ $filename = $shortcode_replace[$shortname];
+
+ if ($this->unicodeAlt)
+ {
+ $alt = $unicode;
+ }
+ else
+ {
+ $alt = $shortname;
+ }
+
+ if ($this->imageType == 'png')
+ {
+ if ($this->sprites)
+ {
+ return ''.$alt.'';
+ }
+ else
+ {
+ return '
';
+ }
+ }
+
+ if ($this->sprites)
+ {
+ return '';
+ }
+ else
+ {
+ return '';
+ }
+ }
+ }
+
+ // ##########################################
+ // ######## helper methods
+ // ##########################################
+
+ /**
+ * Converts from unicode to hexadecimal NCR.
+ *
+ * @param string $unicode unicode character/s
+ * @return string hexadecimal NCR
+ * */
+ public function convert($unicode)
+ {
+ if (stristr($unicode,'-'))
+ {
+ $pairs = explode('-',$unicode);
+ return ''.implode(';',$pairs).';';
+ }
+ else
+ {
+ return ''.$unicode.';';
+ }
+ }
+
+ /**
+ * Get the Ruleset
+ *
+ * @return RulesetInterface The Ruleset
+ */
+ public function getRuleset()
+ {
+ if ( $this->ruleset === null )
+ {
+ $this->ruleset = new Ruleset;
+ }
+
+ return $this->ruleset;
+ }
+}
diff --git a/class/emoji/ClientInterface.php b/class/emoji/ClientInterface.php
new file mode 100644
index 0000000..b79b4ac
--- /dev/null
+++ b/class/emoji/ClientInterface.php
@@ -0,0 +1,70 @@
+ ;^)
+ * This is useful for systems that don't support unicode or images.
+ *
+ * @param string $string The input string.
+ * @return string String with ascii replacements.
+ */
+ public function shortnameToAscii($string);
+
+ /**
+ * This will output image markup (for png or svg) from shortname input.
+ *
+ * @param string $string The input string.
+ * @return string String with appropriate html for rendering emoji.
+ */
+ public function shortnameToImage($string);
+
+ /**
+ * This will return the shortname from unicode input.
+ *
+ * @param string $string The input string.
+ * @return string shortname
+ */
+ public function toShort($string);
+
+ /**
+ * This will output image markup (for png or svg) from unicode input.
+ *
+ * @param string $string The input string.
+ * @return string String with appropriate html for rendering emoji.
+ */
+ public function unicodeToImage($string);
+}
diff --git a/class/emoji/Emojione.php b/class/emoji/Emojione.php
new file mode 100644
index 0000000..d257a84
--- /dev/null
+++ b/class/emoji/Emojione.php
@@ -0,0 +1,116 @@
+]*>.*?<\/object>|]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>';
+ public static $unicodeRegexp = '([*#0-9](?>\\xEF\\xB8\\x8F)?\\xE2\\x83\\xA3|\\xC2[\\xA9\\xAE]|\\xE2..(\\xF0\\x9F\\x8F[\\xBB-\\xBF])?(?>\\xEF\\xB8\\x8F)?|\\xE3(?>\\x80[\\xB0\\xBD]|\\x8A[\\x97\\x99])(?>\\xEF\\xB8\\x8F)?|\\xF0\\x9F(?>[\\x80-\\x86].(?>\\xEF\\xB8\\x8F)?|\\x87.\\xF0\\x9F\\x87.|..((\\xE2\\x80\\x8D\\xF0\\x9F\\x97\\xA8)|(\\xF0\\x9F\\x8F[\\xBB-\\xBF])|(\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6-\\xA9]){2,3}|(\\xE2\\x80\\x8D\\xE2\\x9D\\xA4\\xEF\\xB8\\x8F\\xE2\\x80\\x8D\\xF0\\x9F..(\\xE2\\x80\\x8D\\xF0\\x9F\\x91[\\xA6-\\xA9])?))?))';
+ public static $shortcodeRegexp = ':([-+\\w]+):';
+
+ protected static $client = null;
+
+ /**
+ * Magic caller
+ *
+ * @throws \BadMethodCallException If the method doesn't exists in client
+ */
+ public static function __callStatic($method, $args)
+ {
+ $client = static::getClient();
+
+ // DEPRECATED
+ static::updateConfig($client);
+
+ if ( ! method_exists($client, $method) )
+ {
+ throw new \BadMethodCallException('The method "' . $method . '" does not exist.');
+ }
+
+ return call_user_func_array(array($client, $method), $args);
+
+ }
+
+ /**
+ * Get the Client
+ *
+ * @return ClientInterface The Client
+ */
+ public static function getClient()
+ {
+ if ( static::$client === null )
+ {
+ static::setClient(new Client);
+ }
+
+ return static::$client;
+ }
+
+ /**
+ * Set the Client
+ *
+ * @param ClientInterface $client The Client
+ * @return void
+ */
+ public static function setClient(ClientInterface $client)
+ {
+ // DEPRECATED
+ static::loadConfig($client);
+
+ static::$client = $client;
+ }
+
+ /**
+ * Load config from Client
+ *
+ * @deprecated
+ *
+ * @param ClientInterface $client The Client
+ * @return self
+ */
+ protected static function loadConfig(ClientInterface $client)
+ {
+ static::$ascii = $client->ascii;
+ static::$unicodeAlt = $client->unicodeAlt;
+ static::$imageType = $client->imageType;
+ static::$cacheBustParam = $client->cacheBustParam;
+ static::$sprites = $client->sprites;
+ static::$imagePathPNG = $client->imagePathPNG;
+ static::$imagePathSVG = $client->imagePathSVG;
+ static::$imagePathSVGSprites = $client->imagePathSVGSprites;
+ static::$ignoredRegexp = $client->ignoredRegexp;
+ static::$unicodeRegexp = $client->unicodeRegexp;
+ static::$shortcodeRegexp = $client->shortcodeRegexp;
+ }
+
+ /**
+ * Update config in Client
+ *
+ * @deprecated
+ *
+ * @param ClientInterface $client The Client
+ * @return self
+ */
+ protected static function updateConfig(ClientInterface $client)
+ {
+ $client->ascii = static::$ascii;
+ $client->unicodeAlt = static::$unicodeAlt;
+ $client->imageType = static::$imageType;
+ $client->cacheBustParam = static::$cacheBustParam;
+ $client->sprites = static::$sprites;
+ $client->imagePathPNG = static::$imagePathPNG;
+ $client->imagePathSVG = static::$imagePathSVG;
+ $client->imagePathSVGSprites = static::$imagePathSVGSprites;
+ $client->ignoredRegexp = static::$ignoredRegexp;
+ $client->unicodeRegexp = static::$unicodeRegexp;
+ $client->shortcodeRegexp = static::$shortcodeRegexp;
+ }
+}
diff --git a/class/emoji/Ruleset.php b/class/emoji/Ruleset.php
new file mode 100644
index 0000000..9846692
--- /dev/null
+++ b/class/emoji/Ruleset.php
@@ -0,0 +1,4934 @@
+ '0023-20e3',
+ ':zero:' => '0030-20e3',
+ ':one:' => '0031-20e3',
+ ':two:' => '0032-20e3',
+ ':three:' => '0033-20e3',
+ ':four:' => '0034-20e3',
+ ':five:' => '0035-20e3',
+ ':six:' => '0036-20e3',
+ ':seven:' => '0037-20e3',
+ ':eight:' => '0038-20e3',
+ ':nine:' => '0039-20e3',
+ ':copyright:' => '00a9',
+ ':registered:' => '00ae',
+ ':bangbang:' => '203c',
+ ':interrobang:' => '2049',
+ ':tm:' => '2122',
+ ':information_source:' => '2139',
+ ':left_right_arrow:' => '2194',
+ ':arrow_up_down:' => '2195',
+ ':arrow_upper_left:' => '2196',
+ ':third_place:' => '1f949',
+ ':third_place_medal:' => '1f949',
+ ':arrow_upper_right:' => '2197',
+ ':arrow_lower_right:' => '2198',
+ ':arrow_lower_left:' => '2199',
+ ':second_place:' => '1f948',
+ ':second_place_medal:' => '1f948',
+ ':leftwards_arrow_with_hook:' => '21a9',
+ ':arrow_right_hook:' => '21aa',
+ ':watch:' => '231a',
+ ':hourglass:' => '231b',
+ ':fast_forward:' => '23e9',
+ ':rewind:' => '23ea',
+ ':arrow_double_up:' => '23eb',
+ ':arrow_double_down:' => '23ec',
+ ':alarm_clock:' => '23f0',
+ ':hourglass_flowing_sand:' => '23f3',
+ ':m:' => '24c2',
+ ':black_small_square:' => '25aa',
+ ':white_small_square:' => '25ab',
+ ':arrow_forward:' => '25b6',
+ ':arrow_backward:' => '25c0',
+ ':white_medium_square:' => '25fb',
+ ':black_medium_square:' => '25fc',
+ ':white_medium_small_square:' => '25fd',
+ ':black_medium_small_square:' => '25fe',
+ ':sunny:' => '2600',
+ ':cloud:' => '2601',
+ ':telephone:' => '260e',
+ ':ballot_box_with_check:' => '2611',
+ ':umbrella:' => '2614',
+ ':coffee:' => '2615',
+ ':point_up:' => '261d',
+ ':relaxed:' => '263a',
+ ':aries:' => '2648',
+ ':first_place:' => '1f947',
+ ':first_place_medal:' => '1f947',
+ ':taurus:' => '2649',
+ ':fencer:' => '1f93a',
+ ':fencing:' => '1f93a',
+ ':gemini:' => '264a',
+ ':cancer:' => '264b',
+ ':goal:' => '1f945',
+ ':goal_net:' => '1f945',
+ ':leo:' => '264c',
+ ':virgo:' => '264d',
+ ':handball:' => '1f93e',
+ ':libra:' => '264e',
+ ':regional_indicator_z:' => '1f1ff',
+ ':water_polo:' => '1f93d',
+ ':scorpius:' => '264f',
+ ':sagittarius:' => '2650',
+ ':martial_arts_uniform:' => '1f94b',
+ ':karate_uniform:' => '1f94b',
+ ':capricorn:' => '2651',
+ ':boxing_glove:' => '1f94a',
+ ':boxing_gloves:' => '1f94a',
+ ':aquarius:' => '2652',
+ ':wrestlers:' => '1f93c',
+ ':wrestling:' => '1f93c',
+ ':pisces:' => '2653',
+ ':spades:' => '2660',
+ ':clubs:' => '2663',
+ ':hearts:' => '2665',
+ ':diamonds:' => '2666',
+ ':hotsprings:' => '2668',
+ ':recycle:' => '267b',
+ ':juggling:' => '1f939',
+ ':juggler:' => '1f939',
+ ':wheelchair:' => '267f',
+ ':anchor:' => '2693',
+ ':warning:' => '26a0',
+ ':zap:' => '26a1',
+ ':white_circle:' => '26aa',
+ ':black_circle:' => '26ab',
+ ':soccer:' => '26bd',
+ ':baseball:' => '26be',
+ ':snowman:' => '26c4',
+ ':partly_sunny:' => '26c5',
+ ':ophiuchus:' => '26ce',
+ ':cartwheel:' => '1f938',
+ ':person_doing_cartwheel:' => '1f938',
+ ':no_entry:' => '26d4',
+ ':church:' => '26ea',
+ ':fountain:' => '26f2',
+ ':canoe:' => '1f6f6',
+ ':kayak:' => '1f6f6',
+ ':golf:' => '26f3',
+ ':sailboat:' => '26f5',
+ ':tent:' => '26fa',
+ ':fuelpump:' => '26fd',
+ ':scissors:' => '2702',
+ ':white_check_mark:' => '2705',
+ ':airplane:' => '2708',
+ ':envelope:' => '2709',
+ ':fist:' => '270a',
+ ':raised_hand:' => '270b',
+ ':v:' => '270c',
+ ':pencil2:' => '270f',
+ ':black_nib:' => '2712',
+ ':heavy_check_mark:' => '2714',
+ ':heavy_multiplication_x:' => '2716',
+ ':sparkles:' => '2728',
+ ':eight_spoked_asterisk:' => '2733',
+ ':eight_pointed_black_star:' => '2734',
+ ':snowflake:' => '2744',
+ ':sparkle:' => '2747',
+ ':x:' => '274c',
+ ':negative_squared_cross_mark:' => '274e',
+ ':question:' => '2753',
+ ':grey_question:' => '2754',
+ ':motor_scooter:' => '1f6f5',
+ ':motorbike:' => '1f6f5',
+ ':grey_exclamation:' => '2755',
+ ':exclamation:' => '2757',
+ ':heart:' => '2764',
+ ':heavy_plus_sign:' => '2795',
+ ':heavy_minus_sign:' => '2796',
+ ':heavy_division_sign:' => '2797',
+ ':arrow_right:' => '27a1',
+ ':curly_loop:' => '27b0',
+ ':arrow_heading_up:' => '2934',
+ ':arrow_heading_down:' => '2935',
+ ':arrow_left:' => '2b05',
+ ':arrow_up:' => '2b06',
+ ':scooter:' => '1f6f4',
+ ':arrow_down:' => '2b07',
+ ':black_large_square:' => '2b1b',
+ ':white_large_square:' => '2b1c',
+ ':star:' => '2b50',
+ ':o:' => '2b55',
+ ':wavy_dash:' => '3030',
+ ':part_alternation_mark:' => '303d',
+ ':congratulations:' => '3297',
+ ':shopping_cart:' => '1f6d2',
+ ':shopping_trolley:' => '1f6d2',
+ ':secret:' => '3299',
+ ':mahjong:' => '1f004',
+ ':black_joker:' => '1f0cf',
+ ':a:' => '1f170',
+ ':b:' => '1f171',
+ ':o2:' => '1f17e',
+ ':parking:' => '1f17f',
+ ':octagonal_sign:' => '1f6d1',
+ ':stop_sign:' => '1f6d1',
+ ':ab:' => '1f18e',
+ ':cl:' => '1f191',
+ ':regional_indicator_y:' => '1f1fe',
+ ':cool:' => '1f192',
+ ':free:' => '1f193',
+ ':id:' => '1f194',
+ ':new:' => '1f195',
+ ':ng:' => '1f196',
+ ':ok:' => '1f197',
+ ':sos:' => '1f198',
+ ':spoon:' => '1f944',
+ ':up:' => '1f199',
+ ':vs:' => '1f19a',
+ ':flag_cn:' => '1f1e8-1f1f3',
+ ':cn:' => '1f1e8-1f1f3',
+ ':flag_de:' => '1f1e9-1f1ea',
+ ':de:' => '1f1e9-1f1ea',
+ ':flag_es:' => '1f1ea-1f1f8',
+ ':es:' => '1f1ea-1f1f8',
+ ':flag_fr:' => '1f1eb-1f1f7',
+ ':fr:' => '1f1eb-1f1f7',
+ ':flag_gb:' => '1f1ec-1f1e7',
+ ':gb:' => '1f1ec-1f1e7',
+ ':champagne_glass:' => '1f942',
+ ':clinking_glass:' => '1f942',
+ ':tumbler_glass:' => '1f943',
+ ':whisky:' => '1f943',
+ ':flag_it:' => '1f1ee-1f1f9',
+ ':it:' => '1f1ee-1f1f9',
+ ':flag_jp:' => '1f1ef-1f1f5',
+ ':jp:' => '1f1ef-1f1f5',
+ ':flag_kr:' => '1f1f0-1f1f7',
+ ':kr:' => '1f1f0-1f1f7',
+ ':flag_us:' => '1f1fa-1f1f8',
+ ':us:' => '1f1fa-1f1f8',
+ ':flag_ru:' => '1f1f7-1f1fa',
+ ':ru:' => '1f1f7-1f1fa',
+ ':koko:' => '1f201',
+ ':sa:' => '1f202',
+ ':u7121:' => '1f21a',
+ ':u6307:' => '1f22f',
+ ':stuffed_flatbread:' => '1f959',
+ ':stuffed_pita:' => '1f959',
+ ':u7981:' => '1f232',
+ ':u7a7a:' => '1f233',
+ ':u5408:' => '1f234',
+ ':u6e80:' => '1f235',
+ ':u6709:' => '1f236',
+ ':shallow_pan_of_food:' => '1f958',
+ ':paella:' => '1f958',
+ ':u6708:' => '1f237',
+ ':u7533:' => '1f238',
+ ':u5272:' => '1f239',
+ ':salad:' => '1f957',
+ ':green_salad:' => '1f957',
+ ':u55b6:' => '1f23a',
+ ':ideograph_advantage:' => '1f250',
+ ':accept:' => '1f251',
+ ':cyclone:' => '1f300',
+ ':french_bread:' => '1f956',
+ ':baguette_bread:' => '1f956',
+ ':foggy:' => '1f301',
+ ':closed_umbrella:' => '1f302',
+ ':night_with_stars:' => '1f303',
+ ':sunrise_over_mountains:' => '1f304',
+ ':sunrise:' => '1f305',
+ ':city_dusk:' => '1f306',
+ ':carrot:' => '1f955',
+ ':city_sunset:' => '1f307',
+ ':city_sunrise:' => '1f307',
+ ':rainbow:' => '1f308',
+ ':potato:' => '1f954',
+ ':bridge_at_night:' => '1f309',
+ ':ocean:' => '1f30a',
+ ':volcano:' => '1f30b',
+ ':milky_way:' => '1f30c',
+ ':earth_asia:' => '1f30f',
+ ':new_moon:' => '1f311',
+ ':bacon:' => '1f953',
+ ':first_quarter_moon:' => '1f313',
+ ':waxing_gibbous_moon:' => '1f314',
+ ':full_moon:' => '1f315',
+ ':crescent_moon:' => '1f319',
+ ':first_quarter_moon_with_face:' => '1f31b',
+ ':star2:' => '1f31f',
+ ':cucumber:' => '1f952',
+ ':stars:' => '1f320',
+ ':chestnut:' => '1f330',
+ ':avocado:' => '1f951',
+ ':seedling:' => '1f331',
+ ':palm_tree:' => '1f334',
+ ':cactus:' => '1f335',
+ ':tulip:' => '1f337',
+ ':cherry_blossom:' => '1f338',
+ ':rose:' => '1f339',
+ ':hibiscus:' => '1f33a',
+ ':sunflower:' => '1f33b',
+ ':blossom:' => '1f33c',
+ ':corn:' => '1f33d',
+ ':croissant:' => '1f950',
+ ':ear_of_rice:' => '1f33e',
+ ':herb:' => '1f33f',
+ ':four_leaf_clover:' => '1f340',
+ ':maple_leaf:' => '1f341',
+ ':fallen_leaf:' => '1f342',
+ ':leaves:' => '1f343',
+ ':mushroom:' => '1f344',
+ ':tomato:' => '1f345',
+ ':eggplant:' => '1f346',
+ ':grapes:' => '1f347',
+ ':melon:' => '1f348',
+ ':watermelon:' => '1f349',
+ ':tangerine:' => '1f34a',
+ ':wilted_rose:' => '1f940',
+ ':wilted_flower:' => '1f940',
+ ':banana:' => '1f34c',
+ ':pineapple:' => '1f34d',
+ ':apple:' => '1f34e',
+ ':green_apple:' => '1f34f',
+ ':peach:' => '1f351',
+ ':cherries:' => '1f352',
+ ':strawberry:' => '1f353',
+ ':rhino:' => '1f98f',
+ ':rhinoceros:' => '1f98f',
+ ':hamburger:' => '1f354',
+ ':pizza:' => '1f355',
+ ':meat_on_bone:' => '1f356',
+ ':lizard:' => '1f98e',
+ ':poultry_leg:' => '1f357',
+ ':rice_cracker:' => '1f358',
+ ':rice_ball:' => '1f359',
+ ':gorilla:' => '1f98d',
+ ':rice:' => '1f35a',
+ ':curry:' => '1f35b',
+ ':deer:' => '1f98c',
+ ':ramen:' => '1f35c',
+ ':spaghetti:' => '1f35d',
+ ':bread:' => '1f35e',
+ ':fries:' => '1f35f',
+ ':butterfly:' => '1f98b',
+ ':sweet_potato:' => '1f360',
+ ':dango:' => '1f361',
+ ':fox:' => '1f98a',
+ ':fox_face:' => '1f98a',
+ ':oden:' => '1f362',
+ ':sushi:' => '1f363',
+ ':owl:' => '1f989',
+ ':fried_shrimp:' => '1f364',
+ ':fish_cake:' => '1f365',
+ ':shark:' => '1f988',
+ ':icecream:' => '1f366',
+ ':bat:' => '1f987',
+ ':shaved_ice:' => '1f367',
+ ':regional_indicator_x:' => '1f1fd',
+ ':ice_cream:' => '1f368',
+ ':duck:' => '1f986',
+ ':doughnut:' => '1f369',
+ ':eagle:' => '1f985',
+ ':cookie:' => '1f36a',
+ ':black_heart:' => '1f5a4',
+ ':chocolate_bar:' => '1f36b',
+ ':candy:' => '1f36c',
+ ':lollipop:' => '1f36d',
+ ':custard:' => '1f36e',
+ ':pudding:' => '1f36e',
+ ':flan:' => '1f36e',
+ ':honey_pot:' => '1f36f',
+ ':fingers_crossed:' => '1f91e',
+ ':hand_with_index_and_middle_finger_crossed:' => '1f91e',
+ ':cake:' => '1f370',
+ ':bento:' => '1f371',
+ ':stew:' => '1f372',
+ ':handshake:' => '1f91d',
+ ':shaking_hands:' => '1f91d',
+ ':cooking:' => '1f373',
+ ':fork_and_knife:' => '1f374',
+ ':tea:' => '1f375',
+ ':sake:' => '1f376',
+ ':wine_glass:' => '1f377',
+ ':cocktail:' => '1f378',
+ ':tropical_drink:' => '1f379',
+ ':beer:' => '1f37a',
+ ':beers:' => '1f37b',
+ ':ribbon:' => '1f380',
+ ':gift:' => '1f381',
+ ':birthday:' => '1f382',
+ ':jack_o_lantern:' => '1f383',
+ ':left_facing_fist:' => '1f91b',
+ ':left_fist:' => '1f91b',
+ ':right_facing_fist:' => '1f91c',
+ ':right_fist:' => '1f91c',
+ ':christmas_tree:' => '1f384',
+ ':santa:' => '1f385',
+ ':fireworks:' => '1f386',
+ ':raised_back_of_hand:' => '1f91a',
+ ':back_of_hand:' => '1f91a',
+ ':sparkler:' => '1f387',
+ ':balloon:' => '1f388',
+ ':tada:' => '1f389',
+ ':confetti_ball:' => '1f38a',
+ ':tanabata_tree:' => '1f38b',
+ ':crossed_flags:' => '1f38c',
+ ':call_me:' => '1f919',
+ ':call_me_hand:' => '1f919',
+ ':bamboo:' => '1f38d',
+ ':man_dancing:' => '1f57a',
+ ':male_dancer:' => '1f57a',
+ ':dolls:' => '1f38e',
+ ':selfie:' => '1f933',
+ ':flags:' => '1f38f',
+ ':pregnant_woman:' => '1f930',
+ ':expecting_woman:' => '1f930',
+ ':wind_chime:' => '1f390',
+ ':face_palm:' => '1f926',
+ ':facepalm:' => '1f926',
+ ':shrug:' => '1f937',
+ ':rice_scene:' => '1f391',
+ ':school_satchel:' => '1f392',
+ ':mortar_board:' => '1f393',
+ ':carousel_horse:' => '1f3a0',
+ ':ferris_wheel:' => '1f3a1',
+ ':roller_coaster:' => '1f3a2',
+ ':fishing_pole_and_fish:' => '1f3a3',
+ ':microphone:' => '1f3a4',
+ ':movie_camera:' => '1f3a5',
+ ':cinema:' => '1f3a6',
+ ':headphones:' => '1f3a7',
+ ':mrs_claus:' => '1f936',
+ ':mother_christmas:' => '1f936',
+ ':art:' => '1f3a8',
+ ':man_in_tuxedo:' => '1f935',
+ ':tophat:' => '1f3a9',
+ ':circus_tent:' => '1f3aa',
+ ':prince:' => '1f934',
+ ':ticket:' => '1f3ab',
+ ':clapper:' => '1f3ac',
+ ':performing_arts:' => '1f3ad',
+ ':sneezing_face:' => '1f927',
+ ':sneeze:' => '1f927',
+ ':video_game:' => '1f3ae',
+ ':dart:' => '1f3af',
+ ':slot_machine:' => '1f3b0',
+ ':8ball:' => '1f3b1',
+ ':game_die:' => '1f3b2',
+ ':bowling:' => '1f3b3',
+ ':flower_playing_cards:' => '1f3b4',
+ ':lying_face:' => '1f925',
+ ':liar:' => '1f925',
+ ':musical_note:' => '1f3b5',
+ ':notes:' => '1f3b6',
+ ':saxophone:' => '1f3b7',
+ ':drooling_face:' => '1f924',
+ ':drool:' => '1f924',
+ ':guitar:' => '1f3b8',
+ ':musical_keyboard:' => '1f3b9',
+ ':trumpet:' => '1f3ba',
+ ':rofl:' => '1f923',
+ ':rolling_on_the_floor_laughing:' => '1f923',
+ ':violin:' => '1f3bb',
+ ':musical_score:' => '1f3bc',
+ ':running_shirt_with_sash:' => '1f3bd',
+ ':nauseated_face:' => '1f922',
+ ':sick:' => '1f922',
+ ':tennis:' => '1f3be',
+ ':ski:' => '1f3bf',
+ ':basketball:' => '1f3c0',
+ ':checkered_flag:' => '1f3c1',
+ ':clown:' => '1f921',
+ ':clown_face:' => '1f921',
+ ':snowboarder:' => '1f3c2',
+ ':runner:' => '1f3c3',
+ ':surfer:' => '1f3c4',
+ ':trophy:' => '1f3c6',
+ ':football:' => '1f3c8',
+ ':swimmer:' => '1f3ca',
+ ':house:' => '1f3e0',
+ ':house_with_garden:' => '1f3e1',
+ ':office:' => '1f3e2',
+ ':post_office:' => '1f3e3',
+ ':hospital:' => '1f3e5',
+ ':bank:' => '1f3e6',
+ ':atm:' => '1f3e7',
+ ':hotel:' => '1f3e8',
+ ':love_hotel:' => '1f3e9',
+ ':convenience_store:' => '1f3ea',
+ ':school:' => '1f3eb',
+ ':department_store:' => '1f3ec',
+ ':cowboy:' => '1f920',
+ ':face_with_cowboy_hat:' => '1f920',
+ ':factory:' => '1f3ed',
+ ':izakaya_lantern:' => '1f3ee',
+ ':japanese_castle:' => '1f3ef',
+ ':european_castle:' => '1f3f0',
+ ':snail:' => '1f40c',
+ ':snake:' => '1f40d',
+ ':racehorse:' => '1f40e',
+ ':sheep:' => '1f411',
+ ':monkey:' => '1f412',
+ ':chicken:' => '1f414',
+ ':boar:' => '1f417',
+ ':elephant:' => '1f418',
+ ':octopus:' => '1f419',
+ ':shell:' => '1f41a',
+ ':prince_tone1:' => '1f934-1f3fb',
+ ':bug:' => '1f41b',
+ ':ant:' => '1f41c',
+ ':bee:' => '1f41d',
+ ':beetle:' => '1f41e',
+ ':fish:' => '1f41f',
+ ':tropical_fish:' => '1f420',
+ ':blowfish:' => '1f421',
+ ':turtle:' => '1f422',
+ ':hatching_chick:' => '1f423',
+ ':baby_chick:' => '1f424',
+ ':hatched_chick:' => '1f425',
+ ':bird:' => '1f426',
+ ':penguin:' => '1f427',
+ ':koala:' => '1f428',
+ ':poodle:' => '1f429',
+ ':camel:' => '1f42b',
+ ':dolphin:' => '1f42c',
+ ':mouse:' => '1f42d',
+ ':cow:' => '1f42e',
+ ':tiger:' => '1f42f',
+ ':rabbit:' => '1f430',
+ ':cat:' => '1f431',
+ ':dragon_face:' => '1f432',
+ ':whale:' => '1f433',
+ ':horse:' => '1f434',
+ ':monkey_face:' => '1f435',
+ ':dog:' => '1f436',
+ ':pig:' => '1f437',
+ ':frog:' => '1f438',
+ ':hamster:' => '1f439',
+ ':wolf:' => '1f43a',
+ ':bear:' => '1f43b',
+ ':panda_face:' => '1f43c',
+ ':pig_nose:' => '1f43d',
+ ':feet:' => '1f43e',
+ ':paw_prints:' => '1f43e',
+ ':prince_tone2:' => '1f934-1f3fc',
+ ':eyes:' => '1f440',
+ ':ear:' => '1f442',
+ ':nose:' => '1f443',
+ ':lips:' => '1f444',
+ ':tongue:' => '1f445',
+ ':prince_tone3:' => '1f934-1f3fd',
+ ':point_up_2:' => '1f446',
+ ':point_down:' => '1f447',
+ ':point_left:' => '1f448',
+ ':point_right:' => '1f449',
+ ':punch:' => '1f44a',
+ ':wave:' => '1f44b',
+ ':ok_hand:' => '1f44c',
+ ':thumbsup:' => '1f44d',
+ ':+1:' => '1f44d',
+ ':thumbup:' => '1f44d',
+ ':thumbsdown:' => '1f44e',
+ ':-1:' => '1f44e',
+ ':thumbdown:' => '1f44e',
+ ':clap:' => '1f44f',
+ ':open_hands:' => '1f450',
+ ':crown:' => '1f451',
+ ':womans_hat:' => '1f452',
+ ':eyeglasses:' => '1f453',
+ ':necktie:' => '1f454',
+ ':shirt:' => '1f455',
+ ':prince_tone4:' => '1f934-1f3fe',
+ ':jeans:' => '1f456',
+ ':dress:' => '1f457',
+ ':kimono:' => '1f458',
+ ':prince_tone5:' => '1f934-1f3ff',
+ ':bikini:' => '1f459',
+ ':womans_clothes:' => '1f45a',
+ ':purse:' => '1f45b',
+ ':handbag:' => '1f45c',
+ ':pouch:' => '1f45d',
+ ':mans_shoe:' => '1f45e',
+ ':athletic_shoe:' => '1f45f',
+ ':high_heel:' => '1f460',
+ ':sandal:' => '1f461',
+ ':boot:' => '1f462',
+ ':footprints:' => '1f463',
+ ':bust_in_silhouette:' => '1f464',
+ ':mrs_claus_tone1:' => '1f936-1f3fb',
+ ':mother_christmas_tone1:' => '1f936-1f3fb',
+ ':boy:' => '1f466',
+ ':girl:' => '1f467',
+ ':man:' => '1f468',
+ ':woman:' => '1f469',
+ ':family:' => '1f46a',
+ ':couple:' => '1f46b',
+ ':cop:' => '1f46e',
+ ':dancers:' => '1f46f',
+ ':bride_with_veil:' => '1f470',
+ ':person_with_blond_hair:' => '1f471',
+ ':man_with_gua_pi_mao:' => '1f472',
+ ':man_with_turban:' => '1f473',
+ ':older_man:' => '1f474',
+ ':older_woman:' => '1f475',
+ ':grandma:' => '1f475',
+ ':baby:' => '1f476',
+ ':construction_worker:' => '1f477',
+ ':princess:' => '1f478',
+ ':japanese_ogre:' => '1f479',
+ ':mrs_claus_tone2:' => '1f936-1f3fc',
+ ':mother_christmas_tone2:' => '1f936-1f3fc',
+ ':japanese_goblin:' => '1f47a',
+ ':ghost:' => '1f47b',
+ ':angel:' => '1f47c',
+ ':alien:' => '1f47d',
+ ':space_invader:' => '1f47e',
+ ':mrs_claus_tone3:' => '1f936-1f3fd',
+ ':mother_christmas_tone3:' => '1f936-1f3fd',
+ ':imp:' => '1f47f',
+ ':skull:' => '1f480',
+ ':skeleton:' => '1f480',
+ ':card_index:' => '1f4c7',
+ ':information_desk_person:' => '1f481',
+ ':guardsman:' => '1f482',
+ ':dancer:' => '1f483',
+ ':lipstick:' => '1f484',
+ ':nail_care:' => '1f485',
+ ':ledger:' => '1f4d2',
+ ':massage:' => '1f486',
+ ':notebook:' => '1f4d3',
+ ':haircut:' => '1f487',
+ ':notebook_with_decorative_cover:' => '1f4d4',
+ ':barber:' => '1f488',
+ ':closed_book:' => '1f4d5',
+ ':syringe:' => '1f489',
+ ':book:' => '1f4d6',
+ ':pill:' => '1f48a',
+ ':green_book:' => '1f4d7',
+ ':kiss:' => '1f48b',
+ ':blue_book:' => '1f4d8',
+ ':love_letter:' => '1f48c',
+ ':orange_book:' => '1f4d9',
+ ':ring:' => '1f48d',
+ ':books:' => '1f4da',
+ ':gem:' => '1f48e',
+ ':mrs_claus_tone4:' => '1f936-1f3fe',
+ ':mother_christmas_tone4:' => '1f936-1f3fe',
+ ':name_badge:' => '1f4db',
+ ':couplekiss:' => '1f48f',
+ ':scroll:' => '1f4dc',
+ ':bouquet:' => '1f490',
+ ':pencil:' => '1f4dd',
+ ':mrs_claus_tone5:' => '1f936-1f3ff',
+ ':mother_christmas_tone5:' => '1f936-1f3ff',
+ ':couple_with_heart:' => '1f491',
+ ':telephone_receiver:' => '1f4de',
+ ':wedding:' => '1f492',
+ ':pager:' => '1f4df',
+ ':fax:' => '1f4e0',
+ ':heartbeat:' => '1f493',
+ ':satellite:' => '1f4e1',
+ ':loudspeaker:' => '1f4e2',
+ ':man_in_tuxedo_tone1:' => '1f935-1f3fb',
+ ':tuxedo_tone1:' => '1f935-1f3fb',
+ ':broken_heart:' => '1f494',
+ ':mega:' => '1f4e3',
+ ':outbox_tray:' => '1f4e4',
+ ':two_hearts:' => '1f495',
+ ':inbox_tray:' => '1f4e5',
+ ':package:' => '1f4e6',
+ ':man_in_tuxedo_tone2:' => '1f935-1f3fc',
+ ':tuxedo_tone2:' => '1f935-1f3fc',
+ ':sparkling_heart:' => '1f496',
+ ':e-mail:' => '1f4e7',
+ ':email:' => '1f4e7',
+ ':incoming_envelope:' => '1f4e8',
+ ':heartpulse:' => '1f497',
+ ':man_in_tuxedo_tone3:' => '1f935-1f3fd',
+ ':tuxedo_tone3:' => '1f935-1f3fd',
+ ':envelope_with_arrow:' => '1f4e9',
+ ':mailbox_closed:' => '1f4ea',
+ ':cupid:' => '1f498',
+ ':mailbox:' => '1f4eb',
+ ':man_in_tuxedo_tone4:' => '1f935-1f3fe',
+ ':tuxedo_tone4:' => '1f935-1f3fe',
+ ':postbox:' => '1f4ee',
+ ':blue_heart:' => '1f499',
+ ':newspaper:' => '1f4f0',
+ ':man_in_tuxedo_tone5:' => '1f935-1f3ff',
+ ':tuxedo_tone5:' => '1f935-1f3ff',
+ ':iphone:' => '1f4f1',
+ ':green_heart:' => '1f49a',
+ ':shrug_tone1:' => '1f937-1f3fb',
+ ':calling:' => '1f4f2',
+ ':vibration_mode:' => '1f4f3',
+ ':yellow_heart:' => '1f49b',
+ ':shrug_tone2:' => '1f937-1f3fc',
+ ':mobile_phone_off:' => '1f4f4',
+ ':signal_strength:' => '1f4f6',
+ ':shrug_tone3:' => '1f937-1f3fd',
+ ':purple_heart:' => '1f49c',
+ ':shrug_tone4:' => '1f937-1f3fe',
+ ':camera:' => '1f4f7',
+ ':video_camera:' => '1f4f9',
+ ':gift_heart:' => '1f49d',
+ ':tv:' => '1f4fa',
+ ':shrug_tone5:' => '1f937-1f3ff',
+ ':radio:' => '1f4fb',
+ ':revolving_hearts:' => '1f49e',
+ ':vhs:' => '1f4fc',
+ ':face_palm_tone1:' => '1f926-1f3fb',
+ ':facepalm_tone1:' => '1f926-1f3fb',
+ ':arrows_clockwise:' => '1f503',
+ ':heart_decoration:' => '1f49f',
+ ':loud_sound:' => '1f50a',
+ ':battery:' => '1f50b',
+ ':diamond_shape_with_a_dot_inside:' => '1f4a0',
+ ':electric_plug:' => '1f50c',
+ ':mag:' => '1f50d',
+ ':face_palm_tone2:' => '1f926-1f3fc',
+ ':facepalm_tone2:' => '1f926-1f3fc',
+ ':bulb:' => '1f4a1',
+ ':mag_right:' => '1f50e',
+ ':lock_with_ink_pen:' => '1f50f',
+ ':anger:' => '1f4a2',
+ ':closed_lock_with_key:' => '1f510',
+ ':key:' => '1f511',
+ ':bomb:' => '1f4a3',
+ ':lock:' => '1f512',
+ ':unlock:' => '1f513',
+ ':zzz:' => '1f4a4',
+ ':bell:' => '1f514',
+ ':bookmark:' => '1f516',
+ ':boom:' => '1f4a5',
+ ':face_palm_tone3:' => '1f926-1f3fd',
+ ':facepalm_tone3:' => '1f926-1f3fd',
+ ':link:' => '1f517',
+ ':radio_button:' => '1f518',
+ ':sweat_drops:' => '1f4a6',
+ ':back:' => '1f519',
+ ':end:' => '1f51a',
+ ':droplet:' => '1f4a7',
+ ':face_palm_tone4:' => '1f926-1f3fe',
+ ':facepalm_tone4:' => '1f926-1f3fe',
+ ':on:' => '1f51b',
+ ':soon:' => '1f51c',
+ ':dash:' => '1f4a8',
+ ':top:' => '1f51d',
+ ':underage:' => '1f51e',
+ ':poop:' => '1f4a9',
+ ':shit:' => '1f4a9',
+ ':hankey:' => '1f4a9',
+ ':poo:' => '1f4a9',
+ ':keycap_ten:' => '1f51f',
+ ':muscle:' => '1f4aa',
+ ':capital_abcd:' => '1f520',
+ ':abcd:' => '1f521',
+ ':dizzy:' => '1f4ab',
+ ':face_palm_tone5:' => '1f926-1f3ff',
+ ':facepalm_tone5:' => '1f926-1f3ff',
+ ':1234:' => '1f522',
+ ':symbols:' => '1f523',
+ ':speech_balloon:' => '1f4ac',
+ ':abc:' => '1f524',
+ ':fire:' => '1f525',
+ ':flame:' => '1f525',
+ ':white_flower:' => '1f4ae',
+ ':flashlight:' => '1f526',
+ ':wrench:' => '1f527',
+ ':100:' => '1f4af',
+ ':hammer:' => '1f528',
+ ':nut_and_bolt:' => '1f529',
+ ':moneybag:' => '1f4b0',
+ ':knife:' => '1f52a',
+ ':gun:' => '1f52b',
+ ':currency_exchange:' => '1f4b1',
+ ':pregnant_woman_tone1:' => '1f930-1f3fb',
+ ':expecting_woman_tone1:' => '1f930-1f3fb',
+ ':crystal_ball:' => '1f52e',
+ ':heavy_dollar_sign:' => '1f4b2',
+ ':six_pointed_star:' => '1f52f',
+ ':credit_card:' => '1f4b3',
+ ':beginner:' => '1f530',
+ ':trident:' => '1f531',
+ ':yen:' => '1f4b4',
+ ':pregnant_woman_tone2:' => '1f930-1f3fc',
+ ':expecting_woman_tone2:' => '1f930-1f3fc',
+ ':black_square_button:' => '1f532',
+ ':white_square_button:' => '1f533',
+ ':dollar:' => '1f4b5',
+ ':red_circle:' => '1f534',
+ ':large_blue_circle:' => '1f535',
+ ':money_with_wings:' => '1f4b8',
+ ':large_orange_diamond:' => '1f536',
+ ':large_blue_diamond:' => '1f537',
+ ':chart:' => '1f4b9',
+ ':pregnant_woman_tone3:' => '1f930-1f3fd',
+ ':expecting_woman_tone3:' => '1f930-1f3fd',
+ ':small_orange_diamond:' => '1f538',
+ ':small_blue_diamond:' => '1f539',
+ ':seat:' => '1f4ba',
+ ':small_red_triangle:' => '1f53a',
+ ':small_red_triangle_down:' => '1f53b',
+ ':computer:' => '1f4bb',
+ ':arrow_up_small:' => '1f53c',
+ ':briefcase:' => '1f4bc',
+ ':arrow_down_small:' => '1f53d',
+ ':clock1:' => '1f550',
+ ':minidisc:' => '1f4bd',
+ ':clock2:' => '1f551',
+ ':floppy_disk:' => '1f4be',
+ ':pregnant_woman_tone4:' => '1f930-1f3fe',
+ ':expecting_woman_tone4:' => '1f930-1f3fe',
+ ':clock3:' => '1f552',
+ ':cd:' => '1f4bf',
+ ':clock4:' => '1f553',
+ ':dvd:' => '1f4c0',
+ ':clock5:' => '1f554',
+ ':clock6:' => '1f555',
+ ':file_folder:' => '1f4c1',
+ ':clock7:' => '1f556',
+ ':clock8:' => '1f557',
+ ':open_file_folder:' => '1f4c2',
+ ':clock9:' => '1f558',
+ ':clock10:' => '1f559',
+ ':page_with_curl:' => '1f4c3',
+ ':clock11:' => '1f55a',
+ ':clock12:' => '1f55b',
+ ':page_facing_up:' => '1f4c4',
+ ':mount_fuji:' => '1f5fb',
+ ':tokyo_tower:' => '1f5fc',
+ ':date:' => '1f4c5',
+ ':statue_of_liberty:' => '1f5fd',
+ ':japan:' => '1f5fe',
+ ':calendar:' => '1f4c6',
+ ':moyai:' => '1f5ff',
+ ':grin:' => '1f601',
+ ':joy:' => '1f602',
+ ':smiley:' => '1f603',
+ ':chart_with_upwards_trend:' => '1f4c8',
+ ':smile:' => '1f604',
+ ':sweat_smile:' => '1f605',
+ ':chart_with_downwards_trend:' => '1f4c9',
+ ':laughing:' => '1f606',
+ ':satisfied:' => '1f606',
+ ':wink:' => '1f609',
+ ':bar_chart:' => '1f4ca',
+ ':blush:' => '1f60a',
+ ':yum:' => '1f60b',
+ ':clipboard:' => '1f4cb',
+ ':relieved:' => '1f60c',
+ ':heart_eyes:' => '1f60d',
+ ':pushpin:' => '1f4cc',
+ ':smirk:' => '1f60f',
+ ':unamused:' => '1f612',
+ ':round_pushpin:' => '1f4cd',
+ ':sweat:' => '1f613',
+ ':pensive:' => '1f614',
+ ':paperclip:' => '1f4ce',
+ ':confounded:' => '1f616',
+ ':kissing_heart:' => '1f618',
+ ':pregnant_woman_tone5:' => '1f930-1f3ff',
+ ':expecting_woman_tone5:' => '1f930-1f3ff',
+ ':straight_ruler:' => '1f4cf',
+ ':kissing_closed_eyes:' => '1f61a',
+ ':stuck_out_tongue_winking_eye:' => '1f61c',
+ ':triangular_ruler:' => '1f4d0',
+ ':stuck_out_tongue_closed_eyes:' => '1f61d',
+ ':disappointed:' => '1f61e',
+ ':bookmark_tabs:' => '1f4d1',
+ ':angry:' => '1f620',
+ ':rage:' => '1f621',
+ ':cry:' => '1f622',
+ ':persevere:' => '1f623',
+ ':triumph:' => '1f624',
+ ':disappointed_relieved:' => '1f625',
+ ':fearful:' => '1f628',
+ ':weary:' => '1f629',
+ ':sleepy:' => '1f62a',
+ ':tired_face:' => '1f62b',
+ ':sob:' => '1f62d',
+ ':cold_sweat:' => '1f630',
+ ':scream:' => '1f631',
+ ':astonished:' => '1f632',
+ ':flushed:' => '1f633',
+ ':dizzy_face:' => '1f635',
+ ':mask:' => '1f637',
+ ':smile_cat:' => '1f638',
+ ':joy_cat:' => '1f639',
+ ':smiley_cat:' => '1f63a',
+ ':heart_eyes_cat:' => '1f63b',
+ ':smirk_cat:' => '1f63c',
+ ':kissing_cat:' => '1f63d',
+ ':pouting_cat:' => '1f63e',
+ ':crying_cat_face:' => '1f63f',
+ ':scream_cat:' => '1f640',
+ ':no_good:' => '1f645',
+ ':ok_woman:' => '1f646',
+ ':bow:' => '1f647',
+ ':see_no_evil:' => '1f648',
+ ':man_dancing_tone1:' => '1f57a-1f3fb',
+ ':male_dancer_tone1:' => '1f57a-1f3fb',
+ ':hear_no_evil:' => '1f649',
+ ':speak_no_evil:' => '1f64a',
+ ':man_dancing_tone2:' => '1f57a-1f3fc',
+ ':male_dancer_tone2:' => '1f57a-1f3fc',
+ ':raising_hand:' => '1f64b',
+ ':raised_hands:' => '1f64c',
+ ':person_frowning:' => '1f64d',
+ ':person_with_pouting_face:' => '1f64e',
+ ':pray:' => '1f64f',
+ ':rocket:' => '1f680',
+ ':railway_car:' => '1f683',
+ ':bullettrain_side:' => '1f684',
+ ':bullettrain_front:' => '1f685',
+ ':metro:' => '1f687',
+ ':station:' => '1f689',
+ ':bus:' => '1f68c',
+ ':busstop:' => '1f68f',
+ ':ambulance:' => '1f691',
+ ':fire_engine:' => '1f692',
+ ':police_car:' => '1f693',
+ ':taxi:' => '1f695',
+ ':red_car:' => '1f697',
+ ':blue_car:' => '1f699',
+ ':truck:' => '1f69a',
+ ':ship:' => '1f6a2',
+ ':speedboat:' => '1f6a4',
+ ':traffic_light:' => '1f6a5',
+ ':construction:' => '1f6a7',
+ ':rotating_light:' => '1f6a8',
+ ':triangular_flag_on_post:' => '1f6a9',
+ ':door:' => '1f6aa',
+ ':man_dancing_tone3:' => '1f57a-1f3fd',
+ ':male_dancer_tone3:' => '1f57a-1f3fd',
+ ':no_entry_sign:' => '1f6ab',
+ ':smoking:' => '1f6ac',
+ ':no_smoking:' => '1f6ad',
+ ':bike:' => '1f6b2',
+ ':walking:' => '1f6b6',
+ ':mens:' => '1f6b9',
+ ':womens:' => '1f6ba',
+ ':man_dancing_tone4:' => '1f57a-1f3fe',
+ ':male_dancer_tone4:' => '1f57a-1f3fe',
+ ':restroom:' => '1f6bb',
+ ':baby_symbol:' => '1f6bc',
+ ':man_dancing_tone5:' => '1f57a-1f3ff',
+ ':male_dancer_tone5:' => '1f57a-1f3ff',
+ ':toilet:' => '1f6bd',
+ ':wc:' => '1f6be',
+ ':selfie_tone1:' => '1f933-1f3fb',
+ ':bath:' => '1f6c0',
+ ':metal:' => '1f918',
+ ':sign_of_the_horns:' => '1f918',
+ ':grinning:' => '1f600',
+ ':innocent:' => '1f607',
+ ':smiling_imp:' => '1f608',
+ ':sunglasses:' => '1f60e',
+ ':neutral_face:' => '1f610',
+ ':expressionless:' => '1f611',
+ ':confused:' => '1f615',
+ ':kissing:' => '1f617',
+ ':selfie_tone2:' => '1f933-1f3fc',
+ ':kissing_smiling_eyes:' => '1f619',
+ ':stuck_out_tongue:' => '1f61b',
+ ':worried:' => '1f61f',
+ ':frowning:' => '1f626',
+ ':anguished:' => '1f627',
+ ':grimacing:' => '1f62c',
+ ':open_mouth:' => '1f62e',
+ ':hushed:' => '1f62f',
+ ':sleeping:' => '1f634',
+ ':no_mouth:' => '1f636',
+ ':helicopter:' => '1f681',
+ ':steam_locomotive:' => '1f682',
+ ':train2:' => '1f686',
+ ':light_rail:' => '1f688',
+ ':tram:' => '1f68a',
+ ':oncoming_bus:' => '1f68d',
+ ':trolleybus:' => '1f68e',
+ ':minibus:' => '1f690',
+ ':oncoming_police_car:' => '1f694',
+ ':oncoming_taxi:' => '1f696',
+ ':oncoming_automobile:' => '1f698',
+ ':articulated_lorry:' => '1f69b',
+ ':selfie_tone3:' => '1f933-1f3fd',
+ ':tractor:' => '1f69c',
+ ':monorail:' => '1f69d',
+ ':mountain_railway:' => '1f69e',
+ ':suspension_railway:' => '1f69f',
+ ':mountain_cableway:' => '1f6a0',
+ ':aerial_tramway:' => '1f6a1',
+ ':rowboat:' => '1f6a3',
+ ':vertical_traffic_light:' => '1f6a6',
+ ':selfie_tone4:' => '1f933-1f3fe',
+ ':put_litter_in_its_place:' => '1f6ae',
+ ':do_not_litter:' => '1f6af',
+ ':selfie_tone5:' => '1f933-1f3ff',
+ ':potable_water:' => '1f6b0',
+ ':non-potable_water:' => '1f6b1',
+ ':no_bicycles:' => '1f6b3',
+ ':fingers_crossed_tone1:' => '1f91e-1f3fb',
+ ':hand_with_index_and_middle_fingers_crossed_tone1:' => '1f91e-1f3fb',
+ ':bicyclist:' => '1f6b4',
+ ':mountain_bicyclist:' => '1f6b5',
+ ':no_pedestrians:' => '1f6b7',
+ ':children_crossing:' => '1f6b8',
+ ':shower:' => '1f6bf',
+ ':bathtub:' => '1f6c1',
+ ':passport_control:' => '1f6c2',
+ ':fingers_crossed_tone2:' => '1f91e-1f3fc',
+ ':hand_with_index_and_middle_fingers_crossed_tone2:' => '1f91e-1f3fc',
+ ':customs:' => '1f6c3',
+ ':baggage_claim:' => '1f6c4',
+ ':fingers_crossed_tone3:' => '1f91e-1f3fd',
+ ':hand_with_index_and_middle_fingers_crossed_tone3:' => '1f91e-1f3fd',
+ ':left_luggage:' => '1f6c5',
+ ':earth_africa:' => '1f30d',
+ ':earth_americas:' => '1f30e',
+ ':globe_with_meridians:' => '1f310',
+ ':waxing_crescent_moon:' => '1f312',
+ ':waning_gibbous_moon:' => '1f316',
+ ':last_quarter_moon:' => '1f317',
+ ':waning_crescent_moon:' => '1f318',
+ ':new_moon_with_face:' => '1f31a',
+ ':last_quarter_moon_with_face:' => '1f31c',
+ ':full_moon_with_face:' => '1f31d',
+ ':sun_with_face:' => '1f31e',
+ ':evergreen_tree:' => '1f332',
+ ':deciduous_tree:' => '1f333',
+ ':lemon:' => '1f34b',
+ ':fingers_crossed_tone4:' => '1f91e-1f3fe',
+ ':hand_with_index_and_middle_fingers_crossed_tone4:' => '1f91e-1f3fe',
+ ':pear:' => '1f350',
+ ':baby_bottle:' => '1f37c',
+ ':horse_racing:' => '1f3c7',
+ ':rugby_football:' => '1f3c9',
+ ':european_post_office:' => '1f3e4',
+ ':rat:' => '1f400',
+ ':mouse2:' => '1f401',
+ ':ox:' => '1f402',
+ ':water_buffalo:' => '1f403',
+ ':cow2:' => '1f404',
+ ':tiger2:' => '1f405',
+ ':leopard:' => '1f406',
+ ':rabbit2:' => '1f407',
+ ':cat2:' => '1f408',
+ ':dragon:' => '1f409',
+ ':crocodile:' => '1f40a',
+ ':whale2:' => '1f40b',
+ ':ram:' => '1f40f',
+ ':goat:' => '1f410',
+ ':rooster:' => '1f413',
+ ':dog2:' => '1f415',
+ ':pig2:' => '1f416',
+ ':fingers_crossed_tone5:' => '1f91e-1f3ff',
+ ':hand_with_index_and_middle_fingers_crossed_tone5:' => '1f91e-1f3ff',
+ ':dromedary_camel:' => '1f42a',
+ ':busts_in_silhouette:' => '1f465',
+ ':two_men_holding_hands:' => '1f46c',
+ ':two_women_holding_hands:' => '1f46d',
+ ':thought_balloon:' => '1f4ad',
+ ':euro:' => '1f4b6',
+ ':call_me_tone1:' => '1f919-1f3fb',
+ ':call_me_hand_tone1:' => '1f919-1f3fb',
+ ':pound:' => '1f4b7',
+ ':mailbox_with_mail:' => '1f4ec',
+ ':mailbox_with_no_mail:' => '1f4ed',
+ ':call_me_tone2:' => '1f919-1f3fc',
+ ':call_me_hand_tone2:' => '1f919-1f3fc',
+ ':postal_horn:' => '1f4ef',
+ ':no_mobile_phones:' => '1f4f5',
+ ':twisted_rightwards_arrows:' => '1f500',
+ ':repeat:' => '1f501',
+ ':repeat_one:' => '1f502',
+ ':arrows_counterclockwise:' => '1f504',
+ ':call_me_tone3:' => '1f919-1f3fd',
+ ':call_me_hand_tone3:' => '1f919-1f3fd',
+ ':low_brightness:' => '1f505',
+ ':high_brightness:' => '1f506',
+ ':mute:' => '1f507',
+ ':sound:' => '1f509',
+ ':no_bell:' => '1f515',
+ ':microscope:' => '1f52c',
+ ':telescope:' => '1f52d',
+ ':clock130:' => '1f55c',
+ ':clock230:' => '1f55d',
+ ':clock330:' => '1f55e',
+ ':clock430:' => '1f55f',
+ ':clock530:' => '1f560',
+ ':clock630:' => '1f561',
+ ':clock730:' => '1f562',
+ ':clock830:' => '1f563',
+ ':clock930:' => '1f564',
+ ':clock1030:' => '1f565',
+ ':clock1130:' => '1f566',
+ ':clock1230:' => '1f567',
+ ':speaker:' => '1f508',
+ ':train:' => '1f68b',
+ ':loop:' => '27bf',
+ ':flag_af:' => '1f1e6-1f1eb',
+ ':af:' => '1f1e6-1f1eb',
+ ':flag_al:' => '1f1e6-1f1f1',
+ ':al:' => '1f1e6-1f1f1',
+ ':flag_dz:' => '1f1e9-1f1ff',
+ ':dz:' => '1f1e9-1f1ff',
+ ':flag_ad:' => '1f1e6-1f1e9',
+ ':ad:' => '1f1e6-1f1e9',
+ ':flag_ao:' => '1f1e6-1f1f4',
+ ':ao:' => '1f1e6-1f1f4',
+ ':flag_ag:' => '1f1e6-1f1ec',
+ ':ag:' => '1f1e6-1f1ec',
+ ':flag_ar:' => '1f1e6-1f1f7',
+ ':ar:' => '1f1e6-1f1f7',
+ ':flag_am:' => '1f1e6-1f1f2',
+ ':am:' => '1f1e6-1f1f2',
+ ':flag_au:' => '1f1e6-1f1fa',
+ ':au:' => '1f1e6-1f1fa',
+ ':flag_at:' => '1f1e6-1f1f9',
+ ':at:' => '1f1e6-1f1f9',
+ ':flag_az:' => '1f1e6-1f1ff',
+ ':az:' => '1f1e6-1f1ff',
+ ':flag_bs:' => '1f1e7-1f1f8',
+ ':bs:' => '1f1e7-1f1f8',
+ ':flag_bh:' => '1f1e7-1f1ed',
+ ':bh:' => '1f1e7-1f1ed',
+ ':flag_bd:' => '1f1e7-1f1e9',
+ ':bd:' => '1f1e7-1f1e9',
+ ':flag_bb:' => '1f1e7-1f1e7',
+ ':bb:' => '1f1e7-1f1e7',
+ ':flag_by:' => '1f1e7-1f1fe',
+ ':by:' => '1f1e7-1f1fe',
+ ':flag_be:' => '1f1e7-1f1ea',
+ ':be:' => '1f1e7-1f1ea',
+ ':flag_bz:' => '1f1e7-1f1ff',
+ ':bz:' => '1f1e7-1f1ff',
+ ':flag_bj:' => '1f1e7-1f1ef',
+ ':bj:' => '1f1e7-1f1ef',
+ ':flag_bt:' => '1f1e7-1f1f9',
+ ':bt:' => '1f1e7-1f1f9',
+ ':flag_bo:' => '1f1e7-1f1f4',
+ ':bo:' => '1f1e7-1f1f4',
+ ':flag_ba:' => '1f1e7-1f1e6',
+ ':ba:' => '1f1e7-1f1e6',
+ ':flag_bw:' => '1f1e7-1f1fc',
+ ':bw:' => '1f1e7-1f1fc',
+ ':flag_br:' => '1f1e7-1f1f7',
+ ':br:' => '1f1e7-1f1f7',
+ ':flag_bn:' => '1f1e7-1f1f3',
+ ':bn:' => '1f1e7-1f1f3',
+ ':flag_bg:' => '1f1e7-1f1ec',
+ ':bg:' => '1f1e7-1f1ec',
+ ':flag_bf:' => '1f1e7-1f1eb',
+ ':bf:' => '1f1e7-1f1eb',
+ ':flag_bi:' => '1f1e7-1f1ee',
+ ':bi:' => '1f1e7-1f1ee',
+ ':flag_kh:' => '1f1f0-1f1ed',
+ ':kh:' => '1f1f0-1f1ed',
+ ':flag_cm:' => '1f1e8-1f1f2',
+ ':cm:' => '1f1e8-1f1f2',
+ ':flag_ca:' => '1f1e8-1f1e6',
+ ':ca:' => '1f1e8-1f1e6',
+ ':flag_cv:' => '1f1e8-1f1fb',
+ ':cv:' => '1f1e8-1f1fb',
+ ':call_me_tone4:' => '1f919-1f3fe',
+ ':call_me_hand_tone4:' => '1f919-1f3fe',
+ ':flag_cf:' => '1f1e8-1f1eb',
+ ':cf:' => '1f1e8-1f1eb',
+ ':flag_td:' => '1f1f9-1f1e9',
+ ':td:' => '1f1f9-1f1e9',
+ ':flag_cl:' => '1f1e8-1f1f1',
+ ':chile:' => '1f1e8-1f1f1',
+ ':flag_co:' => '1f1e8-1f1f4',
+ ':co:' => '1f1e8-1f1f4',
+ ':flag_km:' => '1f1f0-1f1f2',
+ ':km:' => '1f1f0-1f1f2',
+ ':flag_cr:' => '1f1e8-1f1f7',
+ ':cr:' => '1f1e8-1f1f7',
+ ':flag_ci:' => '1f1e8-1f1ee',
+ ':ci:' => '1f1e8-1f1ee',
+ ':flag_hr:' => '1f1ed-1f1f7',
+ ':hr:' => '1f1ed-1f1f7',
+ ':flag_cu:' => '1f1e8-1f1fa',
+ ':cu:' => '1f1e8-1f1fa',
+ ':flag_cy:' => '1f1e8-1f1fe',
+ ':cy:' => '1f1e8-1f1fe',
+ ':flag_cz:' => '1f1e8-1f1ff',
+ ':cz:' => '1f1e8-1f1ff',
+ ':call_me_tone5:' => '1f919-1f3ff',
+ ':call_me_hand_tone5:' => '1f919-1f3ff',
+ ':flag_cd:' => '1f1e8-1f1e9',
+ ':congo:' => '1f1e8-1f1e9',
+ ':left_facing_fist_tone1:' => '1f91b-1f3fb',
+ ':left_fist_tone1:' => '1f91b-1f3fb',
+ ':flag_dk:' => '1f1e9-1f1f0',
+ ':dk:' => '1f1e9-1f1f0',
+ ':flag_dj:' => '1f1e9-1f1ef',
+ ':dj:' => '1f1e9-1f1ef',
+ ':flag_dm:' => '1f1e9-1f1f2',
+ ':dm:' => '1f1e9-1f1f2',
+ ':flag_do:' => '1f1e9-1f1f4',
+ ':do:' => '1f1e9-1f1f4',
+ ':flag_tl:' => '1f1f9-1f1f1',
+ ':tl:' => '1f1f9-1f1f1',
+ ':flag_ec:' => '1f1ea-1f1e8',
+ ':ec:' => '1f1ea-1f1e8',
+ ':flag_eg:' => '1f1ea-1f1ec',
+ ':eg:' => '1f1ea-1f1ec',
+ ':flag_sv:' => '1f1f8-1f1fb',
+ ':sv:' => '1f1f8-1f1fb',
+ ':flag_gq:' => '1f1ec-1f1f6',
+ ':gq:' => '1f1ec-1f1f6',
+ ':flag_er:' => '1f1ea-1f1f7',
+ ':er:' => '1f1ea-1f1f7',
+ ':flag_ee:' => '1f1ea-1f1ea',
+ ':ee:' => '1f1ea-1f1ea',
+ ':flag_et:' => '1f1ea-1f1f9',
+ ':et:' => '1f1ea-1f1f9',
+ ':left_facing_fist_tone2:' => '1f91b-1f3fc',
+ ':left_fist_tone2:' => '1f91b-1f3fc',
+ ':flag_fj:' => '1f1eb-1f1ef',
+ ':fj:' => '1f1eb-1f1ef',
+ ':flag_fi:' => '1f1eb-1f1ee',
+ ':fi:' => '1f1eb-1f1ee',
+ ':flag_ga:' => '1f1ec-1f1e6',
+ ':ga:' => '1f1ec-1f1e6',
+ ':flag_gm:' => '1f1ec-1f1f2',
+ ':gm:' => '1f1ec-1f1f2',
+ ':flag_ge:' => '1f1ec-1f1ea',
+ ':ge:' => '1f1ec-1f1ea',
+ ':flag_gh:' => '1f1ec-1f1ed',
+ ':gh:' => '1f1ec-1f1ed',
+ ':flag_gr:' => '1f1ec-1f1f7',
+ ':gr:' => '1f1ec-1f1f7',
+ ':flag_gd:' => '1f1ec-1f1e9',
+ ':gd:' => '1f1ec-1f1e9',
+ ':flag_gt:' => '1f1ec-1f1f9',
+ ':gt:' => '1f1ec-1f1f9',
+ ':flag_gn:' => '1f1ec-1f1f3',
+ ':gn:' => '1f1ec-1f1f3',
+ ':flag_gw:' => '1f1ec-1f1fc',
+ ':gw:' => '1f1ec-1f1fc',
+ ':flag_gy:' => '1f1ec-1f1fe',
+ ':gy:' => '1f1ec-1f1fe',
+ ':flag_ht:' => '1f1ed-1f1f9',
+ ':ht:' => '1f1ed-1f1f9',
+ ':flag_hn:' => '1f1ed-1f1f3',
+ ':hn:' => '1f1ed-1f1f3',
+ ':flag_hu:' => '1f1ed-1f1fa',
+ ':hu:' => '1f1ed-1f1fa',
+ ':flag_is:' => '1f1ee-1f1f8',
+ ':is:' => '1f1ee-1f1f8',
+ ':flag_in:' => '1f1ee-1f1f3',
+ ':in:' => '1f1ee-1f1f3',
+ ':flag_id:' => '1f1ee-1f1e9',
+ ':indonesia:' => '1f1ee-1f1e9',
+ ':flag_ir:' => '1f1ee-1f1f7',
+ ':ir:' => '1f1ee-1f1f7',
+ ':flag_iq:' => '1f1ee-1f1f6',
+ ':iq:' => '1f1ee-1f1f6',
+ ':flag_ie:' => '1f1ee-1f1ea',
+ ':ie:' => '1f1ee-1f1ea',
+ ':flag_il:' => '1f1ee-1f1f1',
+ ':il:' => '1f1ee-1f1f1',
+ ':flag_jm:' => '1f1ef-1f1f2',
+ ':jm:' => '1f1ef-1f1f2',
+ ':flag_jo:' => '1f1ef-1f1f4',
+ ':jo:' => '1f1ef-1f1f4',
+ ':flag_kz:' => '1f1f0-1f1ff',
+ ':kz:' => '1f1f0-1f1ff',
+ ':flag_ke:' => '1f1f0-1f1ea',
+ ':ke:' => '1f1f0-1f1ea',
+ ':flag_ki:' => '1f1f0-1f1ee',
+ ':ki:' => '1f1f0-1f1ee',
+ ':flag_xk:' => '1f1fd-1f1f0',
+ ':xk:' => '1f1fd-1f1f0',
+ ':flag_kw:' => '1f1f0-1f1fc',
+ ':kw:' => '1f1f0-1f1fc',
+ ':flag_kg:' => '1f1f0-1f1ec',
+ ':kg:' => '1f1f0-1f1ec',
+ ':left_facing_fist_tone3:' => '1f91b-1f3fd',
+ ':left_fist_tone3:' => '1f91b-1f3fd',
+ ':flag_la:' => '1f1f1-1f1e6',
+ ':la:' => '1f1f1-1f1e6',
+ ':flag_lv:' => '1f1f1-1f1fb',
+ ':lv:' => '1f1f1-1f1fb',
+ ':flag_lb:' => '1f1f1-1f1e7',
+ ':lb:' => '1f1f1-1f1e7',
+ ':flag_ls:' => '1f1f1-1f1f8',
+ ':ls:' => '1f1f1-1f1f8',
+ ':flag_lr:' => '1f1f1-1f1f7',
+ ':lr:' => '1f1f1-1f1f7',
+ ':flag_ly:' => '1f1f1-1f1fe',
+ ':ly:' => '1f1f1-1f1fe',
+ ':flag_li:' => '1f1f1-1f1ee',
+ ':li:' => '1f1f1-1f1ee',
+ ':flag_lt:' => '1f1f1-1f1f9',
+ ':lt:' => '1f1f1-1f1f9',
+ ':flag_lu:' => '1f1f1-1f1fa',
+ ':lu:' => '1f1f1-1f1fa',
+ ':flag_mk:' => '1f1f2-1f1f0',
+ ':mk:' => '1f1f2-1f1f0',
+ ':flag_mg:' => '1f1f2-1f1ec',
+ ':mg:' => '1f1f2-1f1ec',
+ ':flag_mw:' => '1f1f2-1f1fc',
+ ':mw:' => '1f1f2-1f1fc',
+ ':flag_my:' => '1f1f2-1f1fe',
+ ':my:' => '1f1f2-1f1fe',
+ ':flag_mv:' => '1f1f2-1f1fb',
+ ':mv:' => '1f1f2-1f1fb',
+ ':flag_ml:' => '1f1f2-1f1f1',
+ ':ml:' => '1f1f2-1f1f1',
+ ':flag_mt:' => '1f1f2-1f1f9',
+ ':mt:' => '1f1f2-1f1f9',
+ ':flag_mh:' => '1f1f2-1f1ed',
+ ':mh:' => '1f1f2-1f1ed',
+ ':flag_mr:' => '1f1f2-1f1f7',
+ ':mr:' => '1f1f2-1f1f7',
+ ':flag_mu:' => '1f1f2-1f1fa',
+ ':mu:' => '1f1f2-1f1fa',
+ ':flag_mx:' => '1f1f2-1f1fd',
+ ':mx:' => '1f1f2-1f1fd',
+ ':flag_fm:' => '1f1eb-1f1f2',
+ ':fm:' => '1f1eb-1f1f2',
+ ':flag_md:' => '1f1f2-1f1e9',
+ ':md:' => '1f1f2-1f1e9',
+ ':flag_mc:' => '1f1f2-1f1e8',
+ ':mc:' => '1f1f2-1f1e8',
+ ':flag_mn:' => '1f1f2-1f1f3',
+ ':mn:' => '1f1f2-1f1f3',
+ ':flag_me:' => '1f1f2-1f1ea',
+ ':me:' => '1f1f2-1f1ea',
+ ':flag_ma:' => '1f1f2-1f1e6',
+ ':ma:' => '1f1f2-1f1e6',
+ ':flag_mz:' => '1f1f2-1f1ff',
+ ':mz:' => '1f1f2-1f1ff',
+ ':flag_mm:' => '1f1f2-1f1f2',
+ ':mm:' => '1f1f2-1f1f2',
+ ':flag_na:' => '1f1f3-1f1e6',
+ ':na:' => '1f1f3-1f1e6',
+ ':flag_nr:' => '1f1f3-1f1f7',
+ ':nr:' => '1f1f3-1f1f7',
+ ':flag_np:' => '1f1f3-1f1f5',
+ ':np:' => '1f1f3-1f1f5',
+ ':flag_nl:' => '1f1f3-1f1f1',
+ ':nl:' => '1f1f3-1f1f1',
+ ':flag_nz:' => '1f1f3-1f1ff',
+ ':nz:' => '1f1f3-1f1ff',
+ ':flag_ni:' => '1f1f3-1f1ee',
+ ':ni:' => '1f1f3-1f1ee',
+ ':flag_ne:' => '1f1f3-1f1ea',
+ ':ne:' => '1f1f3-1f1ea',
+ ':flag_ng:' => '1f1f3-1f1ec',
+ ':nigeria:' => '1f1f3-1f1ec',
+ ':flag_kp:' => '1f1f0-1f1f5',
+ ':kp:' => '1f1f0-1f1f5',
+ ':flag_no:' => '1f1f3-1f1f4',
+ ':no:' => '1f1f3-1f1f4',
+ ':flag_om:' => '1f1f4-1f1f2',
+ ':om:' => '1f1f4-1f1f2',
+ ':flag_pk:' => '1f1f5-1f1f0',
+ ':pk:' => '1f1f5-1f1f0',
+ ':flag_pw:' => '1f1f5-1f1fc',
+ ':pw:' => '1f1f5-1f1fc',
+ ':flag_pa:' => '1f1f5-1f1e6',
+ ':pa:' => '1f1f5-1f1e6',
+ ':flag_pg:' => '1f1f5-1f1ec',
+ ':pg:' => '1f1f5-1f1ec',
+ ':left_facing_fist_tone4:' => '1f91b-1f3fe',
+ ':left_fist_tone4:' => '1f91b-1f3fe',
+ ':flag_py:' => '1f1f5-1f1fe',
+ ':py:' => '1f1f5-1f1fe',
+ ':flag_pe:' => '1f1f5-1f1ea',
+ ':pe:' => '1f1f5-1f1ea',
+ ':flag_ph:' => '1f1f5-1f1ed',
+ ':ph:' => '1f1f5-1f1ed',
+ ':flag_pl:' => '1f1f5-1f1f1',
+ ':pl:' => '1f1f5-1f1f1',
+ ':flag_pt:' => '1f1f5-1f1f9',
+ ':pt:' => '1f1f5-1f1f9',
+ ':flag_qa:' => '1f1f6-1f1e6',
+ ':qa:' => '1f1f6-1f1e6',
+ ':flag_tw:' => '1f1f9-1f1fc',
+ ':tw:' => '1f1f9-1f1fc',
+ ':flag_cg:' => '1f1e8-1f1ec',
+ ':cg:' => '1f1e8-1f1ec',
+ ':flag_ro:' => '1f1f7-1f1f4',
+ ':ro:' => '1f1f7-1f1f4',
+ ':flag_rw:' => '1f1f7-1f1fc',
+ ':rw:' => '1f1f7-1f1fc',
+ ':flag_kn:' => '1f1f0-1f1f3',
+ ':kn:' => '1f1f0-1f1f3',
+ ':flag_lc:' => '1f1f1-1f1e8',
+ ':lc:' => '1f1f1-1f1e8',
+ ':flag_vc:' => '1f1fb-1f1e8',
+ ':vc:' => '1f1fb-1f1e8',
+ ':flag_ws:' => '1f1fc-1f1f8',
+ ':ws:' => '1f1fc-1f1f8',
+ ':flag_sm:' => '1f1f8-1f1f2',
+ ':sm:' => '1f1f8-1f1f2',
+ ':flag_st:' => '1f1f8-1f1f9',
+ ':st:' => '1f1f8-1f1f9',
+ ':flag_sa:' => '1f1f8-1f1e6',
+ ':saudiarabia:' => '1f1f8-1f1e6',
+ ':saudi:' => '1f1f8-1f1e6',
+ ':left_facing_fist_tone5:' => '1f91b-1f3ff',
+ ':left_fist_tone5:' => '1f91b-1f3ff',
+ ':flag_sn:' => '1f1f8-1f1f3',
+ ':sn:' => '1f1f8-1f1f3',
+ ':flag_rs:' => '1f1f7-1f1f8',
+ ':rs:' => '1f1f7-1f1f8',
+ ':flag_sc:' => '1f1f8-1f1e8',
+ ':sc:' => '1f1f8-1f1e8',
+ ':flag_sl:' => '1f1f8-1f1f1',
+ ':sl:' => '1f1f8-1f1f1',
+ ':flag_sg:' => '1f1f8-1f1ec',
+ ':sg:' => '1f1f8-1f1ec',
+ ':flag_sk:' => '1f1f8-1f1f0',
+ ':sk:' => '1f1f8-1f1f0',
+ ':flag_si:' => '1f1f8-1f1ee',
+ ':si:' => '1f1f8-1f1ee',
+ ':flag_sb:' => '1f1f8-1f1e7',
+ ':sb:' => '1f1f8-1f1e7',
+ ':flag_so:' => '1f1f8-1f1f4',
+ ':so:' => '1f1f8-1f1f4',
+ ':flag_za:' => '1f1ff-1f1e6',
+ ':za:' => '1f1ff-1f1e6',
+ ':flag_lk:' => '1f1f1-1f1f0',
+ ':lk:' => '1f1f1-1f1f0',
+ ':flag_sd:' => '1f1f8-1f1e9',
+ ':sd:' => '1f1f8-1f1e9',
+ ':flag_sr:' => '1f1f8-1f1f7',
+ ':sr:' => '1f1f8-1f1f7',
+ ':flag_sz:' => '1f1f8-1f1ff',
+ ':sz:' => '1f1f8-1f1ff',
+ ':flag_se:' => '1f1f8-1f1ea',
+ ':se:' => '1f1f8-1f1ea',
+ ':flag_ch:' => '1f1e8-1f1ed',
+ ':ch:' => '1f1e8-1f1ed',
+ ':flag_sy:' => '1f1f8-1f1fe',
+ ':sy:' => '1f1f8-1f1fe',
+ ':flag_tj:' => '1f1f9-1f1ef',
+ ':tj:' => '1f1f9-1f1ef',
+ ':flag_tz:' => '1f1f9-1f1ff',
+ ':tz:' => '1f1f9-1f1ff',
+ ':flag_th:' => '1f1f9-1f1ed',
+ ':th:' => '1f1f9-1f1ed',
+ ':flag_tg:' => '1f1f9-1f1ec',
+ ':tg:' => '1f1f9-1f1ec',
+ ':flag_to:' => '1f1f9-1f1f4',
+ ':to:' => '1f1f9-1f1f4',
+ ':flag_tt:' => '1f1f9-1f1f9',
+ ':tt:' => '1f1f9-1f1f9',
+ ':flag_tn:' => '1f1f9-1f1f3',
+ ':tn:' => '1f1f9-1f1f3',
+ ':flag_tr:' => '1f1f9-1f1f7',
+ ':tr:' => '1f1f9-1f1f7',
+ ':flag_tm:' => '1f1f9-1f1f2',
+ ':turkmenistan:' => '1f1f9-1f1f2',
+ ':flag_tv:' => '1f1f9-1f1fb',
+ ':tuvalu:' => '1f1f9-1f1fb',
+ ':flag_ug:' => '1f1fa-1f1ec',
+ ':ug:' => '1f1fa-1f1ec',
+ ':flag_ua:' => '1f1fa-1f1e6',
+ ':ua:' => '1f1fa-1f1e6',
+ ':flag_ae:' => '1f1e6-1f1ea',
+ ':ae:' => '1f1e6-1f1ea',
+ ':flag_uy:' => '1f1fa-1f1fe',
+ ':uy:' => '1f1fa-1f1fe',
+ ':flag_uz:' => '1f1fa-1f1ff',
+ ':uz:' => '1f1fa-1f1ff',
+ ':flag_vu:' => '1f1fb-1f1fa',
+ ':vu:' => '1f1fb-1f1fa',
+ ':flag_va:' => '1f1fb-1f1e6',
+ ':va:' => '1f1fb-1f1e6',
+ ':flag_ve:' => '1f1fb-1f1ea',
+ ':ve:' => '1f1fb-1f1ea',
+ ':flag_vn:' => '1f1fb-1f1f3',
+ ':vn:' => '1f1fb-1f1f3',
+ ':flag_eh:' => '1f1ea-1f1ed',
+ ':eh:' => '1f1ea-1f1ed',
+ ':right_facing_fist_tone1:' => '1f91c-1f3fb',
+ ':right_fist_tone1:' => '1f91c-1f3fb',
+ ':flag_ye:' => '1f1fe-1f1ea',
+ ':ye:' => '1f1fe-1f1ea',
+ ':flag_zm:' => '1f1ff-1f1f2',
+ ':zm:' => '1f1ff-1f1f2',
+ ':flag_zw:' => '1f1ff-1f1fc',
+ ':zw:' => '1f1ff-1f1fc',
+ ':flag_pr:' => '1f1f5-1f1f7',
+ ':pr:' => '1f1f5-1f1f7',
+ ':flag_ky:' => '1f1f0-1f1fe',
+ ':ky:' => '1f1f0-1f1fe',
+ ':flag_bm:' => '1f1e7-1f1f2',
+ ':bm:' => '1f1e7-1f1f2',
+ ':flag_pf:' => '1f1f5-1f1eb',
+ ':pf:' => '1f1f5-1f1eb',
+ ':flag_ps:' => '1f1f5-1f1f8',
+ ':ps:' => '1f1f5-1f1f8',
+ ':flag_nc:' => '1f1f3-1f1e8',
+ ':nc:' => '1f1f3-1f1e8',
+ ':right_facing_fist_tone2:' => '1f91c-1f3fc',
+ ':right_fist_tone2:' => '1f91c-1f3fc',
+ ':flag_sh:' => '1f1f8-1f1ed',
+ ':sh:' => '1f1f8-1f1ed',
+ ':flag_aw:' => '1f1e6-1f1fc',
+ ':aw:' => '1f1e6-1f1fc',
+ ':flag_vi:' => '1f1fb-1f1ee',
+ ':vi:' => '1f1fb-1f1ee',
+ ':flag_hk:' => '1f1ed-1f1f0',
+ ':hk:' => '1f1ed-1f1f0',
+ ':flag_ac:' => '1f1e6-1f1e8',
+ ':ac:' => '1f1e6-1f1e8',
+ ':flag_ms:' => '1f1f2-1f1f8',
+ ':ms:' => '1f1f2-1f1f8',
+ ':flag_gu:' => '1f1ec-1f1fa',
+ ':gu:' => '1f1ec-1f1fa',
+ ':flag_gl:' => '1f1ec-1f1f1',
+ ':gl:' => '1f1ec-1f1f1',
+ ':flag_nu:' => '1f1f3-1f1fa',
+ ':nu:' => '1f1f3-1f1fa',
+ ':flag_wf:' => '1f1fc-1f1eb',
+ ':wf:' => '1f1fc-1f1eb',
+ ':flag_mo:' => '1f1f2-1f1f4',
+ ':mo:' => '1f1f2-1f1f4',
+ ':right_facing_fist_tone3:' => '1f91c-1f3fd',
+ ':right_fist_tone3:' => '1f91c-1f3fd',
+ ':flag_fo:' => '1f1eb-1f1f4',
+ ':fo:' => '1f1eb-1f1f4',
+ ':flag_fk:' => '1f1eb-1f1f0',
+ ':fk:' => '1f1eb-1f1f0',
+ ':flag_je:' => '1f1ef-1f1ea',
+ ':je:' => '1f1ef-1f1ea',
+ ':flag_ai:' => '1f1e6-1f1ee',
+ ':ai:' => '1f1e6-1f1ee',
+ ':flag_gi:' => '1f1ec-1f1ee',
+ ':gi:' => '1f1ec-1f1ee',
+ ':film_frames:' => '1f39e',
+ ':tickets:' => '1f39f',
+ ':admission_tickets:' => '1f39f',
+ ':medal:' => '1f3c5',
+ ':sports_medal:' => '1f3c5',
+ ':lifter:' => '1f3cb',
+ ':weight_lifter:' => '1f3cb',
+ ':golfer:' => '1f3cc',
+ ':motorcycle:' => '1f3cd',
+ ':racing_motorcycle:' => '1f3cd',
+ ':race_car:' => '1f3ce',
+ ':racing_car:' => '1f3ce',
+ ':military_medal:' => '1f396',
+ ':reminder_ribbon:' => '1f397',
+ ':hot_pepper:' => '1f336',
+ ':right_facing_fist_tone4:' => '1f91c-1f3fe',
+ ':right_fist_tone4:' => '1f91c-1f3fe',
+ ':cloud_rain:' => '1f327',
+ ':cloud_with_rain:' => '1f327',
+ ':cloud_snow:' => '1f328',
+ ':cloud_with_snow:' => '1f328',
+ ':cloud_lightning:' => '1f329',
+ ':cloud_with_lightning:' => '1f329',
+ ':cloud_tornado:' => '1f32a',
+ ':cloud_with_tornado:' => '1f32a',
+ ':fog:' => '1f32b',
+ ':wind_blowing_face:' => '1f32c',
+ ':chipmunk:' => '1f43f',
+ ':spider:' => '1f577',
+ ':spider_web:' => '1f578',
+ ':thermometer:' => '1f321',
+ ':microphone2:' => '1f399',
+ ':studio_microphone:' => '1f399',
+ ':level_slider:' => '1f39a',
+ ':control_knobs:' => '1f39b',
+ ':flag_white:' => '1f3f3',
+ ':waving_white_flag:' => '1f3f3',
+ ':flag_black:' => '1f3f4',
+ ':waving_black_flag:' => '1f3f4',
+ ':rosette:' => '1f3f5',
+ ':label:' => '1f3f7',
+ ':camera_with_flash:' => '1f4f8',
+ ':projector:' => '1f4fd',
+ ':film_projector:' => '1f4fd',
+ ':cross:' => '271d',
+ ':latin_cross:' => '271d',
+ ':om_symbol:' => '1f549',
+ ':dove:' => '1f54a',
+ ':dove_of_peace:' => '1f54a',
+ ':candle:' => '1f56f',
+ ':clock:' => '1f570',
+ ':mantlepiece_clock:' => '1f570',
+ ':hole:' => '1f573',
+ ':dark_sunglasses:' => '1f576',
+ ':joystick:' => '1f579',
+ ':paperclips:' => '1f587',
+ ':linked_paperclips:' => '1f587',
+ ':pen_ballpoint:' => '1f58a',
+ ':lower_left_ballpoint_pen:' => '1f58a',
+ ':pen_fountain:' => '1f58b',
+ ':lower_left_fountain_pen:' => '1f58b',
+ ':paintbrush:' => '1f58c',
+ ':lower_left_paintbrush:' => '1f58c',
+ ':crayon:' => '1f58d',
+ ':lower_left_crayon:' => '1f58d',
+ ':desktop:' => '1f5a5',
+ ':desktop_computer:' => '1f5a5',
+ ':printer:' => '1f5a8',
+ ':right_facing_fist_tone5:' => '1f91c-1f3ff',
+ ':right_fist_tone5:' => '1f91c-1f3ff',
+ ':keyboard:' => '2328',
+ ':trackball:' => '1f5b2',
+ ':raised_back_of_hand_tone1:' => '1f91a-1f3fb',
+ ':back_of_hand_tone1:' => '1f91a-1f3fb',
+ ':frame_photo:' => '1f5bc',
+ ':frame_with_picture:' => '1f5bc',
+ ':dividers:' => '1f5c2',
+ ':card_index_dividers:' => '1f5c2',
+ ':card_box:' => '1f5c3',
+ ':card_file_box:' => '1f5c3',
+ ':file_cabinet:' => '1f5c4',
+ ':wastebasket:' => '1f5d1',
+ ':notepad_spiral:' => '1f5d2',
+ ':spiral_note_pad:' => '1f5d2',
+ ':calendar_spiral:' => '1f5d3',
+ ':spiral_calendar_pad:' => '1f5d3',
+ ':compression:' => '1f5dc',
+ ':key2:' => '1f5dd',
+ ':old_key:' => '1f5dd',
+ ':newspaper2:' => '1f5de',
+ ':rolled_up_newspaper:' => '1f5de',
+ ':dagger:' => '1f5e1',
+ ':dagger_knife:' => '1f5e1',
+ ':speaking_head:' => '1f5e3',
+ ':speaking_head_in_silhouette:' => '1f5e3',
+ ':speech_left:' => '1f5e8',
+ ':left_speech_bubble:' => '1f5e8',
+ ':raised_back_of_hand_tone2:' => '1f91a-1f3fc',
+ ':back_of_hand_tone2:' => '1f91a-1f3fc',
+ ':anger_right:' => '1f5ef',
+ ':right_anger_bubble:' => '1f5ef',
+ ':raised_back_of_hand_tone3:' => '1f91a-1f3fd',
+ ':back_of_hand_tone3:' => '1f91a-1f3fd',
+ ':ballot_box:' => '1f5f3',
+ ':ballot_box_with_ballot:' => '1f5f3',
+ ':map:' => '1f5fa',
+ ':world_map:' => '1f5fa',
+ ':sleeping_accommodation:' => '1f6cc',
+ ':tools:' => '1f6e0',
+ ':hammer_and_wrench:' => '1f6e0',
+ ':shield:' => '1f6e1',
+ ':oil:' => '1f6e2',
+ ':oil_drum:' => '1f6e2',
+ ':satellite_orbital:' => '1f6f0',
+ ':fork_knife_plate:' => '1f37d',
+ ':fork_and_knife_with_plate:' => '1f37d',
+ ':eye:' => '1f441',
+ ':levitate:' => '1f574',
+ ':man_in_business_suit_levitating:' => '1f574',
+ ':spy:' => '1f575',
+ ':sleuth_or_spy:' => '1f575',
+ ':writing_hand:' => '270d',
+ ':hand_splayed:' => '1f590',
+ ':raised_hand_with_fingers_splayed:' => '1f590',
+ ':middle_finger:' => '1f595',
+ ':reversed_hand_with_middle_finger_extended:' => '1f595',
+ ':vulcan:' => '1f596',
+ ':raised_hand_with_part_between_middle_and_ring_fingers:' => '1f596',
+ ':slight_frown:' => '1f641',
+ ':slightly_frowning_face:' => '1f641',
+ ':slight_smile:' => '1f642',
+ ':slightly_smiling_face:' => '1f642',
+ ':mountain_snow:' => '1f3d4',
+ ':snow_capped_mountain:' => '1f3d4',
+ ':camping:' => '1f3d5',
+ ':beach:' => '1f3d6',
+ ':beach_with_umbrella:' => '1f3d6',
+ ':construction_site:' => '1f3d7',
+ ':building_construction:' => '1f3d7',
+ ':homes:' => '1f3d8',
+ ':house_buildings:' => '1f3d8',
+ ':cityscape:' => '1f3d9',
+ ':house_abandoned:' => '1f3da',
+ ':derelict_house_building:' => '1f3da',
+ ':classical_building:' => '1f3db',
+ ':desert:' => '1f3dc',
+ ':island:' => '1f3dd',
+ ':desert_island:' => '1f3dd',
+ ':park:' => '1f3de',
+ ':national_park:' => '1f3de',
+ ':stadium:' => '1f3df',
+ ':couch:' => '1f6cb',
+ ':couch_and_lamp:' => '1f6cb',
+ ':raised_back_of_hand_tone4:' => '1f91a-1f3fe',
+ ':back_of_hand_tone4:' => '1f91a-1f3fe',
+ ':shopping_bags:' => '1f6cd',
+ ':bellhop:' => '1f6ce',
+ ':bellhop_bell:' => '1f6ce',
+ ':bed:' => '1f6cf',
+ ':motorway:' => '1f6e3',
+ ':railway_track:' => '1f6e4',
+ ':railroad_track:' => '1f6e4',
+ ':motorboat:' => '1f6e5',
+ ':airplane_small:' => '1f6e9',
+ ':small_airplane:' => '1f6e9',
+ ':airplane_departure:' => '1f6eb',
+ ':airplane_arriving:' => '1f6ec',
+ ':cruise_ship:' => '1f6f3',
+ ':passenger_ship:' => '1f6f3',
+ ':baby_tone1:' => '1f476-1f3fb',
+ ':baby_tone2:' => '1f476-1f3fc',
+ ':baby_tone3:' => '1f476-1f3fd',
+ ':baby_tone4:' => '1f476-1f3fe',
+ ':baby_tone5:' => '1f476-1f3ff',
+ ':boy_tone1:' => '1f466-1f3fb',
+ ':boy_tone2:' => '1f466-1f3fc',
+ ':boy_tone3:' => '1f466-1f3fd',
+ ':boy_tone4:' => '1f466-1f3fe',
+ ':boy_tone5:' => '1f466-1f3ff',
+ ':girl_tone1:' => '1f467-1f3fb',
+ ':girl_tone2:' => '1f467-1f3fc',
+ ':girl_tone3:' => '1f467-1f3fd',
+ ':girl_tone4:' => '1f467-1f3fe',
+ ':girl_tone5:' => '1f467-1f3ff',
+ ':man_tone1:' => '1f468-1f3fb',
+ ':man_tone2:' => '1f468-1f3fc',
+ ':man_tone3:' => '1f468-1f3fd',
+ ':man_tone4:' => '1f468-1f3fe',
+ ':man_tone5:' => '1f468-1f3ff',
+ ':woman_tone1:' => '1f469-1f3fb',
+ ':woman_tone2:' => '1f469-1f3fc',
+ ':woman_tone3:' => '1f469-1f3fd',
+ ':woman_tone4:' => '1f469-1f3fe',
+ ':woman_tone5:' => '1f469-1f3ff',
+ ':bride_with_veil_tone1:' => '1f470-1f3fb',
+ ':bride_with_veil_tone2:' => '1f470-1f3fc',
+ ':raised_back_of_hand_tone5:' => '1f91a-1f3ff',
+ ':back_of_hand_tone5:' => '1f91a-1f3ff',
+ ':bride_with_veil_tone3:' => '1f470-1f3fd',
+ ':bride_with_veil_tone4:' => '1f470-1f3fe',
+ ':bride_with_veil_tone5:' => '1f470-1f3ff',
+ ':handshake_tone1:' => '1f91d-1f3fb',
+ ':shaking_hands_tone1:' => '1f91d-1f3fb',
+ ':person_with_blond_hair_tone1:' => '1f471-1f3fb',
+ ':person_with_blond_hair_tone2:' => '1f471-1f3fc',
+ ':person_with_blond_hair_tone3:' => '1f471-1f3fd',
+ ':person_with_blond_hair_tone4:' => '1f471-1f3fe',
+ ':handshake_tone2:' => '1f91d-1f3fc',
+ ':shaking_hands_tone2:' => '1f91d-1f3fc',
+ ':person_with_blond_hair_tone5:' => '1f471-1f3ff',
+ ':man_with_gua_pi_mao_tone1:' => '1f472-1f3fb',
+ ':man_with_gua_pi_mao_tone2:' => '1f472-1f3fc',
+ ':man_with_gua_pi_mao_tone3:' => '1f472-1f3fd',
+ ':man_with_gua_pi_mao_tone4:' => '1f472-1f3fe',
+ ':man_with_gua_pi_mao_tone5:' => '1f472-1f3ff',
+ ':man_with_turban_tone1:' => '1f473-1f3fb',
+ ':man_with_turban_tone2:' => '1f473-1f3fc',
+ ':handshake_tone3:' => '1f91d-1f3fd',
+ ':shaking_hands_tone3:' => '1f91d-1f3fd',
+ ':man_with_turban_tone3:' => '1f473-1f3fd',
+ ':man_with_turban_tone4:' => '1f473-1f3fe',
+ ':man_with_turban_tone5:' => '1f473-1f3ff',
+ ':handshake_tone4:' => '1f91d-1f3fe',
+ ':shaking_hands_tone4:' => '1f91d-1f3fe',
+ ':older_man_tone1:' => '1f474-1f3fb',
+ ':older_man_tone2:' => '1f474-1f3fc',
+ ':older_man_tone3:' => '1f474-1f3fd',
+ ':older_man_tone4:' => '1f474-1f3fe',
+ ':older_man_tone5:' => '1f474-1f3ff',
+ ':older_woman_tone1:' => '1f475-1f3fb',
+ ':grandma_tone1:' => '1f475-1f3fb',
+ ':older_woman_tone2:' => '1f475-1f3fc',
+ ':grandma_tone2:' => '1f475-1f3fc',
+ ':older_woman_tone3:' => '1f475-1f3fd',
+ ':grandma_tone3:' => '1f475-1f3fd',
+ ':older_woman_tone4:' => '1f475-1f3fe',
+ ':grandma_tone4:' => '1f475-1f3fe',
+ ':older_woman_tone5:' => '1f475-1f3ff',
+ ':grandma_tone5:' => '1f475-1f3ff',
+ ':cop_tone1:' => '1f46e-1f3fb',
+ ':cop_tone2:' => '1f46e-1f3fc',
+ ':cop_tone3:' => '1f46e-1f3fd',
+ ':cop_tone4:' => '1f46e-1f3fe',
+ ':cop_tone5:' => '1f46e-1f3ff',
+ ':construction_worker_tone1:' => '1f477-1f3fb',
+ ':construction_worker_tone2:' => '1f477-1f3fc',
+ ':construction_worker_tone3:' => '1f477-1f3fd',
+ ':construction_worker_tone4:' => '1f477-1f3fe',
+ ':construction_worker_tone5:' => '1f477-1f3ff',
+ ':princess_tone1:' => '1f478-1f3fb',
+ ':princess_tone2:' => '1f478-1f3fc',
+ ':handshake_tone5:' => '1f91d-1f3ff',
+ ':shaking_hands_tone5:' => '1f91d-1f3ff',
+ ':princess_tone3:' => '1f478-1f3fd',
+ ':princess_tone4:' => '1f478-1f3fe',
+ ':cartwheel_tone1:' => '1f938-1f3fb',
+ ':person_doing_cartwheel_tone1:' => '1f938-1f3fb',
+ ':princess_tone5:' => '1f478-1f3ff',
+ ':guardsman_tone1:' => '1f482-1f3fb',
+ ':guardsman_tone2:' => '1f482-1f3fc',
+ ':cartwheel_tone2:' => '1f938-1f3fc',
+ ':person_doing_cartwheel_tone2:' => '1f938-1f3fc',
+ ':guardsman_tone3:' => '1f482-1f3fd',
+ ':guardsman_tone4:' => '1f482-1f3fe',
+ ':guardsman_tone5:' => '1f482-1f3ff',
+ ':cartwheel_tone3:' => '1f938-1f3fd',
+ ':person_doing_cartwheel_tone3:' => '1f938-1f3fd',
+ ':angel_tone1:' => '1f47c-1f3fb',
+ ':angel_tone2:' => '1f47c-1f3fc',
+ ':angel_tone3:' => '1f47c-1f3fd',
+ ':angel_tone4:' => '1f47c-1f3fe',
+ ':angel_tone5:' => '1f47c-1f3ff',
+ ':bow_tone1:' => '1f647-1f3fb',
+ ':bow_tone2:' => '1f647-1f3fc',
+ ':bow_tone3:' => '1f647-1f3fd',
+ ':bow_tone4:' => '1f647-1f3fe',
+ ':bow_tone5:' => '1f647-1f3ff',
+ ':information_desk_person_tone1:' => '1f481-1f3fb',
+ ':information_desk_person_tone2:' => '1f481-1f3fc',
+ ':information_desk_person_tone3:' => '1f481-1f3fd',
+ ':cartwheel_tone4:' => '1f938-1f3fe',
+ ':person_doing_cartwheel_tone4:' => '1f938-1f3fe',
+ ':information_desk_person_tone4:' => '1f481-1f3fe',
+ ':information_desk_person_tone5:' => '1f481-1f3ff',
+ ':no_good_tone1:' => '1f645-1f3fb',
+ ':cartwheel_tone5:' => '1f938-1f3ff',
+ ':person_doing_cartwheel_tone5:' => '1f938-1f3ff',
+ ':no_good_tone2:' => '1f645-1f3fc',
+ ':no_good_tone3:' => '1f645-1f3fd',
+ ':no_good_tone4:' => '1f645-1f3fe',
+ ':wrestlers_tone2:' => '1f93c-1f3fc',
+ ':wrestling_tone2:' => '1f93c-1f3fc',
+ ':no_good_tone5:' => '1f645-1f3ff',
+ ':ok_woman_tone1:' => '1f646-1f3fb',
+ ':ok_woman_tone2:' => '1f646-1f3fc',
+ ':ok_woman_tone3:' => '1f646-1f3fd',
+ ':wrestlers_tone1:' => '1f93c-1f3fb',
+ ':wrestling_tone1:' => '1f93c-1f3fb',
+ ':ok_woman_tone4:' => '1f646-1f3fe',
+ ':ok_woman_tone5:' => '1f646-1f3ff',
+ ':raising_hand_tone1:' => '1f64b-1f3fb',
+ ':raising_hand_tone2:' => '1f64b-1f3fc',
+ ':raising_hand_tone3:' => '1f64b-1f3fd',
+ ':wrestlers_tone3:' => '1f93c-1f3fd',
+ ':wrestling_tone3:' => '1f93c-1f3fd',
+ ':raising_hand_tone4:' => '1f64b-1f3fe',
+ ':raising_hand_tone5:' => '1f64b-1f3ff',
+ ':person_with_pouting_face_tone1:' => '1f64e-1f3fb',
+ ':person_with_pouting_face_tone2:' => '1f64e-1f3fc',
+ ':person_with_pouting_face_tone3:' => '1f64e-1f3fd',
+ ':person_with_pouting_face_tone4:' => '1f64e-1f3fe',
+ ':person_with_pouting_face_tone5:' => '1f64e-1f3ff',
+ ':person_frowning_tone1:' => '1f64d-1f3fb',
+ ':person_frowning_tone2:' => '1f64d-1f3fc',
+ ':person_frowning_tone3:' => '1f64d-1f3fd',
+ ':wrestlers_tone4:' => '1f93c-1f3fe',
+ ':wrestling_tone4:' => '1f93c-1f3fe',
+ ':person_frowning_tone4:' => '1f64d-1f3fe',
+ ':person_frowning_tone5:' => '1f64d-1f3ff',
+ ':massage_tone1:' => '1f486-1f3fb',
+ ':massage_tone2:' => '1f486-1f3fc',
+ ':massage_tone3:' => '1f486-1f3fd',
+ ':massage_tone4:' => '1f486-1f3fe',
+ ':massage_tone5:' => '1f486-1f3ff',
+ ':haircut_tone1:' => '1f487-1f3fb',
+ ':haircut_tone2:' => '1f487-1f3fc',
+ ':haircut_tone3:' => '1f487-1f3fd',
+ ':haircut_tone4:' => '1f487-1f3fe',
+ ':haircut_tone5:' => '1f487-1f3ff',
+ ':raised_hands_tone1:' => '1f64c-1f3fb',
+ ':raised_hands_tone2:' => '1f64c-1f3fc',
+ ':raised_hands_tone3:' => '1f64c-1f3fd',
+ ':raised_hands_tone4:' => '1f64c-1f3fe',
+ ':raised_hands_tone5:' => '1f64c-1f3ff',
+ ':clap_tone1:' => '1f44f-1f3fb',
+ ':wrestlers_tone5:' => '1f93c-1f3ff',
+ ':wrestling_tone5:' => '1f93c-1f3ff',
+ ':clap_tone2:' => '1f44f-1f3fc',
+ ':clap_tone3:' => '1f44f-1f3fd',
+ ':water_polo_tone1:' => '1f93d-1f3fb',
+ ':clap_tone4:' => '1f44f-1f3fe',
+ ':clap_tone5:' => '1f44f-1f3ff',
+ ':water_polo_tone2:' => '1f93d-1f3fc',
+ ':ear_tone1:' => '1f442-1f3fb',
+ ':ear_tone2:' => '1f442-1f3fc',
+ ':ear_tone3:' => '1f442-1f3fd',
+ ':ear_tone4:' => '1f442-1f3fe',
+ ':ear_tone5:' => '1f442-1f3ff',
+ ':nose_tone1:' => '1f443-1f3fb',
+ ':nose_tone2:' => '1f443-1f3fc',
+ ':nose_tone3:' => '1f443-1f3fd',
+ ':nose_tone4:' => '1f443-1f3fe',
+ ':nose_tone5:' => '1f443-1f3ff',
+ ':nail_care_tone1:' => '1f485-1f3fb',
+ ':nail_care_tone2:' => '1f485-1f3fc',
+ ':nail_care_tone3:' => '1f485-1f3fd',
+ ':nail_care_tone4:' => '1f485-1f3fe',
+ ':nail_care_tone5:' => '1f485-1f3ff',
+ ':wave_tone1:' => '1f44b-1f3fb',
+ ':wave_tone2:' => '1f44b-1f3fc',
+ ':wave_tone3:' => '1f44b-1f3fd',
+ ':wave_tone4:' => '1f44b-1f3fe',
+ ':wave_tone5:' => '1f44b-1f3ff',
+ ':thumbsup_tone1:' => '1f44d-1f3fb',
+ ':+1_tone1:' => '1f44d-1f3fb',
+ ':thumbup_tone1:' => '1f44d-1f3fb',
+ ':thumbsup_tone2:' => '1f44d-1f3fc',
+ ':+1_tone2:' => '1f44d-1f3fc',
+ ':thumbup_tone2:' => '1f44d-1f3fc',
+ ':thumbsup_tone3:' => '1f44d-1f3fd',
+ ':+1_tone3:' => '1f44d-1f3fd',
+ ':thumbup_tone3:' => '1f44d-1f3fd',
+ ':thumbsup_tone4:' => '1f44d-1f3fe',
+ ':+1_tone4:' => '1f44d-1f3fe',
+ ':thumbup_tone4:' => '1f44d-1f3fe',
+ ':thumbsup_tone5:' => '1f44d-1f3ff',
+ ':+1_tone5:' => '1f44d-1f3ff',
+ ':thumbup_tone5:' => '1f44d-1f3ff',
+ ':thumbsdown_tone1:' => '1f44e-1f3fb',
+ ':-1_tone1:' => '1f44e-1f3fb',
+ ':thumbdown_tone1:' => '1f44e-1f3fb',
+ ':thumbsdown_tone2:' => '1f44e-1f3fc',
+ ':-1_tone2:' => '1f44e-1f3fc',
+ ':thumbdown_tone2:' => '1f44e-1f3fc',
+ ':thumbsdown_tone3:' => '1f44e-1f3fd',
+ ':-1_tone3:' => '1f44e-1f3fd',
+ ':thumbdown_tone3:' => '1f44e-1f3fd',
+ ':thumbsdown_tone4:' => '1f44e-1f3fe',
+ ':-1_tone4:' => '1f44e-1f3fe',
+ ':thumbdown_tone4:' => '1f44e-1f3fe',
+ ':thumbsdown_tone5:' => '1f44e-1f3ff',
+ ':-1_tone5:' => '1f44e-1f3ff',
+ ':thumbdown_tone5:' => '1f44e-1f3ff',
+ ':point_up_tone1:' => '261d-1f3fb',
+ ':point_up_tone2:' => '261d-1f3fc',
+ ':point_up_tone3:' => '261d-1f3fd',
+ ':point_up_tone4:' => '261d-1f3fe',
+ ':point_up_tone5:' => '261d-1f3ff',
+ ':point_up_2_tone1:' => '1f446-1f3fb',
+ ':point_up_2_tone2:' => '1f446-1f3fc',
+ ':point_up_2_tone3:' => '1f446-1f3fd',
+ ':point_up_2_tone4:' => '1f446-1f3fe',
+ ':point_up_2_tone5:' => '1f446-1f3ff',
+ ':point_down_tone1:' => '1f447-1f3fb',
+ ':point_down_tone2:' => '1f447-1f3fc',
+ ':point_down_tone3:' => '1f447-1f3fd',
+ ':point_down_tone4:' => '1f447-1f3fe',
+ ':point_down_tone5:' => '1f447-1f3ff',
+ ':point_left_tone1:' => '1f448-1f3fb',
+ ':point_left_tone2:' => '1f448-1f3fc',
+ ':point_left_tone3:' => '1f448-1f3fd',
+ ':point_left_tone4:' => '1f448-1f3fe',
+ ':point_left_tone5:' => '1f448-1f3ff',
+ ':point_right_tone1:' => '1f449-1f3fb',
+ ':point_right_tone2:' => '1f449-1f3fc',
+ ':point_right_tone3:' => '1f449-1f3fd',
+ ':point_right_tone4:' => '1f449-1f3fe',
+ ':point_right_tone5:' => '1f449-1f3ff',
+ ':ok_hand_tone1:' => '1f44c-1f3fb',
+ ':ok_hand_tone2:' => '1f44c-1f3fc',
+ ':water_polo_tone3:' => '1f93d-1f3fd',
+ ':ok_hand_tone3:' => '1f44c-1f3fd',
+ ':ok_hand_tone4:' => '1f44c-1f3fe',
+ ':water_polo_tone4:' => '1f93d-1f3fe',
+ ':ok_hand_tone5:' => '1f44c-1f3ff',
+ ':v_tone1:' => '270c-1f3fb',
+ ':v_tone2:' => '270c-1f3fc',
+ ':v_tone3:' => '270c-1f3fd',
+ ':v_tone4:' => '270c-1f3fe',
+ ':v_tone5:' => '270c-1f3ff',
+ ':punch_tone1:' => '1f44a-1f3fb',
+ ':punch_tone2:' => '1f44a-1f3fc',
+ ':punch_tone3:' => '1f44a-1f3fd',
+ ':punch_tone4:' => '1f44a-1f3fe',
+ ':punch_tone5:' => '1f44a-1f3ff',
+ ':fist_tone1:' => '270a-1f3fb',
+ ':fist_tone2:' => '270a-1f3fc',
+ ':fist_tone3:' => '270a-1f3fd',
+ ':fist_tone4:' => '270a-1f3fe',
+ ':fist_tone5:' => '270a-1f3ff',
+ ':raised_hand_tone1:' => '270b-1f3fb',
+ ':raised_hand_tone2:' => '270b-1f3fc',
+ ':raised_hand_tone3:' => '270b-1f3fd',
+ ':raised_hand_tone4:' => '270b-1f3fe',
+ ':raised_hand_tone5:' => '270b-1f3ff',
+ ':muscle_tone1:' => '1f4aa-1f3fb',
+ ':muscle_tone2:' => '1f4aa-1f3fc',
+ ':muscle_tone3:' => '1f4aa-1f3fd',
+ ':muscle_tone4:' => '1f4aa-1f3fe',
+ ':muscle_tone5:' => '1f4aa-1f3ff',
+ ':open_hands_tone1:' => '1f450-1f3fb',
+ ':open_hands_tone2:' => '1f450-1f3fc',
+ ':open_hands_tone3:' => '1f450-1f3fd',
+ ':open_hands_tone4:' => '1f450-1f3fe',
+ ':open_hands_tone5:' => '1f450-1f3ff',
+ ':pray_tone1:' => '1f64f-1f3fb',
+ ':water_polo_tone5:' => '1f93d-1f3ff',
+ ':pray_tone2:' => '1f64f-1f3fc',
+ ':pray_tone3:' => '1f64f-1f3fd',
+ ':handball_tone1:' => '1f93e-1f3fb',
+ ':pray_tone4:' => '1f64f-1f3fe',
+ ':pray_tone5:' => '1f64f-1f3ff',
+ ':handball_tone2:' => '1f93e-1f3fc',
+ ':runner_tone1:' => '1f3c3-1f3fb',
+ ':runner_tone2:' => '1f3c3-1f3fc',
+ ':runner_tone3:' => '1f3c3-1f3fd',
+ ':runner_tone4:' => '1f3c3-1f3fe',
+ ':handball_tone3:' => '1f93e-1f3fd',
+ ':runner_tone5:' => '1f3c3-1f3ff',
+ ':walking_tone1:' => '1f6b6-1f3fb',
+ ':walking_tone2:' => '1f6b6-1f3fc',
+ ':walking_tone3:' => '1f6b6-1f3fd',
+ ':walking_tone4:' => '1f6b6-1f3fe',
+ ':walking_tone5:' => '1f6b6-1f3ff',
+ ':dancer_tone1:' => '1f483-1f3fb',
+ ':handball_tone4:' => '1f93e-1f3fe',
+ ':dancer_tone2:' => '1f483-1f3fc',
+ ':dancer_tone3:' => '1f483-1f3fd',
+ ':handball_tone5:' => '1f93e-1f3ff',
+ ':dancer_tone4:' => '1f483-1f3fe',
+ ':dancer_tone5:' => '1f483-1f3ff',
+ ':juggling_tone1:' => '1f939-1f3fb',
+ ':juggler_tone1:' => '1f939-1f3fb',
+ ':rowboat_tone1:' => '1f6a3-1f3fb',
+ ':rowboat_tone2:' => '1f6a3-1f3fc',
+ ':rowboat_tone3:' => '1f6a3-1f3fd',
+ ':rowboat_tone4:' => '1f6a3-1f3fe',
+ ':rowboat_tone5:' => '1f6a3-1f3ff',
+ ':swimmer_tone1:' => '1f3ca-1f3fb',
+ ':swimmer_tone2:' => '1f3ca-1f3fc',
+ ':juggling_tone2:' => '1f939-1f3fc',
+ ':juggler_tone2:' => '1f939-1f3fc',
+ ':swimmer_tone3:' => '1f3ca-1f3fd',
+ ':swimmer_tone4:' => '1f3ca-1f3fe',
+ ':swimmer_tone5:' => '1f3ca-1f3ff',
+ ':juggling_tone3:' => '1f939-1f3fd',
+ ':juggler_tone3:' => '1f939-1f3fd',
+ ':surfer_tone1:' => '1f3c4-1f3fb',
+ ':surfer_tone2:' => '1f3c4-1f3fc',
+ ':surfer_tone3:' => '1f3c4-1f3fd',
+ ':surfer_tone4:' => '1f3c4-1f3fe',
+ ':surfer_tone5:' => '1f3c4-1f3ff',
+ ':bath_tone1:' => '1f6c0-1f3fb',
+ ':bath_tone2:' => '1f6c0-1f3fc',
+ ':juggling_tone4:' => '1f939-1f3fe',
+ ':juggler_tone4:' => '1f939-1f3fe',
+ ':bath_tone3:' => '1f6c0-1f3fd',
+ ':bath_tone4:' => '1f6c0-1f3fe',
+ ':bath_tone5:' => '1f6c0-1f3ff',
+ ':juggling_tone5:' => '1f939-1f3ff',
+ ':juggler_tone5:' => '1f939-1f3ff',
+ ':bicyclist_tone1:' => '1f6b4-1f3fb',
+ ':bicyclist_tone2:' => '1f6b4-1f3fc',
+ ':bicyclist_tone3:' => '1f6b4-1f3fd',
+ ':gay_pride_flag:' => '1f3f3-1f308',
+ ':rainbow_flag:' => '1f3f3-1f308',
+ ':bicyclist_tone4:' => '1f6b4-1f3fe',
+ ':bicyclist_tone5:' => '1f6b4-1f3ff',
+ ':mountain_bicyclist_tone1:' => '1f6b5-1f3fb',
+ ':mountain_bicyclist_tone2:' => '1f6b5-1f3fc',
+ ':mountain_bicyclist_tone3:' => '1f6b5-1f3fd',
+ ':mountain_bicyclist_tone4:' => '1f6b5-1f3fe',
+ ':mountain_bicyclist_tone5:' => '1f6b5-1f3ff',
+ ':horse_racing_tone1:' => '1f3c7-1f3fb',
+ ':horse_racing_tone2:' => '1f3c7-1f3fc',
+ ':horse_racing_tone3:' => '1f3c7-1f3fd',
+ ':horse_racing_tone4:' => '1f3c7-1f3fe',
+ ':horse_racing_tone5:' => '1f3c7-1f3ff',
+ ':writing_hand_tone1:' => '270d-1f3fb',
+ ':writing_hand_tone2:' => '270d-1f3fc',
+ ':writing_hand_tone3:' => '270d-1f3fd',
+ ':writing_hand_tone4:' => '270d-1f3fe',
+ ':writing_hand_tone5:' => '270d-1f3ff',
+ ':hand_splayed_tone1:' => '1f590-1f3fb',
+ ':raised_hand_with_fingers_splayed_tone1:' => '1f590-1f3fb',
+ ':hand_splayed_tone2:' => '1f590-1f3fc',
+ ':raised_hand_with_fingers_splayed_tone2:' => '1f590-1f3fc',
+ ':hand_splayed_tone3:' => '1f590-1f3fd',
+ ':raised_hand_with_fingers_splayed_tone3:' => '1f590-1f3fd',
+ ':hand_splayed_tone4:' => '1f590-1f3fe',
+ ':raised_hand_with_fingers_splayed_tone4:' => '1f590-1f3fe',
+ ':hand_splayed_tone5:' => '1f590-1f3ff',
+ ':raised_hand_with_fingers_splayed_tone5:' => '1f590-1f3ff',
+ ':middle_finger_tone1:' => '1f595-1f3fb',
+ ':reversed_hand_with_middle_finger_extended_tone1:' => '1f595-1f3fb',
+ ':middle_finger_tone2:' => '1f595-1f3fc',
+ ':reversed_hand_with_middle_finger_extended_tone2:' => '1f595-1f3fc',
+ ':middle_finger_tone3:' => '1f595-1f3fd',
+ ':reversed_hand_with_middle_finger_extended_tone3:' => '1f595-1f3fd',
+ ':middle_finger_tone4:' => '1f595-1f3fe',
+ ':reversed_hand_with_middle_finger_extended_tone4:' => '1f595-1f3fe',
+ ':middle_finger_tone5:' => '1f595-1f3ff',
+ ':reversed_hand_with_middle_finger_extended_tone5:' => '1f595-1f3ff',
+ ':vulcan_tone1:' => '1f596-1f3fb',
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone1:' => '1f596-1f3fb',
+ ':vulcan_tone2:' => '1f596-1f3fc',
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone2:' => '1f596-1f3fc',
+ ':vulcan_tone3:' => '1f596-1f3fd',
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone3:' => '1f596-1f3fd',
+ ':vulcan_tone4:' => '1f596-1f3fe',
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone4:' => '1f596-1f3fe',
+ ':vulcan_tone5:' => '1f596-1f3ff',
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone5:' => '1f596-1f3ff',
+ ':family_mmb:' => '1f468-1f468-1f466',
+ ':family_mmbb:' => '1f468-1f468-1f466-1f466',
+ ':family_mmg:' => '1f468-1f468-1f467',
+ ':family_mmgb:' => '1f468-1f468-1f467-1f466',
+ ':family_mmgg:' => '1f468-1f468-1f467-1f467',
+ ':family_mwbb:' => '1f468-1f469-1f466-1f466',
+ ':family_mwg:' => '1f468-1f469-1f467',
+ ':family_mwgb:' => '1f468-1f469-1f467-1f466',
+ ':family_mwgg:' => '1f468-1f469-1f467-1f467',
+ ':family_wwb:' => '1f469-1f469-1f466',
+ ':family_wwbb:' => '1f469-1f469-1f466-1f466',
+ ':family_wwg:' => '1f469-1f469-1f467',
+ ':family_wwgb:' => '1f469-1f469-1f467-1f466',
+ ':family_wwgg:' => '1f469-1f469-1f467-1f467',
+ ':couple_ww:' => '1f469-2764-1f469',
+ ':couple_with_heart_ww:' => '1f469-2764-1f469',
+ ':couple_mm:' => '1f468-2764-1f468',
+ ':couple_with_heart_mm:' => '1f468-2764-1f468',
+ ':kiss_ww:' => '1f469-2764-1f48b-1f469',
+ ':couplekiss_ww:' => '1f469-2764-1f48b-1f469',
+ ':kiss_mm:' => '1f468-2764-1f48b-1f468',
+ ':couplekiss_mm:' => '1f468-2764-1f48b-1f468',
+ ':tone1:' => '1f3fb',
+ ':tone2:' => '1f3fc',
+ ':tone3:' => '1f3fd',
+ ':tone4:' => '1f3fe',
+ ':tone5:' => '1f3ff',
+ ':asterisk:' => '002a-20e3',
+ ':keycap_asterisk:' => '002a-20e3',
+ ':eject:' => '23cf',
+ ':eject_symbol:' => '23cf',
+ ':track_next:' => '23ed',
+ ':next_track:' => '23ed',
+ ':track_previous:' => '23ee',
+ ':previous_track:' => '23ee',
+ ':play_pause:' => '23ef',
+ ':eye_in_speech_bubble:' => '1f441-1f5e8',
+ ':stopwatch:' => '23f1',
+ ':timer:' => '23f2',
+ ':timer_clock:' => '23f2',
+ ':pause_button:' => '23f8',
+ ':double_vertical_bar:' => '23f8',
+ ':stop_button:' => '23f9',
+ ':record_button:' => '23fa',
+ ':umbrella2:' => '2602',
+ ':snowman2:' => '2603',
+ ':comet:' => '2604',
+ ':shamrock:' => '2618',
+ ':skull_crossbones:' => '2620',
+ ':skull_and_crossbones:' => '2620',
+ ':radioactive:' => '2622',
+ ':radioactive_sign:' => '2622',
+ ':biohazard:' => '2623',
+ ':biohazard_sign:' => '2623',
+ ':orthodox_cross:' => '2626',
+ ':star_and_crescent:' => '262a',
+ ':peace:' => '262e',
+ ':peace_symbol:' => '262e',
+ ':yin_yang:' => '262f',
+ ':wheel_of_dharma:' => '2638',
+ ':frowning2:' => '2639',
+ ':white_frowning_face:' => '2639',
+ ':hammer_pick:' => '2692',
+ ':hammer_and_pick:' => '2692',
+ ':crossed_swords:' => '2694',
+ ':scales:' => '2696',
+ ':alembic:' => '2697',
+ ':gear:' => '2699',
+ ':atom:' => '269b',
+ ':atom_symbol:' => '269b',
+ ':fleur-de-lis:' => '269c',
+ ':coffin:' => '26b0',
+ ':urn:' => '26b1',
+ ':funeral_urn:' => '26b1',
+ ':thunder_cloud_rain:' => '26c8',
+ ':thunder_cloud_and_rain:' => '26c8',
+ ':pick:' => '26cf',
+ ':helmet_with_cross:' => '26d1',
+ ':helmet_with_white_cross:' => '26d1',
+ ':chains:' => '26d3',
+ ':shinto_shrine:' => '26e9',
+ ':mountain:' => '26f0',
+ ':beach_umbrella:' => '26f1',
+ ':umbrella_on_ground:' => '26f1',
+ ':ferry:' => '26f4',
+ ':skier:' => '26f7',
+ ':ice_skate:' => '26f8',
+ ':basketball_player:' => '26f9',
+ ':person_with_ball:' => '26f9',
+ ':star_of_david:' => '2721',
+ ':heart_exclamation:' => '2763',
+ ':heavy_heart_exclamation_mark_ornament:' => '2763',
+ ':white_sun_small_cloud:' => '1f324',
+ ':white_sun_with_small_cloud:' => '1f324',
+ ':white_sun_cloud:' => '1f325',
+ ':white_sun_behind_cloud:' => '1f325',
+ ':white_sun_rain_cloud:' => '1f326',
+ ':white_sun_behind_cloud_with_rain:' => '1f326',
+ ':mouse_three_button:' => '1f5b1',
+ ':three_button_mouse:' => '1f5b1',
+ ':santa_tone1:' => '1f385-1f3fb',
+ ':santa_tone2:' => '1f385-1f3fc',
+ ':santa_tone3:' => '1f385-1f3fd',
+ ':santa_tone4:' => '1f385-1f3fe',
+ ':santa_tone5:' => '1f385-1f3ff',
+ ':metal_tone1:' => '1f918-1f3fb',
+ ':sign_of_the_horns_tone1:' => '1f918-1f3fb',
+ ':metal_tone2:' => '1f918-1f3fc',
+ ':sign_of_the_horns_tone2:' => '1f918-1f3fc',
+ ':metal_tone3:' => '1f918-1f3fd',
+ ':sign_of_the_horns_tone3:' => '1f918-1f3fd',
+ ':metal_tone4:' => '1f918-1f3fe',
+ ':sign_of_the_horns_tone4:' => '1f918-1f3fe',
+ ':metal_tone5:' => '1f918-1f3ff',
+ ':sign_of_the_horns_tone5:' => '1f918-1f3ff',
+ ':lifter_tone1:' => '1f3cb-1f3fb',
+ ':weight_lifter_tone1:' => '1f3cb-1f3fb',
+ ':lifter_tone2:' => '1f3cb-1f3fc',
+ ':weight_lifter_tone2:' => '1f3cb-1f3fc',
+ ':lifter_tone3:' => '1f3cb-1f3fd',
+ ':weight_lifter_tone3:' => '1f3cb-1f3fd',
+ ':lifter_tone4:' => '1f3cb-1f3fe',
+ ':weight_lifter_tone4:' => '1f3cb-1f3fe',
+ ':lifter_tone5:' => '1f3cb-1f3ff',
+ ':weight_lifter_tone5:' => '1f3cb-1f3ff',
+ ':basketball_player_tone1:' => '26f9-1f3fb',
+ ':person_with_ball_tone1:' => '26f9-1f3fb',
+ ':basketball_player_tone2:' => '26f9-1f3fc',
+ ':person_with_ball_tone2:' => '26f9-1f3fc',
+ ':basketball_player_tone3:' => '26f9-1f3fd',
+ ':person_with_ball_tone3:' => '26f9-1f3fd',
+ ':basketball_player_tone4:' => '26f9-1f3fe',
+ ':person_with_ball_tone4:' => '26f9-1f3fe',
+ ':basketball_player_tone5:' => '26f9-1f3ff',
+ ':person_with_ball_tone5:' => '26f9-1f3ff',
+ ':upside_down:' => '1f643',
+ ':upside_down_face:' => '1f643',
+ ':money_mouth:' => '1f911',
+ ':money_mouth_face:' => '1f911',
+ ':nerd:' => '1f913',
+ ':nerd_face:' => '1f913',
+ ':hugging:' => '1f917',
+ ':hugging_face:' => '1f917',
+ ':rolling_eyes:' => '1f644',
+ ':face_with_rolling_eyes:' => '1f644',
+ ':thinking:' => '1f914',
+ ':thinking_face:' => '1f914',
+ ':zipper_mouth:' => '1f910',
+ ':zipper_mouth_face:' => '1f910',
+ ':thermometer_face:' => '1f912',
+ ':face_with_thermometer:' => '1f912',
+ ':head_bandage:' => '1f915',
+ ':face_with_head_bandage:' => '1f915',
+ ':robot:' => '1f916',
+ ':robot_face:' => '1f916',
+ ':lion_face:' => '1f981',
+ ':lion:' => '1f981',
+ ':unicorn:' => '1f984',
+ ':unicorn_face:' => '1f984',
+ ':scorpion:' => '1f982',
+ ':crab:' => '1f980',
+ ':turkey:' => '1f983',
+ ':cheese:' => '1f9c0',
+ ':cheese_wedge:' => '1f9c0',
+ ':hotdog:' => '1f32d',
+ ':hot_dog:' => '1f32d',
+ ':taco:' => '1f32e',
+ ':burrito:' => '1f32f',
+ ':popcorn:' => '1f37f',
+ ':champagne:' => '1f37e',
+ ':bottle_with_popping_cork:' => '1f37e',
+ ':bow_and_arrow:' => '1f3f9',
+ ':archery:' => '1f3f9',
+ ':amphora:' => '1f3fa',
+ ':place_of_worship:' => '1f6d0',
+ ':worship_symbol:' => '1f6d0',
+ ':kaaba:' => '1f54b',
+ ':mosque:' => '1f54c',
+ ':synagogue:' => '1f54d',
+ ':menorah:' => '1f54e',
+ ':prayer_beads:' => '1f4ff',
+ ':cricket:' => '1f3cf',
+ ':cricket_bat_ball:' => '1f3cf',
+ ':volleyball:' => '1f3d0',
+ ':field_hockey:' => '1f3d1',
+ ':hockey:' => '1f3d2',
+ ':ping_pong:' => '1f3d3',
+ ':table_tennis:' => '1f3d3',
+ ':badminton:' => '1f3f8',
+ ':flag_ax:' => '1f1e6-1f1fd',
+ ':ax:' => '1f1e6-1f1fd',
+ ':flag_ta:' => '1f1f9-1f1e6',
+ ':ta:' => '1f1f9-1f1e6',
+ ':flag_io:' => '1f1ee-1f1f4',
+ ':io:' => '1f1ee-1f1f4',
+ ':flag_bq:' => '1f1e7-1f1f6',
+ ':bq:' => '1f1e7-1f1f6',
+ ':flag_cx:' => '1f1e8-1f1fd',
+ ':cx:' => '1f1e8-1f1fd',
+ ':flag_cc:' => '1f1e8-1f1e8',
+ ':cc:' => '1f1e8-1f1e8',
+ ':flag_gg:' => '1f1ec-1f1ec',
+ ':gg:' => '1f1ec-1f1ec',
+ ':flag_im:' => '1f1ee-1f1f2',
+ ':im:' => '1f1ee-1f1f2',
+ ':flag_yt:' => '1f1fe-1f1f9',
+ ':yt:' => '1f1fe-1f1f9',
+ ':flag_nf:' => '1f1f3-1f1eb',
+ ':nf:' => '1f1f3-1f1eb',
+ ':flag_pn:' => '1f1f5-1f1f3',
+ ':pn:' => '1f1f5-1f1f3',
+ ':flag_bl:' => '1f1e7-1f1f1',
+ ':bl:' => '1f1e7-1f1f1',
+ ':flag_pm:' => '1f1f5-1f1f2',
+ ':pm:' => '1f1f5-1f1f2',
+ ':flag_gs:' => '1f1ec-1f1f8',
+ ':gs:' => '1f1ec-1f1f8',
+ ':flag_tk:' => '1f1f9-1f1f0',
+ ':tk:' => '1f1f9-1f1f0',
+ ':flag_bv:' => '1f1e7-1f1fb',
+ ':bv:' => '1f1e7-1f1fb',
+ ':flag_hm:' => '1f1ed-1f1f2',
+ ':hm:' => '1f1ed-1f1f2',
+ ':flag_sj:' => '1f1f8-1f1ef',
+ ':sj:' => '1f1f8-1f1ef',
+ ':flag_um:' => '1f1fa-1f1f2',
+ ':um:' => '1f1fa-1f1f2',
+ ':flag_ic:' => '1f1ee-1f1e8',
+ ':ic:' => '1f1ee-1f1e8',
+ ':flag_ea:' => '1f1ea-1f1e6',
+ ':ea:' => '1f1ea-1f1e6',
+ ':flag_cp:' => '1f1e8-1f1f5',
+ ':cp:' => '1f1e8-1f1f5',
+ ':flag_dg:' => '1f1e9-1f1ec',
+ ':dg:' => '1f1e9-1f1ec',
+ ':flag_as:' => '1f1e6-1f1f8',
+ ':as:' => '1f1e6-1f1f8',
+ ':flag_aq:' => '1f1e6-1f1f6',
+ ':aq:' => '1f1e6-1f1f6',
+ ':flag_vg:' => '1f1fb-1f1ec',
+ ':vg:' => '1f1fb-1f1ec',
+ ':flag_ck:' => '1f1e8-1f1f0',
+ ':ck:' => '1f1e8-1f1f0',
+ ':flag_cw:' => '1f1e8-1f1fc',
+ ':cw:' => '1f1e8-1f1fc',
+ ':flag_eu:' => '1f1ea-1f1fa',
+ ':eu:' => '1f1ea-1f1fa',
+ ':flag_gf:' => '1f1ec-1f1eb',
+ ':gf:' => '1f1ec-1f1eb',
+ ':flag_tf:' => '1f1f9-1f1eb',
+ ':tf:' => '1f1f9-1f1eb',
+ ':flag_gp:' => '1f1ec-1f1f5',
+ ':gp:' => '1f1ec-1f1f5',
+ ':flag_mq:' => '1f1f2-1f1f6',
+ ':mq:' => '1f1f2-1f1f6',
+ ':flag_mp:' => '1f1f2-1f1f5',
+ ':mp:' => '1f1f2-1f1f5',
+ ':flag_re:' => '1f1f7-1f1ea',
+ ':re:' => '1f1f7-1f1ea',
+ ':flag_sx:' => '1f1f8-1f1fd',
+ ':sx:' => '1f1f8-1f1fd',
+ ':flag_ss:' => '1f1f8-1f1f8',
+ ':ss:' => '1f1f8-1f1f8',
+ ':flag_tc:' => '1f1f9-1f1e8',
+ ':tc:' => '1f1f9-1f1e8',
+ ':flag_mf:' => '1f1f2-1f1eb',
+ ':mf:' => '1f1f2-1f1eb',
+ ':spy_tone1:' => '1f575-1f3fb',
+ ':sleuth_or_spy_tone1:' => '1f575-1f3fb',
+ ':spy_tone2:' => '1f575-1f3fc',
+ ':sleuth_or_spy_tone2:' => '1f575-1f3fc',
+ ':spy_tone3:' => '1f575-1f3fd',
+ ':sleuth_or_spy_tone3:' => '1f575-1f3fd',
+ ':spy_tone4:' => '1f575-1f3fe',
+ ':sleuth_or_spy_tone4:' => '1f575-1f3fe',
+ ':spy_tone5:' => '1f575-1f3ff',
+ ':sleuth_or_spy_tone5:' => '1f575-1f3ff',
+ ':drum:' => '1f941',
+ ':drum_with_drumsticks:' => '1f941',
+ ':shrimp:' => '1f990',
+ ':squid:' => '1f991',
+ ':egg:' => '1f95a',
+ ':milk:' => '1f95b',
+ ':glass_of_milk:' => '1f95b',
+ ':peanuts:' => '1f95c',
+ ':shelled_peanut:' => '1f95c',
+ ':kiwi:' => '1f95d',
+ ':kiwifruit:' => '1f95d',
+ ':pancakes:' => '1f95e',
+ ':regional_indicator_w:' => '1f1fc',
+ ':regional_indicator_v:' => '1f1fb',
+ ':regional_indicator_u:' => '1f1fa',
+ ':regional_indicator_t:' => '1f1f9',
+ ':regional_indicator_s:' => '1f1f8',
+ ':regional_indicator_r:' => '1f1f7',
+ ':regional_indicator_q:' => '1f1f6',
+ ':regional_indicator_p:' => '1f1f5',
+ ':regional_indicator_o:' => '1f1f4',
+ ':regional_indicator_n:' => '1f1f3',
+ ':regional_indicator_m:' => '1f1f2',
+ ':regional_indicator_l:' => '1f1f1',
+ ':regional_indicator_k:' => '1f1f0',
+ ':regional_indicator_j:' => '1f1ef',
+ ':regional_indicator_i:' => '1f1ee',
+ ':regional_indicator_h:' => '1f1ed',
+ ':regional_indicator_g:' => '1f1ec',
+ ':regional_indicator_f:' => '1f1eb',
+ ':regional_indicator_e:' => '1f1ea',
+ ':regional_indicator_d:' => '1f1e9',
+ ':regional_indicator_c:' => '1f1e8',
+ ':regional_indicator_b:' => '1f1e7',
+ ':regional_indicator_a:' => '1f1e6'
+ );
+
+ protected $ascii_replace = array(
+ '<3' => '2764',
+ '3' => '1f494',
+ ':\')' => '1f602',
+ ':\'-)' => '1f602',
+ ':D' => '1f603',
+ ':-D' => '1f603',
+ '=D' => '1f603',
+ ':)' => '1f642',
+ ':-)' => '1f642',
+ '=]' => '1f642',
+ '=)' => '1f642',
+ ':]' => '1f642',
+ '\':)' => '1f605',
+ '\':-)' => '1f605',
+ '\'=)' => '1f605',
+ '\':D' => '1f605',
+ '\':-D' => '1f605',
+ '\'=D' => '1f605',
+ '>:)' => '1f606',
+ '>;)' => '1f606',
+ '>:-)' => '1f606',
+ '>=)' => '1f606',
+ ';)' => '1f609',
+ ';-)' => '1f609',
+ '*-)' => '1f609',
+ '*)' => '1f609',
+ ';-]' => '1f609',
+ ';]' => '1f609',
+ ';D' => '1f609',
+ ';^)' => '1f609',
+ '\':(' => '1f613',
+ '\':-(' => '1f613',
+ '\'=(' => '1f613',
+ ':*' => '1f618',
+ ':-*' => '1f618',
+ '=*' => '1f618',
+ ':^*' => '1f618',
+ '>:P' => '1f61c',
+ 'X-P' => '1f61c',
+ 'x-p' => '1f61c',
+ '>:[' => '1f61e',
+ ':-(' => '1f61e',
+ ':(' => '1f61e',
+ ':-[' => '1f61e',
+ ':[' => '1f61e',
+ '=(' => '1f61e',
+ '>:(' => '1f620',
+ '>:-(' => '1f620',
+ ':@' => '1f620',
+ ':\'(' => '1f622',
+ ':\'-(' => '1f622',
+ ';(' => '1f622',
+ ';-(' => '1f622',
+ '>.<' => '1f623',
+ 'D:' => '1f628',
+ ':$' => '1f633',
+ '=$' => '1f633',
+ '#-)' => '1f635',
+ '#)' => '1f635',
+ '%-)' => '1f635',
+ '%)' => '1f635',
+ 'X)' => '1f635',
+ 'X-)' => '1f635',
+ '*\\0/*' => '1f646',
+ '\\0/' => '1f646',
+ '*\\O/*' => '1f646',
+ '\\O/' => '1f646',
+ 'O:-)' => '1f607',
+ '0:-3' => '1f607',
+ '0:3' => '1f607',
+ '0:-)' => '1f607',
+ '0:)' => '1f607',
+ '0;^)' => '1f607',
+ 'O:)' => '1f607',
+ 'O;-)' => '1f607',
+ 'O=)' => '1f607',
+ '0;-)' => '1f607',
+ 'O:-3' => '1f607',
+ 'O:3' => '1f607',
+ 'B-)' => '1f60e',
+ 'B)' => '1f60e',
+ '8)' => '1f60e',
+ '8-)' => '1f60e',
+ 'B-D' => '1f60e',
+ '8-D' => '1f60e',
+ '-_-' => '1f611',
+ '-__-' => '1f611',
+ '-___-' => '1f611',
+ '>:\\' => '1f615',
+ '>:/' => '1f615',
+ ':-/' => '1f615',
+ ':-.' => '1f615',
+ ':/' => '1f615',
+ ':\\' => '1f615',
+ '=/' => '1f615',
+ '=\\' => '1f615',
+ ':L' => '1f615',
+ '=L' => '1f615',
+ ':P' => '1f61b',
+ ':-P' => '1f61b',
+ '=P' => '1f61b',
+ ':-p' => '1f61b',
+ ':p' => '1f61b',
+ '=p' => '1f61b',
+ ':-Þ' => '1f61b',
+ ':Þ' => '1f61b',
+ ':þ' => '1f61b',
+ ':-þ' => '1f61b',
+ ':-b' => '1f61b',
+ ':b' => '1f61b',
+ 'd:' => '1f61b',
+ ':-O' => '1f62e',
+ ':O' => '1f62e',
+ ':-o' => '1f62e',
+ ':o' => '1f62e',
+ 'O_O' => '1f62e',
+ '>:O' => '1f62e',
+ ':-X' => '1f636',
+ ':X' => '1f636',
+ ':-#' => '1f636',
+ ':#' => '1f636',
+ '=X' => '1f636',
+ '=x' => '1f636',
+ ':x' => '1f636',
+ ':-x' => '1f636',
+ '=#' => '1f636'
+ );
+
+ protected $unicode_replace = array(
+ ':hash:' => "\x23\xEF\xB8\x8F\xE2\x83\xA3",
+ ':zero:' => "\x30\xEF\xB8\x8F\xE2\x83\xA3",
+ ':one:' => "\x31\xEF\xB8\x8F\xE2\x83\xA3",
+ ':two:' => "\x32\xEF\xB8\x8F\xE2\x83\xA3",
+ ':three:' => "\x33\xEF\xB8\x8F\xE2\x83\xA3",
+ ':four:' => "\x34\xEF\xB8\x8F\xE2\x83\xA3",
+ ':five:' => "\x35\xEF\xB8\x8F\xE2\x83\xA3",
+ ':six:' => "\x36\xEF\xB8\x8F\xE2\x83\xA3",
+ ':seven:' => "\x37\xEF\xB8\x8F\xE2\x83\xA3",
+ ':eight:' => "\x38\xEF\xB8\x8F\xE2\x83\xA3",
+ ':nine:' => "\x39\xEF\xB8\x8F\xE2\x83\xA3",
+ ':copyright:' => "\xC2\xA9\xEF\xB8\x8F",
+ ':registered:' => "\xC2\xAE\xEF\xB8\x8F",
+ ':bangbang:' => "\xE2\x80\xBC\xEF\xB8\x8F",
+ ':interrobang:' => "\xE2\x81\x89\xEF\xB8\x8F",
+ ':tm:' => "\xE2\x84\xA2\xEF\xB8\x8F",
+ ':information_source:' => "\xE2\x84\xB9\xEF\xB8\x8F",
+ ':left_right_arrow:' => "\xE2\x86\x94\xEF\xB8\x8F",
+ ':arrow_up_down:' => "\xE2\x86\x95\xEF\xB8\x8F",
+ ':arrow_upper_left:' => "\xE2\x86\x96\xEF\xB8\x8F",
+ ':third_place:' => "\xF0\x9F\xA5\x89",
+ ':third_place_medal:' => "\xF0\x9F\xA5\x89",
+ ':arrow_upper_right:' => "\xE2\x86\x97\xEF\xB8\x8F",
+ ':arrow_lower_right:' => "\xE2\x86\x98\xEF\xB8\x8F",
+ ':arrow_lower_left:' => "\xE2\x86\x99\xEF\xB8\x8F",
+ ':second_place:' => "\xF0\x9F\xA5\x88",
+ ':second_place_medal:' => "\xF0\x9F\xA5\x88",
+ ':leftwards_arrow_with_hook:' => "\xE2\x86\xA9\xEF\xB8\x8F",
+ ':arrow_right_hook:' => "\xE2\x86\xAA\xEF\xB8\x8F",
+ ':watch:' => "\xE2\x8C\x9A\xEF\xB8\x8F",
+ ':hourglass:' => "\xE2\x8C\x9B\xEF\xB8\x8F",
+ ':fast_forward:' => "\xE2\x8F\xA9",
+ ':rewind:' => "\xE2\x8F\xAA",
+ ':arrow_double_up:' => "\xE2\x8F\xAB",
+ ':arrow_double_down:' => "\xE2\x8F\xAC",
+ ':alarm_clock:' => "\xE2\x8F\xB0",
+ ':hourglass_flowing_sand:' => "\xE2\x8F\xB3",
+ ':m:' => "\xE2\x93\x82\xEF\xB8\x8F",
+ ':black_small_square:' => "\xE2\x96\xAA\xEF\xB8\x8F",
+ ':white_small_square:' => "\xE2\x96\xAB\xEF\xB8\x8F",
+ ':arrow_forward:' => "\xE2\x96\xB6\xEF\xB8\x8F",
+ ':arrow_backward:' => "\xE2\x97\x80\xEF\xB8\x8F",
+ ':white_medium_square:' => "\xE2\x97\xBB\xEF\xB8\x8F",
+ ':black_medium_square:' => "\xE2\x97\xBC\xEF\xB8\x8F",
+ ':white_medium_small_square:' => "\xE2\x97\xBD\xEF\xB8\x8F",
+ ':black_medium_small_square:' => "\xE2\x97\xBE\xEF\xB8\x8F",
+ ':sunny:' => "\xE2\x98\x80\xEF\xB8\x8F",
+ ':cloud:' => "\xE2\x98\x81\xEF\xB8\x8F",
+ ':telephone:' => "\xE2\x98\x8E\xEF\xB8\x8F",
+ ':ballot_box_with_check:' => "\xE2\x98\x91\xEF\xB8\x8F",
+ ':umbrella:' => "\xE2\x98\x94\xEF\xB8\x8F",
+ ':coffee:' => "\xE2\x98\x95\xEF\xB8\x8F",
+ ':point_up:' => "\xE2\x98\x9D\xEF\xB8\x8F",
+ ':relaxed:' => "\xE2\x98\xBA\xEF\xB8\x8F",
+ ':aries:' => "\xE2\x99\x88\xEF\xB8\x8F",
+ ':first_place:' => "\xF0\x9F\xA5\x87",
+ ':first_place_medal:' => "\xF0\x9F\xA5\x87",
+ ':taurus:' => "\xE2\x99\x89\xEF\xB8\x8F",
+ ':fencer:' => "\xF0\x9F\xA4\xBA",
+ ':fencing:' => "\xF0\x9F\xA4\xBA",
+ ':gemini:' => "\xE2\x99\x8A\xEF\xB8\x8F",
+ ':cancer:' => "\xE2\x99\x8B\xEF\xB8\x8F",
+ ':goal:' => "\xF0\x9F\xA5\x85",
+ ':goal_net:' => "\xF0\x9F\xA5\x85",
+ ':leo:' => "\xE2\x99\x8C\xEF\xB8\x8F",
+ ':virgo:' => "\xE2\x99\x8D\xEF\xB8\x8F",
+ ':handball:' => "\xF0\x9F\xA4\xBE",
+ ':libra:' => "\xE2\x99\x8E\xEF\xB8\x8F",
+ ':regional_indicator_z:' => "\xF0\x9F\x87\xBF",
+ ':water_polo:' => "\xF0\x9F\xA4\xBD",
+ ':scorpius:' => "\xE2\x99\x8F\xEF\xB8\x8F",
+ ':sagittarius:' => "\xE2\x99\x90\xEF\xB8\x8F",
+ ':martial_arts_uniform:' => "\xF0\x9F\xA5\x8B",
+ ':karate_uniform:' => "\xF0\x9F\xA5\x8B",
+ ':capricorn:' => "\xE2\x99\x91\xEF\xB8\x8F",
+ ':boxing_glove:' => "\xF0\x9F\xA5\x8A",
+ ':boxing_gloves:' => "\xF0\x9F\xA5\x8A",
+ ':aquarius:' => "\xE2\x99\x92\xEF\xB8\x8F",
+ ':wrestlers:' => "\xF0\x9F\xA4\xBC",
+ ':wrestling:' => "\xF0\x9F\xA4\xBC",
+ ':pisces:' => "\xE2\x99\x93\xEF\xB8\x8F",
+ ':spades:' => "\xE2\x99\xA0\xEF\xB8\x8F",
+ ':clubs:' => "\xE2\x99\xA3\xEF\xB8\x8F",
+ ':hearts:' => "\xE2\x99\xA5\xEF\xB8\x8F",
+ ':diamonds:' => "\xE2\x99\xA6\xEF\xB8\x8F",
+ ':hotsprings:' => "\xE2\x99\xA8\xEF\xB8\x8F",
+ ':recycle:' => "\xE2\x99\xBB\xEF\xB8\x8F",
+ ':juggling:' => "\xF0\x9F\xA4\xB9",
+ ':juggler:' => "\xF0\x9F\xA4\xB9",
+ ':wheelchair:' => "\xE2\x99\xBF\xEF\xB8\x8F",
+ ':anchor:' => "\xE2\x9A\x93\xEF\xB8\x8F",
+ ':warning:' => "\xE2\x9A\xA0\xEF\xB8\x8F",
+ ':zap:' => "\xE2\x9A\xA1\xEF\xB8\x8F",
+ ':white_circle:' => "\xE2\x9A\xAA\xEF\xB8\x8F",
+ ':black_circle:' => "\xE2\x9A\xAB\xEF\xB8\x8F",
+ ':soccer:' => "\xE2\x9A\xBD\xEF\xB8\x8F",
+ ':baseball:' => "\xE2\x9A\xBE\xEF\xB8\x8F",
+ ':snowman:' => "\xE2\x9B\x84\xEF\xB8\x8F",
+ ':partly_sunny:' => "\xE2\x9B\x85\xEF\xB8\x8F",
+ ':ophiuchus:' => "\xE2\x9B\x8E",
+ ':cartwheel:' => "\xF0\x9F\xA4\xB8",
+ ':person_doing_cartwheel:' => "\xF0\x9F\xA4\xB8",
+ ':no_entry:' => "\xE2\x9B\x94\xEF\xB8\x8F",
+ ':church:' => "\xE2\x9B\xAA\xEF\xB8\x8F",
+ ':fountain:' => "\xE2\x9B\xB2\xEF\xB8\x8F",
+ ':canoe:' => "\xF0\x9F\x9B\xB6",
+ ':kayak:' => "\xF0\x9F\x9B\xB6",
+ ':golf:' => "\xE2\x9B\xB3\xEF\xB8\x8F",
+ ':sailboat:' => "\xE2\x9B\xB5\xEF\xB8\x8F",
+ ':tent:' => "\xE2\x9B\xBA\xEF\xB8\x8F",
+ ':fuelpump:' => "\xE2\x9B\xBD\xEF\xB8\x8F",
+ ':scissors:' => "\xE2\x9C\x82\xEF\xB8\x8F",
+ ':white_check_mark:' => "\xE2\x9C\x85",
+ ':airplane:' => "\xE2\x9C\x88\xEF\xB8\x8F",
+ ':envelope:' => "\xE2\x9C\x89\xEF\xB8\x8F",
+ ':fist:' => "\xE2\x9C\x8A",
+ ':raised_hand:' => "\xE2\x9C\x8B",
+ ':v:' => "\xE2\x9C\x8C\xEF\xB8\x8F",
+ ':pencil2:' => "\xE2\x9C\x8F\xEF\xB8\x8F",
+ ':black_nib:' => "\xE2\x9C\x92\xEF\xB8\x8F",
+ ':heavy_check_mark:' => "\xE2\x9C\x94\xEF\xB8\x8F",
+ ':heavy_multiplication_x:' => "\xE2\x9C\x96\xEF\xB8\x8F",
+ ':sparkles:' => "\xE2\x9C\xA8",
+ ':eight_spoked_asterisk:' => "\xE2\x9C\xB3\xEF\xB8\x8F",
+ ':eight_pointed_black_star:' => "\xE2\x9C\xB4\xEF\xB8\x8F",
+ ':snowflake:' => "\xE2\x9D\x84\xEF\xB8\x8F",
+ ':sparkle:' => "\xE2\x9D\x87\xEF\xB8\x8F",
+ ':x:' => "\xE2\x9D\x8C",
+ ':negative_squared_cross_mark:' => "\xE2\x9D\x8E",
+ ':question:' => "\xE2\x9D\x93",
+ ':grey_question:' => "\xE2\x9D\x94",
+ ':motor_scooter:' => "\xF0\x9F\x9B\xB5",
+ ':motorbike:' => "\xF0\x9F\x9B\xB5",
+ ':grey_exclamation:' => "\xE2\x9D\x95",
+ ':exclamation:' => "\xE2\x9D\x97\xEF\xB8\x8F",
+ ':heart:' => "\xE2\x9D\xA4\xEF\xB8\x8F",
+ ':heavy_plus_sign:' => "\xE2\x9E\x95",
+ ':heavy_minus_sign:' => "\xE2\x9E\x96",
+ ':heavy_division_sign:' => "\xE2\x9E\x97",
+ ':arrow_right:' => "\xE2\x9E\xA1\xEF\xB8\x8F",
+ ':curly_loop:' => "\xE2\x9E\xB0",
+ ':arrow_heading_up:' => "\xE2\xA4\xB4\xEF\xB8\x8F",
+ ':arrow_heading_down:' => "\xE2\xA4\xB5\xEF\xB8\x8F",
+ ':arrow_left:' => "\xE2\xAC\x85\xEF\xB8\x8F",
+ ':arrow_up:' => "\xE2\xAC\x86\xEF\xB8\x8F",
+ ':scooter:' => "\xF0\x9F\x9B\xB4",
+ ':arrow_down:' => "\xE2\xAC\x87\xEF\xB8\x8F",
+ ':black_large_square:' => "\xE2\xAC\x9B\xEF\xB8\x8F",
+ ':white_large_square:' => "\xE2\xAC\x9C\xEF\xB8\x8F",
+ ':star:' => "\xE2\xAD\x90\xEF\xB8\x8F",
+ ':o:' => "\xE2\xAD\x95\xEF\xB8\x8F",
+ ':wavy_dash:' => "\xE3\x80\xB0\xEF\xB8\x8F",
+ ':part_alternation_mark:' => "\xE3\x80\xBD\xEF\xB8\x8F",
+ ':congratulations:' => "\xE3\x8A\x97\xEF\xB8\x8F",
+ ':shopping_cart:' => "\xF0\x9F\x9B\x92",
+ ':shopping_trolley:' => "\xF0\x9F\x9B\x92",
+ ':secret:' => "\xE3\x8A\x99\xEF\xB8\x8F",
+ ':mahjong:' => "\xF0\x9F\x80\x84\xEF\xB8\x8F",
+ ':black_joker:' => "\xF0\x9F\x83\x8F",
+ ':a:' => "\xF0\x9F\x85\xB0",
+ ':b:' => "\xF0\x9F\x85\xB1",
+ ':o2:' => "\xF0\x9F\x85\xBE",
+ ':parking:' => "\xF0\x9F\x85\xBF\xEF\xB8\x8F",
+ ':octagonal_sign:' => "\xF0\x9F\x9B\x91",
+ ':stop_sign:' => "\xF0\x9F\x9B\x91",
+ ':ab:' => "\xF0\x9F\x86\x8E",
+ ':cl:' => "\xF0\x9F\x86\x91",
+ ':regional_indicator_y:' => "\xF0\x9F\x87\xBE",
+ ':cool:' => "\xF0\x9F\x86\x92",
+ ':free:' => "\xF0\x9F\x86\x93",
+ ':id:' => "\xF0\x9F\x86\x94",
+ ':new:' => "\xF0\x9F\x86\x95",
+ ':ng:' => "\xF0\x9F\x86\x96",
+ ':ok:' => "\xF0\x9F\x86\x97",
+ ':sos:' => "\xF0\x9F\x86\x98",
+ ':spoon:' => "\xF0\x9F\xA5\x84",
+ ':up:' => "\xF0\x9F\x86\x99",
+ ':vs:' => "\xF0\x9F\x86\x9A",
+ ':flag_cn:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3",
+ ':cn:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3",
+ ':flag_de:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA",
+ ':de:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA",
+ ':flag_es:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8",
+ ':es:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8",
+ ':flag_fr:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7",
+ ':fr:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7",
+ ':flag_gb:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7",
+ ':gb:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7",
+ ':champagne_glass:' => "\xF0\x9F\xA5\x82",
+ ':clinking_glass:' => "\xF0\x9F\xA5\x82",
+ ':tumbler_glass:' => "\xF0\x9F\xA5\x83",
+ ':whisky:' => "\xF0\x9F\xA5\x83",
+ ':flag_it:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9",
+ ':it:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9",
+ ':flag_jp:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5",
+ ':jp:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5",
+ ':flag_kr:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7",
+ ':kr:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7",
+ ':flag_us:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8",
+ ':us:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8",
+ ':flag_ru:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA",
+ ':ru:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA",
+ ':koko:' => "\xF0\x9F\x88\x81",
+ ':sa:' => "\xF0\x9F\x88\x82\xEF\xB8\x8F",
+ ':u7121:' => "\xF0\x9F\x88\x9A\xEF\xB8\x8F",
+ ':u6307:' => "\xF0\x9F\x88\xAF\xEF\xB8\x8F",
+ ':stuffed_flatbread:' => "\xF0\x9F\xA5\x99",
+ ':stuffed_pita:' => "\xF0\x9F\xA5\x99",
+ ':u7981:' => "\xF0\x9F\x88\xB2",
+ ':u7a7a:' => "\xF0\x9F\x88\xB3",
+ ':u5408:' => "\xF0\x9F\x88\xB4",
+ ':u6e80:' => "\xF0\x9F\x88\xB5",
+ ':u6709:' => "\xF0\x9F\x88\xB6",
+ ':shallow_pan_of_food:' => "\xF0\x9F\xA5\x98",
+ ':paella:' => "\xF0\x9F\xA5\x98",
+ ':u6708:' => "\xF0\x9F\x88\xB7\xEF\xB8\x8F",
+ ':u7533:' => "\xF0\x9F\x88\xB8",
+ ':u5272:' => "\xF0\x9F\x88\xB9",
+ ':salad:' => "\xF0\x9F\xA5\x97",
+ ':green_salad:' => "\xF0\x9F\xA5\x97",
+ ':u55b6:' => "\xF0\x9F\x88\xBA",
+ ':ideograph_advantage:' => "\xF0\x9F\x89\x90",
+ ':accept:' => "\xF0\x9F\x89\x91",
+ ':cyclone:' => "\xF0\x9F\x8C\x80",
+ ':french_bread:' => "\xF0\x9F\xA5\x96",
+ ':baguette_bread:' => "\xF0\x9F\xA5\x96",
+ ':foggy:' => "\xF0\x9F\x8C\x81",
+ ':closed_umbrella:' => "\xF0\x9F\x8C\x82",
+ ':night_with_stars:' => "\xF0\x9F\x8C\x83",
+ ':sunrise_over_mountains:' => "\xF0\x9F\x8C\x84",
+ ':sunrise:' => "\xF0\x9F\x8C\x85",
+ ':city_dusk:' => "\xF0\x9F\x8C\x86",
+ ':carrot:' => "\xF0\x9F\xA5\x95",
+ ':city_sunset:' => "\xF0\x9F\x8C\x87",
+ ':city_sunrise:' => "\xF0\x9F\x8C\x87",
+ ':rainbow:' => "\xF0\x9F\x8C\x88",
+ ':potato:' => "\xF0\x9F\xA5\x94",
+ ':bridge_at_night:' => "\xF0\x9F\x8C\x89",
+ ':ocean:' => "\xF0\x9F\x8C\x8A",
+ ':volcano:' => "\xF0\x9F\x8C\x8B",
+ ':milky_way:' => "\xF0\x9F\x8C\x8C",
+ ':earth_asia:' => "\xF0\x9F\x8C\x8F",
+ ':new_moon:' => "\xF0\x9F\x8C\x91",
+ ':bacon:' => "\xF0\x9F\xA5\x93",
+ ':first_quarter_moon:' => "\xF0\x9F\x8C\x93",
+ ':waxing_gibbous_moon:' => "\xF0\x9F\x8C\x94",
+ ':full_moon:' => "\xF0\x9F\x8C\x95",
+ ':crescent_moon:' => "\xF0\x9F\x8C\x99",
+ ':first_quarter_moon_with_face:' => "\xF0\x9F\x8C\x9B",
+ ':star2:' => "\xF0\x9F\x8C\x9F",
+ ':cucumber:' => "\xF0\x9F\xA5\x92",
+ ':stars:' => "\xF0\x9F\x8C\xA0",
+ ':chestnut:' => "\xF0\x9F\x8C\xB0",
+ ':avocado:' => "\xF0\x9F\xA5\x91",
+ ':seedling:' => "\xF0\x9F\x8C\xB1",
+ ':palm_tree:' => "\xF0\x9F\x8C\xB4",
+ ':cactus:' => "\xF0\x9F\x8C\xB5",
+ ':tulip:' => "\xF0\x9F\x8C\xB7",
+ ':cherry_blossom:' => "\xF0\x9F\x8C\xB8",
+ ':rose:' => "\xF0\x9F\x8C\xB9",
+ ':hibiscus:' => "\xF0\x9F\x8C\xBA",
+ ':sunflower:' => "\xF0\x9F\x8C\xBB",
+ ':blossom:' => "\xF0\x9F\x8C\xBC",
+ ':corn:' => "\xF0\x9F\x8C\xBD",
+ ':croissant:' => "\xF0\x9F\xA5\x90",
+ ':ear_of_rice:' => "\xF0\x9F\x8C\xBE",
+ ':herb:' => "\xF0\x9F\x8C\xBF",
+ ':four_leaf_clover:' => "\xF0\x9F\x8D\x80",
+ ':maple_leaf:' => "\xF0\x9F\x8D\x81",
+ ':fallen_leaf:' => "\xF0\x9F\x8D\x82",
+ ':leaves:' => "\xF0\x9F\x8D\x83",
+ ':mushroom:' => "\xF0\x9F\x8D\x84",
+ ':tomato:' => "\xF0\x9F\x8D\x85",
+ ':eggplant:' => "\xF0\x9F\x8D\x86",
+ ':grapes:' => "\xF0\x9F\x8D\x87",
+ ':melon:' => "\xF0\x9F\x8D\x88",
+ ':watermelon:' => "\xF0\x9F\x8D\x89",
+ ':tangerine:' => "\xF0\x9F\x8D\x8A",
+ ':wilted_rose:' => "\xF0\x9F\xA5\x80",
+ ':wilted_flower:' => "\xF0\x9F\xA5\x80",
+ ':banana:' => "\xF0\x9F\x8D\x8C",
+ ':pineapple:' => "\xF0\x9F\x8D\x8D",
+ ':apple:' => "\xF0\x9F\x8D\x8E",
+ ':green_apple:' => "\xF0\x9F\x8D\x8F",
+ ':peach:' => "\xF0\x9F\x8D\x91",
+ ':cherries:' => "\xF0\x9F\x8D\x92",
+ ':strawberry:' => "\xF0\x9F\x8D\x93",
+ ':rhino:' => "\xF0\x9F\xA6\x8F",
+ ':rhinoceros:' => "\xF0\x9F\xA6\x8F",
+ ':hamburger:' => "\xF0\x9F\x8D\x94",
+ ':pizza:' => "\xF0\x9F\x8D\x95",
+ ':meat_on_bone:' => "\xF0\x9F\x8D\x96",
+ ':lizard:' => "\xF0\x9F\xA6\x8E",
+ ':poultry_leg:' => "\xF0\x9F\x8D\x97",
+ ':rice_cracker:' => "\xF0\x9F\x8D\x98",
+ ':rice_ball:' => "\xF0\x9F\x8D\x99",
+ ':gorilla:' => "\xF0\x9F\xA6\x8D",
+ ':rice:' => "\xF0\x9F\x8D\x9A",
+ ':curry:' => "\xF0\x9F\x8D\x9B",
+ ':deer:' => "\xF0\x9F\xA6\x8C",
+ ':ramen:' => "\xF0\x9F\x8D\x9C",
+ ':spaghetti:' => "\xF0\x9F\x8D\x9D",
+ ':bread:' => "\xF0\x9F\x8D\x9E",
+ ':fries:' => "\xF0\x9F\x8D\x9F",
+ ':butterfly:' => "\xF0\x9F\xA6\x8B",
+ ':sweet_potato:' => "\xF0\x9F\x8D\xA0",
+ ':dango:' => "\xF0\x9F\x8D\xA1",
+ ':fox:' => "\xF0\x9F\xA6\x8A",
+ ':fox_face:' => "\xF0\x9F\xA6\x8A",
+ ':oden:' => "\xF0\x9F\x8D\xA2",
+ ':sushi:' => "\xF0\x9F\x8D\xA3",
+ ':owl:' => "\xF0\x9F\xA6\x89",
+ ':fried_shrimp:' => "\xF0\x9F\x8D\xA4",
+ ':fish_cake:' => "\xF0\x9F\x8D\xA5",
+ ':shark:' => "\xF0\x9F\xA6\x88",
+ ':icecream:' => "\xF0\x9F\x8D\xA6",
+ ':bat:' => "\xF0\x9F\xA6\x87",
+ ':shaved_ice:' => "\xF0\x9F\x8D\xA7",
+ ':regional_indicator_x:' => "\xF0\x9F\x87\xBD",
+ ':ice_cream:' => "\xF0\x9F\x8D\xA8",
+ ':duck:' => "\xF0\x9F\xA6\x86",
+ ':doughnut:' => "\xF0\x9F\x8D\xA9",
+ ':eagle:' => "\xF0\x9F\xA6\x85",
+ ':cookie:' => "\xF0\x9F\x8D\xAA",
+ ':black_heart:' => "\xF0\x9F\x96\xA4",
+ ':chocolate_bar:' => "\xF0\x9F\x8D\xAB",
+ ':candy:' => "\xF0\x9F\x8D\xAC",
+ ':lollipop:' => "\xF0\x9F\x8D\xAD",
+ ':custard:' => "\xF0\x9F\x8D\xAE",
+ ':pudding:' => "\xF0\x9F\x8D\xAE",
+ ':flan:' => "\xF0\x9F\x8D\xAE",
+ ':honey_pot:' => "\xF0\x9F\x8D\xAF",
+ ':fingers_crossed:' => "\xF0\x9F\xA4\x9E",
+ ':hand_with_index_and_middle_finger_crossed:' => "\xF0\x9F\xA4\x9E",
+ ':cake:' => "\xF0\x9F\x8D\xB0",
+ ':bento:' => "\xF0\x9F\x8D\xB1",
+ ':stew:' => "\xF0\x9F\x8D\xB2",
+ ':handshake:' => "\xF0\x9F\xA4\x9D",
+ ':shaking_hands:' => "\xF0\x9F\xA4\x9D",
+ ':cooking:' => "\xF0\x9F\x8D\xB3",
+ ':fork_and_knife:' => "\xF0\x9F\x8D\xB4",
+ ':tea:' => "\xF0\x9F\x8D\xB5",
+ ':sake:' => "\xF0\x9F\x8D\xB6",
+ ':wine_glass:' => "\xF0\x9F\x8D\xB7",
+ ':cocktail:' => "\xF0\x9F\x8D\xB8",
+ ':tropical_drink:' => "\xF0\x9F\x8D\xB9",
+ ':beer:' => "\xF0\x9F\x8D\xBA",
+ ':beers:' => "\xF0\x9F\x8D\xBB",
+ ':ribbon:' => "\xF0\x9F\x8E\x80",
+ ':gift:' => "\xF0\x9F\x8E\x81",
+ ':birthday:' => "\xF0\x9F\x8E\x82",
+ ':jack_o_lantern:' => "\xF0\x9F\x8E\x83",
+ ':left_facing_fist:' => "\xF0\x9F\xA4\x9B",
+ ':left_fist:' => "\xF0\x9F\xA4\x9B",
+ ':right_facing_fist:' => "\xF0\x9F\xA4\x9C",
+ ':right_fist:' => "\xF0\x9F\xA4\x9C",
+ ':christmas_tree:' => "\xF0\x9F\x8E\x84",
+ ':santa:' => "\xF0\x9F\x8E\x85",
+ ':fireworks:' => "\xF0\x9F\x8E\x86",
+ ':raised_back_of_hand:' => "\xF0\x9F\xA4\x9A",
+ ':back_of_hand:' => "\xF0\x9F\xA4\x9A",
+ ':sparkler:' => "\xF0\x9F\x8E\x87",
+ ':balloon:' => "\xF0\x9F\x8E\x88",
+ ':tada:' => "\xF0\x9F\x8E\x89",
+ ':confetti_ball:' => "\xF0\x9F\x8E\x8A",
+ ':tanabata_tree:' => "\xF0\x9F\x8E\x8B",
+ ':crossed_flags:' => "\xF0\x9F\x8E\x8C",
+ ':call_me:' => "\xF0\x9F\xA4\x99",
+ ':call_me_hand:' => "\xF0\x9F\xA4\x99",
+ ':bamboo:' => "\xF0\x9F\x8E\x8D",
+ ':man_dancing:' => "\xF0\x9F\x95\xBA",
+ ':male_dancer:' => "\xF0\x9F\x95\xBA",
+ ':dolls:' => "\xF0\x9F\x8E\x8E",
+ ':selfie:' => "\xF0\x9F\xA4\xB3",
+ ':flags:' => "\xF0\x9F\x8E\x8F",
+ ':pregnant_woman:' => "\xF0\x9F\xA4\xB0",
+ ':expecting_woman:' => "\xF0\x9F\xA4\xB0",
+ ':wind_chime:' => "\xF0\x9F\x8E\x90",
+ ':face_palm:' => "\xF0\x9F\xA4\xA6",
+ ':facepalm:' => "\xF0\x9F\xA4\xA6",
+ ':shrug:' => "\xF0\x9F\xA4\xB7",
+ ':rice_scene:' => "\xF0\x9F\x8E\x91",
+ ':school_satchel:' => "\xF0\x9F\x8E\x92",
+ ':mortar_board:' => "\xF0\x9F\x8E\x93",
+ ':carousel_horse:' => "\xF0\x9F\x8E\xA0",
+ ':ferris_wheel:' => "\xF0\x9F\x8E\xA1",
+ ':roller_coaster:' => "\xF0\x9F\x8E\xA2",
+ ':fishing_pole_and_fish:' => "\xF0\x9F\x8E\xA3",
+ ':microphone:' => "\xF0\x9F\x8E\xA4",
+ ':movie_camera:' => "\xF0\x9F\x8E\xA5",
+ ':cinema:' => "\xF0\x9F\x8E\xA6",
+ ':headphones:' => "\xF0\x9F\x8E\xA7",
+ ':mrs_claus:' => "\xF0\x9F\xA4\xB6",
+ ':mother_christmas:' => "\xF0\x9F\xA4\xB6",
+ ':art:' => "\xF0\x9F\x8E\xA8",
+ ':man_in_tuxedo:' => "\xF0\x9F\xA4\xB5",
+ ':tophat:' => "\xF0\x9F\x8E\xA9",
+ ':circus_tent:' => "\xF0\x9F\x8E\xAA",
+ ':prince:' => "\xF0\x9F\xA4\xB4",
+ ':ticket:' => "\xF0\x9F\x8E\xAB",
+ ':clapper:' => "\xF0\x9F\x8E\xAC",
+ ':performing_arts:' => "\xF0\x9F\x8E\xAD",
+ ':sneezing_face:' => "\xF0\x9F\xA4\xA7",
+ ':sneeze:' => "\xF0\x9F\xA4\xA7",
+ ':video_game:' => "\xF0\x9F\x8E\xAE",
+ ':dart:' => "\xF0\x9F\x8E\xAF",
+ ':slot_machine:' => "\xF0\x9F\x8E\xB0",
+ ':8ball:' => "\xF0\x9F\x8E\xB1",
+ ':game_die:' => "\xF0\x9F\x8E\xB2",
+ ':bowling:' => "\xF0\x9F\x8E\xB3",
+ ':flower_playing_cards:' => "\xF0\x9F\x8E\xB4",
+ ':lying_face:' => "\xF0\x9F\xA4\xA5",
+ ':liar:' => "\xF0\x9F\xA4\xA5",
+ ':musical_note:' => "\xF0\x9F\x8E\xB5",
+ ':notes:' => "\xF0\x9F\x8E\xB6",
+ ':saxophone:' => "\xF0\x9F\x8E\xB7",
+ ':drooling_face:' => "\xF0\x9F\xA4\xA4",
+ ':drool:' => "\xF0\x9F\xA4\xA4",
+ ':guitar:' => "\xF0\x9F\x8E\xB8",
+ ':musical_keyboard:' => "\xF0\x9F\x8E\xB9",
+ ':trumpet:' => "\xF0\x9F\x8E\xBA",
+ ':rofl:' => "\xF0\x9F\xA4\xA3",
+ ':rolling_on_the_floor_laughing:' => "\xF0\x9F\xA4\xA3",
+ ':violin:' => "\xF0\x9F\x8E\xBB",
+ ':musical_score:' => "\xF0\x9F\x8E\xBC",
+ ':running_shirt_with_sash:' => "\xF0\x9F\x8E\xBD",
+ ':nauseated_face:' => "\xF0\x9F\xA4\xA2",
+ ':sick:' => "\xF0\x9F\xA4\xA2",
+ ':tennis:' => "\xF0\x9F\x8E\xBE",
+ ':ski:' => "\xF0\x9F\x8E\xBF",
+ ':basketball:' => "\xF0\x9F\x8F\x80",
+ ':checkered_flag:' => "\xF0\x9F\x8F\x81",
+ ':clown:' => "\xF0\x9F\xA4\xA1",
+ ':clown_face:' => "\xF0\x9F\xA4\xA1",
+ ':snowboarder:' => "\xF0\x9F\x8F\x82",
+ ':runner:' => "\xF0\x9F\x8F\x83",
+ ':surfer:' => "\xF0\x9F\x8F\x84",
+ ':trophy:' => "\xF0\x9F\x8F\x86",
+ ':football:' => "\xF0\x9F\x8F\x88",
+ ':swimmer:' => "\xF0\x9F\x8F\x8A",
+ ':house:' => "\xF0\x9F\x8F\xA0",
+ ':house_with_garden:' => "\xF0\x9F\x8F\xA1",
+ ':office:' => "\xF0\x9F\x8F\xA2",
+ ':post_office:' => "\xF0\x9F\x8F\xA3",
+ ':hospital:' => "\xF0\x9F\x8F\xA5",
+ ':bank:' => "\xF0\x9F\x8F\xA6",
+ ':atm:' => "\xF0\x9F\x8F\xA7",
+ ':hotel:' => "\xF0\x9F\x8F\xA8",
+ ':love_hotel:' => "\xF0\x9F\x8F\xA9",
+ ':convenience_store:' => "\xF0\x9F\x8F\xAA",
+ ':school:' => "\xF0\x9F\x8F\xAB",
+ ':department_store:' => "\xF0\x9F\x8F\xAC",
+ ':cowboy:' => "\xF0\x9F\xA4\xA0",
+ ':face_with_cowboy_hat:' => "\xF0\x9F\xA4\xA0",
+ ':factory:' => "\xF0\x9F\x8F\xAD",
+ ':izakaya_lantern:' => "\xF0\x9F\x8F\xAE",
+ ':japanese_castle:' => "\xF0\x9F\x8F\xAF",
+ ':european_castle:' => "\xF0\x9F\x8F\xB0",
+ ':snail:' => "\xF0\x9F\x90\x8C",
+ ':snake:' => "\xF0\x9F\x90\x8D",
+ ':racehorse:' => "\xF0\x9F\x90\x8E",
+ ':sheep:' => "\xF0\x9F\x90\x91",
+ ':monkey:' => "\xF0\x9F\x90\x92",
+ ':chicken:' => "\xF0\x9F\x90\x94",
+ ':boar:' => "\xF0\x9F\x90\x97",
+ ':elephant:' => "\xF0\x9F\x90\x98",
+ ':octopus:' => "\xF0\x9F\x90\x99",
+ ':shell:' => "\xF0\x9F\x90\x9A",
+ ':prince_tone1:' => "\xF0\x9F\xA4\xB4\xF0\x9F\x8F\xBB",
+ ':bug:' => "\xF0\x9F\x90\x9B",
+ ':ant:' => "\xF0\x9F\x90\x9C",
+ ':bee:' => "\xF0\x9F\x90\x9D",
+ ':beetle:' => "\xF0\x9F\x90\x9E",
+ ':fish:' => "\xF0\x9F\x90\x9F",
+ ':tropical_fish:' => "\xF0\x9F\x90\xA0",
+ ':blowfish:' => "\xF0\x9F\x90\xA1",
+ ':turtle:' => "\xF0\x9F\x90\xA2",
+ ':hatching_chick:' => "\xF0\x9F\x90\xA3",
+ ':baby_chick:' => "\xF0\x9F\x90\xA4",
+ ':hatched_chick:' => "\xF0\x9F\x90\xA5",
+ ':bird:' => "\xF0\x9F\x90\xA6",
+ ':penguin:' => "\xF0\x9F\x90\xA7",
+ ':koala:' => "\xF0\x9F\x90\xA8",
+ ':poodle:' => "\xF0\x9F\x90\xA9",
+ ':camel:' => "\xF0\x9F\x90\xAB",
+ ':dolphin:' => "\xF0\x9F\x90\xAC",
+ ':mouse:' => "\xF0\x9F\x90\xAD",
+ ':cow:' => "\xF0\x9F\x90\xAE",
+ ':tiger:' => "\xF0\x9F\x90\xAF",
+ ':rabbit:' => "\xF0\x9F\x90\xB0",
+ ':cat:' => "\xF0\x9F\x90\xB1",
+ ':dragon_face:' => "\xF0\x9F\x90\xB2",
+ ':whale:' => "\xF0\x9F\x90\xB3",
+ ':horse:' => "\xF0\x9F\x90\xB4",
+ ':monkey_face:' => "\xF0\x9F\x90\xB5",
+ ':dog:' => "\xF0\x9F\x90\xB6",
+ ':pig:' => "\xF0\x9F\x90\xB7",
+ ':frog:' => "\xF0\x9F\x90\xB8",
+ ':hamster:' => "\xF0\x9F\x90\xB9",
+ ':wolf:' => "\xF0\x9F\x90\xBA",
+ ':bear:' => "\xF0\x9F\x90\xBB",
+ ':panda_face:' => "\xF0\x9F\x90\xBC",
+ ':pig_nose:' => "\xF0\x9F\x90\xBD",
+ ':feet:' => "\xF0\x9F\x90\xBE",
+ ':paw_prints:' => "\xF0\x9F\x90\xBE",
+ ':prince_tone2:' => "\xF0\x9F\xA4\xB4\xF0\x9F\x8F\xBC",
+ ':eyes:' => "\xF0\x9F\x91\x80",
+ ':ear:' => "\xF0\x9F\x91\x82",
+ ':nose:' => "\xF0\x9F\x91\x83",
+ ':lips:' => "\xF0\x9F\x91\x84",
+ ':tongue:' => "\xF0\x9F\x91\x85",
+ ':prince_tone3:' => "\xF0\x9F\xA4\xB4\xF0\x9F\x8F\xBD",
+ ':point_up_2:' => "\xF0\x9F\x91\x86",
+ ':point_down:' => "\xF0\x9F\x91\x87",
+ ':point_left:' => "\xF0\x9F\x91\x88",
+ ':point_right:' => "\xF0\x9F\x91\x89",
+ ':punch:' => "\xF0\x9F\x91\x8A",
+ ':wave:' => "\xF0\x9F\x91\x8B",
+ ':ok_hand:' => "\xF0\x9F\x91\x8C",
+ ':thumbsup:' => "\xF0\x9F\x91\x8D",
+ ':+1:' => "\xF0\x9F\x91\x8D",
+ ':thumbup:' => "\xF0\x9F\x91\x8D",
+ ':thumbsdown:' => "\xF0\x9F\x91\x8E",
+ ':-1:' => "\xF0\x9F\x91\x8E",
+ ':thumbdown:' => "\xF0\x9F\x91\x8E",
+ ':clap:' => "\xF0\x9F\x91\x8F",
+ ':open_hands:' => "\xF0\x9F\x91\x90",
+ ':crown:' => "\xF0\x9F\x91\x91",
+ ':womans_hat:' => "\xF0\x9F\x91\x92",
+ ':eyeglasses:' => "\xF0\x9F\x91\x93",
+ ':necktie:' => "\xF0\x9F\x91\x94",
+ ':shirt:' => "\xF0\x9F\x91\x95",
+ ':prince_tone4:' => "\xF0\x9F\xA4\xB4\xF0\x9F\x8F\xBE",
+ ':jeans:' => "\xF0\x9F\x91\x96",
+ ':dress:' => "\xF0\x9F\x91\x97",
+ ':kimono:' => "\xF0\x9F\x91\x98",
+ ':prince_tone5:' => "\xF0\x9F\xA4\xB4\xF0\x9F\x8F\xBF",
+ ':bikini:' => "\xF0\x9F\x91\x99",
+ ':womans_clothes:' => "\xF0\x9F\x91\x9A",
+ ':purse:' => "\xF0\x9F\x91\x9B",
+ ':handbag:' => "\xF0\x9F\x91\x9C",
+ ':pouch:' => "\xF0\x9F\x91\x9D",
+ ':mans_shoe:' => "\xF0\x9F\x91\x9E",
+ ':athletic_shoe:' => "\xF0\x9F\x91\x9F",
+ ':high_heel:' => "\xF0\x9F\x91\xA0",
+ ':sandal:' => "\xF0\x9F\x91\xA1",
+ ':boot:' => "\xF0\x9F\x91\xA2",
+ ':footprints:' => "\xF0\x9F\x91\xA3",
+ ':bust_in_silhouette:' => "\xF0\x9F\x91\xA4",
+ ':mrs_claus_tone1:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBB",
+ ':mother_christmas_tone1:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBB",
+ ':boy:' => "\xF0\x9F\x91\xA6",
+ ':girl:' => "\xF0\x9F\x91\xA7",
+ ':man:' => "\xF0\x9F\x91\xA8",
+ ':woman:' => "\xF0\x9F\x91\xA9",
+ ':family:' => "\xF0\x9F\x91\xAA",
+ ':couple:' => "\xF0\x9F\x91\xAB",
+ ':cop:' => "\xF0\x9F\x91\xAE",
+ ':dancers:' => "\xF0\x9F\x91\xAF",
+ ':bride_with_veil:' => "\xF0\x9F\x91\xB0",
+ ':person_with_blond_hair:' => "\xF0\x9F\x91\xB1",
+ ':man_with_gua_pi_mao:' => "\xF0\x9F\x91\xB2",
+ ':man_with_turban:' => "\xF0\x9F\x91\xB3",
+ ':older_man:' => "\xF0\x9F\x91\xB4",
+ ':older_woman:' => "\xF0\x9F\x91\xB5",
+ ':grandma:' => "\xF0\x9F\x91\xB5",
+ ':baby:' => "\xF0\x9F\x91\xB6",
+ ':construction_worker:' => "\xF0\x9F\x91\xB7",
+ ':princess:' => "\xF0\x9F\x91\xB8",
+ ':japanese_ogre:' => "\xF0\x9F\x91\xB9",
+ ':mrs_claus_tone2:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBC",
+ ':mother_christmas_tone2:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBC",
+ ':japanese_goblin:' => "\xF0\x9F\x91\xBA",
+ ':ghost:' => "\xF0\x9F\x91\xBB",
+ ':angel:' => "\xF0\x9F\x91\xBC",
+ ':alien:' => "\xF0\x9F\x91\xBD",
+ ':space_invader:' => "\xF0\x9F\x91\xBE",
+ ':mrs_claus_tone3:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBD",
+ ':mother_christmas_tone3:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBD",
+ ':imp:' => "\xF0\x9F\x91\xBF",
+ ':skull:' => "\xF0\x9F\x92\x80",
+ ':skeleton:' => "\xF0\x9F\x92\x80",
+ ':card_index:' => "\xF0\x9F\x93\x87",
+ ':information_desk_person:' => "\xF0\x9F\x92\x81",
+ ':guardsman:' => "\xF0\x9F\x92\x82",
+ ':dancer:' => "\xF0\x9F\x92\x83",
+ ':lipstick:' => "\xF0\x9F\x92\x84",
+ ':nail_care:' => "\xF0\x9F\x92\x85",
+ ':ledger:' => "\xF0\x9F\x93\x92",
+ ':massage:' => "\xF0\x9F\x92\x86",
+ ':notebook:' => "\xF0\x9F\x93\x93",
+ ':haircut:' => "\xF0\x9F\x92\x87",
+ ':notebook_with_decorative_cover:' => "\xF0\x9F\x93\x94",
+ ':barber:' => "\xF0\x9F\x92\x88",
+ ':closed_book:' => "\xF0\x9F\x93\x95",
+ ':syringe:' => "\xF0\x9F\x92\x89",
+ ':book:' => "\xF0\x9F\x93\x96",
+ ':pill:' => "\xF0\x9F\x92\x8A",
+ ':green_book:' => "\xF0\x9F\x93\x97",
+ ':kiss:' => "\xF0\x9F\x92\x8B",
+ ':blue_book:' => "\xF0\x9F\x93\x98",
+ ':love_letter:' => "\xF0\x9F\x92\x8C",
+ ':orange_book:' => "\xF0\x9F\x93\x99",
+ ':ring:' => "\xF0\x9F\x92\x8D",
+ ':books:' => "\xF0\x9F\x93\x9A",
+ ':gem:' => "\xF0\x9F\x92\x8E",
+ ':mrs_claus_tone4:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBE",
+ ':mother_christmas_tone4:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBE",
+ ':name_badge:' => "\xF0\x9F\x93\x9B",
+ ':couplekiss:' => "\xF0\x9F\x92\x8F",
+ ':scroll:' => "\xF0\x9F\x93\x9C",
+ ':bouquet:' => "\xF0\x9F\x92\x90",
+ ':pencil:' => "\xF0\x9F\x93\x9D",
+ ':mrs_claus_tone5:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBF",
+ ':mother_christmas_tone5:' => "\xF0\x9F\xA4\xB6\xF0\x9F\x8F\xBF",
+ ':couple_with_heart:' => "\xF0\x9F\x92\x91",
+ ':telephone_receiver:' => "\xF0\x9F\x93\x9E",
+ ':wedding:' => "\xF0\x9F\x92\x92",
+ ':pager:' => "\xF0\x9F\x93\x9F",
+ ':fax:' => "\xF0\x9F\x93\xA0",
+ ':heartbeat:' => "\xF0\x9F\x92\x93",
+ ':satellite:' => "\xF0\x9F\x93\xA1",
+ ':loudspeaker:' => "\xF0\x9F\x93\xA2",
+ ':man_in_tuxedo_tone1:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBB",
+ ':tuxedo_tone1:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBB",
+ ':broken_heart:' => "\xF0\x9F\x92\x94",
+ ':mega:' => "\xF0\x9F\x93\xA3",
+ ':outbox_tray:' => "\xF0\x9F\x93\xA4",
+ ':two_hearts:' => "\xF0\x9F\x92\x95",
+ ':inbox_tray:' => "\xF0\x9F\x93\xA5",
+ ':package:' => "\xF0\x9F\x93\xA6",
+ ':man_in_tuxedo_tone2:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBC",
+ ':tuxedo_tone2:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBC",
+ ':sparkling_heart:' => "\xF0\x9F\x92\x96",
+ ':e-mail:' => "\xF0\x9F\x93\xA7",
+ ':email:' => "\xF0\x9F\x93\xA7",
+ ':incoming_envelope:' => "\xF0\x9F\x93\xA8",
+ ':heartpulse:' => "\xF0\x9F\x92\x97",
+ ':man_in_tuxedo_tone3:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBD",
+ ':tuxedo_tone3:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBD",
+ ':envelope_with_arrow:' => "\xF0\x9F\x93\xA9",
+ ':mailbox_closed:' => "\xF0\x9F\x93\xAA",
+ ':cupid:' => "\xF0\x9F\x92\x98",
+ ':mailbox:' => "\xF0\x9F\x93\xAB",
+ ':man_in_tuxedo_tone4:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBE",
+ ':tuxedo_tone4:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBE",
+ ':postbox:' => "\xF0\x9F\x93\xAE",
+ ':blue_heart:' => "\xF0\x9F\x92\x99",
+ ':newspaper:' => "\xF0\x9F\x93\xB0",
+ ':man_in_tuxedo_tone5:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBF",
+ ':tuxedo_tone5:' => "\xF0\x9F\xA4\xB5\xF0\x9F\x8F\xBF",
+ ':iphone:' => "\xF0\x9F\x93\xB1",
+ ':green_heart:' => "\xF0\x9F\x92\x9A",
+ ':shrug_tone1:' => "\xF0\x9F\xA4\xB7\xF0\x9F\x8F\xBB",
+ ':calling:' => "\xF0\x9F\x93\xB2",
+ ':vibration_mode:' => "\xF0\x9F\x93\xB3",
+ ':yellow_heart:' => "\xF0\x9F\x92\x9B",
+ ':shrug_tone2:' => "\xF0\x9F\xA4\xB7\xF0\x9F\x8F\xBC",
+ ':mobile_phone_off:' => "\xF0\x9F\x93\xB4",
+ ':signal_strength:' => "\xF0\x9F\x93\xB6",
+ ':shrug_tone3:' => "\xF0\x9F\xA4\xB7\xF0\x9F\x8F\xBD",
+ ':purple_heart:' => "\xF0\x9F\x92\x9C",
+ ':shrug_tone4:' => "\xF0\x9F\xA4\xB7\xF0\x9F\x8F\xBE",
+ ':camera:' => "\xF0\x9F\x93\xB7",
+ ':video_camera:' => "\xF0\x9F\x93\xB9",
+ ':gift_heart:' => "\xF0\x9F\x92\x9D",
+ ':tv:' => "\xF0\x9F\x93\xBA",
+ ':shrug_tone5:' => "\xF0\x9F\xA4\xB7\xF0\x9F\x8F\xBF",
+ ':radio:' => "\xF0\x9F\x93\xBB",
+ ':revolving_hearts:' => "\xF0\x9F\x92\x9E",
+ ':vhs:' => "\xF0\x9F\x93\xBC",
+ ':face_palm_tone1:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBB",
+ ':facepalm_tone1:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBB",
+ ':arrows_clockwise:' => "\xF0\x9F\x94\x83",
+ ':heart_decoration:' => "\xF0\x9F\x92\x9F",
+ ':loud_sound:' => "\xF0\x9F\x94\x8A",
+ ':battery:' => "\xF0\x9F\x94\x8B",
+ ':diamond_shape_with_a_dot_inside:' => "\xF0\x9F\x92\xA0",
+ ':electric_plug:' => "\xF0\x9F\x94\x8C",
+ ':mag:' => "\xF0\x9F\x94\x8D",
+ ':face_palm_tone2:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBC",
+ ':facepalm_tone2:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBC",
+ ':bulb:' => "\xF0\x9F\x92\xA1",
+ ':mag_right:' => "\xF0\x9F\x94\x8E",
+ ':lock_with_ink_pen:' => "\xF0\x9F\x94\x8F",
+ ':anger:' => "\xF0\x9F\x92\xA2",
+ ':closed_lock_with_key:' => "\xF0\x9F\x94\x90",
+ ':key:' => "\xF0\x9F\x94\x91",
+ ':bomb:' => "\xF0\x9F\x92\xA3",
+ ':lock:' => "\xF0\x9F\x94\x92",
+ ':unlock:' => "\xF0\x9F\x94\x93",
+ ':zzz:' => "\xF0\x9F\x92\xA4",
+ ':bell:' => "\xF0\x9F\x94\x94",
+ ':bookmark:' => "\xF0\x9F\x94\x96",
+ ':boom:' => "\xF0\x9F\x92\xA5",
+ ':face_palm_tone3:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBD",
+ ':facepalm_tone3:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBD",
+ ':link:' => "\xF0\x9F\x94\x97",
+ ':radio_button:' => "\xF0\x9F\x94\x98",
+ ':sweat_drops:' => "\xF0\x9F\x92\xA6",
+ ':back:' => "\xF0\x9F\x94\x99",
+ ':end:' => "\xF0\x9F\x94\x9A",
+ ':droplet:' => "\xF0\x9F\x92\xA7",
+ ':face_palm_tone4:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBE",
+ ':facepalm_tone4:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBE",
+ ':on:' => "\xF0\x9F\x94\x9B",
+ ':soon:' => "\xF0\x9F\x94\x9C",
+ ':dash:' => "\xF0\x9F\x92\xA8",
+ ':top:' => "\xF0\x9F\x94\x9D",
+ ':underage:' => "\xF0\x9F\x94\x9E",
+ ':poop:' => "\xF0\x9F\x92\xA9",
+ ':shit:' => "\xF0\x9F\x92\xA9",
+ ':hankey:' => "\xF0\x9F\x92\xA9",
+ ':poo:' => "\xF0\x9F\x92\xA9",
+ ':keycap_ten:' => "\xF0\x9F\x94\x9F",
+ ':muscle:' => "\xF0\x9F\x92\xAA",
+ ':capital_abcd:' => "\xF0\x9F\x94\xA0",
+ ':abcd:' => "\xF0\x9F\x94\xA1",
+ ':dizzy:' => "\xF0\x9F\x92\xAB",
+ ':face_palm_tone5:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBF",
+ ':facepalm_tone5:' => "\xF0\x9F\xA4\xA6\xF0\x9F\x8F\xBF",
+ ':1234:' => "\xF0\x9F\x94\xA2",
+ ':symbols:' => "\xF0\x9F\x94\xA3",
+ ':speech_balloon:' => "\xF0\x9F\x92\xAC",
+ ':abc:' => "\xF0\x9F\x94\xA4",
+ ':fire:' => "\xF0\x9F\x94\xA5",
+ ':flame:' => "\xF0\x9F\x94\xA5",
+ ':white_flower:' => "\xF0\x9F\x92\xAE",
+ ':flashlight:' => "\xF0\x9F\x94\xA6",
+ ':wrench:' => "\xF0\x9F\x94\xA7",
+ ':100:' => "\xF0\x9F\x92\xAF",
+ ':hammer:' => "\xF0\x9F\x94\xA8",
+ ':nut_and_bolt:' => "\xF0\x9F\x94\xA9",
+ ':moneybag:' => "\xF0\x9F\x92\xB0",
+ ':knife:' => "\xF0\x9F\x94\xAA",
+ ':gun:' => "\xF0\x9F\x94\xAB",
+ ':currency_exchange:' => "\xF0\x9F\x92\xB1",
+ ':pregnant_woman_tone1:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBB",
+ ':expecting_woman_tone1:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBB",
+ ':crystal_ball:' => "\xF0\x9F\x94\xAE",
+ ':heavy_dollar_sign:' => "\xF0\x9F\x92\xB2",
+ ':six_pointed_star:' => "\xF0\x9F\x94\xAF",
+ ':credit_card:' => "\xF0\x9F\x92\xB3",
+ ':beginner:' => "\xF0\x9F\x94\xB0",
+ ':trident:' => "\xF0\x9F\x94\xB1",
+ ':yen:' => "\xF0\x9F\x92\xB4",
+ ':pregnant_woman_tone2:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBC",
+ ':expecting_woman_tone2:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBC",
+ ':black_square_button:' => "\xF0\x9F\x94\xB2",
+ ':white_square_button:' => "\xF0\x9F\x94\xB3",
+ ':dollar:' => "\xF0\x9F\x92\xB5",
+ ':red_circle:' => "\xF0\x9F\x94\xB4",
+ ':large_blue_circle:' => "\xF0\x9F\x94\xB5",
+ ':money_with_wings:' => "\xF0\x9F\x92\xB8",
+ ':large_orange_diamond:' => "\xF0\x9F\x94\xB6",
+ ':large_blue_diamond:' => "\xF0\x9F\x94\xB7",
+ ':chart:' => "\xF0\x9F\x92\xB9",
+ ':pregnant_woman_tone3:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBD",
+ ':expecting_woman_tone3:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBD",
+ ':small_orange_diamond:' => "\xF0\x9F\x94\xB8",
+ ':small_blue_diamond:' => "\xF0\x9F\x94\xB9",
+ ':seat:' => "\xF0\x9F\x92\xBA",
+ ':small_red_triangle:' => "\xF0\x9F\x94\xBA",
+ ':small_red_triangle_down:' => "\xF0\x9F\x94\xBB",
+ ':computer:' => "\xF0\x9F\x92\xBB",
+ ':arrow_up_small:' => "\xF0\x9F\x94\xBC",
+ ':briefcase:' => "\xF0\x9F\x92\xBC",
+ ':arrow_down_small:' => "\xF0\x9F\x94\xBD",
+ ':clock1:' => "\xF0\x9F\x95\x90",
+ ':minidisc:' => "\xF0\x9F\x92\xBD",
+ ':clock2:' => "\xF0\x9F\x95\x91",
+ ':floppy_disk:' => "\xF0\x9F\x92\xBE",
+ ':pregnant_woman_tone4:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBE",
+ ':expecting_woman_tone4:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBE",
+ ':clock3:' => "\xF0\x9F\x95\x92",
+ ':cd:' => "\xF0\x9F\x92\xBF",
+ ':clock4:' => "\xF0\x9F\x95\x93",
+ ':dvd:' => "\xF0\x9F\x93\x80",
+ ':clock5:' => "\xF0\x9F\x95\x94",
+ ':clock6:' => "\xF0\x9F\x95\x95",
+ ':file_folder:' => "\xF0\x9F\x93\x81",
+ ':clock7:' => "\xF0\x9F\x95\x96",
+ ':clock8:' => "\xF0\x9F\x95\x97",
+ ':open_file_folder:' => "\xF0\x9F\x93\x82",
+ ':clock9:' => "\xF0\x9F\x95\x98",
+ ':clock10:' => "\xF0\x9F\x95\x99",
+ ':page_with_curl:' => "\xF0\x9F\x93\x83",
+ ':clock11:' => "\xF0\x9F\x95\x9A",
+ ':clock12:' => "\xF0\x9F\x95\x9B",
+ ':page_facing_up:' => "\xF0\x9F\x93\x84",
+ ':mount_fuji:' => "\xF0\x9F\x97\xBB",
+ ':tokyo_tower:' => "\xF0\x9F\x97\xBC",
+ ':date:' => "\xF0\x9F\x93\x85",
+ ':statue_of_liberty:' => "\xF0\x9F\x97\xBD",
+ ':japan:' => "\xF0\x9F\x97\xBE",
+ ':calendar:' => "\xF0\x9F\x93\x86",
+ ':moyai:' => "\xF0\x9F\x97\xBF",
+ ':grin:' => "\xF0\x9F\x98\x81",
+ ':joy:' => "\xF0\x9F\x98\x82",
+ ':smiley:' => "\xF0\x9F\x98\x83",
+ ':chart_with_upwards_trend:' => "\xF0\x9F\x93\x88",
+ ':smile:' => "\xF0\x9F\x98\x84",
+ ':sweat_smile:' => "\xF0\x9F\x98\x85",
+ ':chart_with_downwards_trend:' => "\xF0\x9F\x93\x89",
+ ':laughing:' => "\xF0\x9F\x98\x86",
+ ':satisfied:' => "\xF0\x9F\x98\x86",
+ ':wink:' => "\xF0\x9F\x98\x89",
+ ':bar_chart:' => "\xF0\x9F\x93\x8A",
+ ':blush:' => "\xF0\x9F\x98\x8A",
+ ':yum:' => "\xF0\x9F\x98\x8B",
+ ':clipboard:' => "\xF0\x9F\x93\x8B",
+ ':relieved:' => "\xF0\x9F\x98\x8C",
+ ':heart_eyes:' => "\xF0\x9F\x98\x8D",
+ ':pushpin:' => "\xF0\x9F\x93\x8C",
+ ':smirk:' => "\xF0\x9F\x98\x8F",
+ ':unamused:' => "\xF0\x9F\x98\x92",
+ ':round_pushpin:' => "\xF0\x9F\x93\x8D",
+ ':sweat:' => "\xF0\x9F\x98\x93",
+ ':pensive:' => "\xF0\x9F\x98\x94",
+ ':paperclip:' => "\xF0\x9F\x93\x8E",
+ ':confounded:' => "\xF0\x9F\x98\x96",
+ ':kissing_heart:' => "\xF0\x9F\x98\x98",
+ ':pregnant_woman_tone5:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBF",
+ ':expecting_woman_tone5:' => "\xF0\x9F\xA4\xB0\xF0\x9F\x8F\xBF",
+ ':straight_ruler:' => "\xF0\x9F\x93\x8F",
+ ':kissing_closed_eyes:' => "\xF0\x9F\x98\x9A",
+ ':stuck_out_tongue_winking_eye:' => "\xF0\x9F\x98\x9C",
+ ':triangular_ruler:' => "\xF0\x9F\x93\x90",
+ ':stuck_out_tongue_closed_eyes:' => "\xF0\x9F\x98\x9D",
+ ':disappointed:' => "\xF0\x9F\x98\x9E",
+ ':bookmark_tabs:' => "\xF0\x9F\x93\x91",
+ ':angry:' => "\xF0\x9F\x98\xA0",
+ ':rage:' => "\xF0\x9F\x98\xA1",
+ ':cry:' => "\xF0\x9F\x98\xA2",
+ ':persevere:' => "\xF0\x9F\x98\xA3",
+ ':triumph:' => "\xF0\x9F\x98\xA4",
+ ':disappointed_relieved:' => "\xF0\x9F\x98\xA5",
+ ':fearful:' => "\xF0\x9F\x98\xA8",
+ ':weary:' => "\xF0\x9F\x98\xA9",
+ ':sleepy:' => "\xF0\x9F\x98\xAA",
+ ':tired_face:' => "\xF0\x9F\x98\xAB",
+ ':sob:' => "\xF0\x9F\x98\xAD",
+ ':cold_sweat:' => "\xF0\x9F\x98\xB0",
+ ':scream:' => "\xF0\x9F\x98\xB1",
+ ':astonished:' => "\xF0\x9F\x98\xB2",
+ ':flushed:' => "\xF0\x9F\x98\xB3",
+ ':dizzy_face:' => "\xF0\x9F\x98\xB5",
+ ':mask:' => "\xF0\x9F\x98\xB7",
+ ':smile_cat:' => "\xF0\x9F\x98\xB8",
+ ':joy_cat:' => "\xF0\x9F\x98\xB9",
+ ':smiley_cat:' => "\xF0\x9F\x98\xBA",
+ ':heart_eyes_cat:' => "\xF0\x9F\x98\xBB",
+ ':smirk_cat:' => "\xF0\x9F\x98\xBC",
+ ':kissing_cat:' => "\xF0\x9F\x98\xBD",
+ ':pouting_cat:' => "\xF0\x9F\x98\xBE",
+ ':crying_cat_face:' => "\xF0\x9F\x98\xBF",
+ ':scream_cat:' => "\xF0\x9F\x99\x80",
+ ':no_good:' => "\xF0\x9F\x99\x85",
+ ':ok_woman:' => "\xF0\x9F\x99\x86",
+ ':bow:' => "\xF0\x9F\x99\x87",
+ ':see_no_evil:' => "\xF0\x9F\x99\x88",
+ ':man_dancing_tone1:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBB",
+ ':male_dancer_tone1:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBB",
+ ':hear_no_evil:' => "\xF0\x9F\x99\x89",
+ ':speak_no_evil:' => "\xF0\x9F\x99\x8A",
+ ':man_dancing_tone2:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBC",
+ ':male_dancer_tone2:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBC",
+ ':raising_hand:' => "\xF0\x9F\x99\x8B",
+ ':raised_hands:' => "\xF0\x9F\x99\x8C",
+ ':person_frowning:' => "\xF0\x9F\x99\x8D",
+ ':person_with_pouting_face:' => "\xF0\x9F\x99\x8E",
+ ':pray:' => "\xF0\x9F\x99\x8F",
+ ':rocket:' => "\xF0\x9F\x9A\x80",
+ ':railway_car:' => "\xF0\x9F\x9A\x83",
+ ':bullettrain_side:' => "\xF0\x9F\x9A\x84",
+ ':bullettrain_front:' => "\xF0\x9F\x9A\x85",
+ ':metro:' => "\xF0\x9F\x9A\x87",
+ ':station:' => "\xF0\x9F\x9A\x89",
+ ':bus:' => "\xF0\x9F\x9A\x8C",
+ ':busstop:' => "\xF0\x9F\x9A\x8F",
+ ':ambulance:' => "\xF0\x9F\x9A\x91",
+ ':fire_engine:' => "\xF0\x9F\x9A\x92",
+ ':police_car:' => "\xF0\x9F\x9A\x93",
+ ':taxi:' => "\xF0\x9F\x9A\x95",
+ ':red_car:' => "\xF0\x9F\x9A\x97",
+ ':blue_car:' => "\xF0\x9F\x9A\x99",
+ ':truck:' => "\xF0\x9F\x9A\x9A",
+ ':ship:' => "\xF0\x9F\x9A\xA2",
+ ':speedboat:' => "\xF0\x9F\x9A\xA4",
+ ':traffic_light:' => "\xF0\x9F\x9A\xA5",
+ ':construction:' => "\xF0\x9F\x9A\xA7",
+ ':rotating_light:' => "\xF0\x9F\x9A\xA8",
+ ':triangular_flag_on_post:' => "\xF0\x9F\x9A\xA9",
+ ':door:' => "\xF0\x9F\x9A\xAA",
+ ':man_dancing_tone3:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBD",
+ ':male_dancer_tone3:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBD",
+ ':no_entry_sign:' => "\xF0\x9F\x9A\xAB",
+ ':smoking:' => "\xF0\x9F\x9A\xAC",
+ ':no_smoking:' => "\xF0\x9F\x9A\xAD",
+ ':bike:' => "\xF0\x9F\x9A\xB2",
+ ':walking:' => "\xF0\x9F\x9A\xB6",
+ ':mens:' => "\xF0\x9F\x9A\xB9",
+ ':womens:' => "\xF0\x9F\x9A\xBA",
+ ':man_dancing_tone4:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBE",
+ ':male_dancer_tone4:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBE",
+ ':restroom:' => "\xF0\x9F\x9A\xBB",
+ ':baby_symbol:' => "\xF0\x9F\x9A\xBC",
+ ':man_dancing_tone5:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBF",
+ ':male_dancer_tone5:' => "\xF0\x9F\x95\xBA\xF0\x9F\x8F\xBF",
+ ':toilet:' => "\xF0\x9F\x9A\xBD",
+ ':wc:' => "\xF0\x9F\x9A\xBE",
+ ':selfie_tone1:' => "\xF0\x9F\xA4\xB3\xF0\x9F\x8F\xBB",
+ ':bath:' => "\xF0\x9F\x9B\x80",
+ ':metal:' => "\xF0\x9F\xA4\x98",
+ ':sign_of_the_horns:' => "\xF0\x9F\xA4\x98",
+ ':grinning:' => "\xF0\x9F\x98\x80",
+ ':innocent:' => "\xF0\x9F\x98\x87",
+ ':smiling_imp:' => "\xF0\x9F\x98\x88",
+ ':sunglasses:' => "\xF0\x9F\x98\x8E",
+ ':neutral_face:' => "\xF0\x9F\x98\x90",
+ ':expressionless:' => "\xF0\x9F\x98\x91",
+ ':confused:' => "\xF0\x9F\x98\x95",
+ ':kissing:' => "\xF0\x9F\x98\x97",
+ ':selfie_tone2:' => "\xF0\x9F\xA4\xB3\xF0\x9F\x8F\xBC",
+ ':kissing_smiling_eyes:' => "\xF0\x9F\x98\x99",
+ ':stuck_out_tongue:' => "\xF0\x9F\x98\x9B",
+ ':worried:' => "\xF0\x9F\x98\x9F",
+ ':frowning:' => "\xF0\x9F\x98\xA6",
+ ':anguished:' => "\xF0\x9F\x98\xA7",
+ ':grimacing:' => "\xF0\x9F\x98\xAC",
+ ':open_mouth:' => "\xF0\x9F\x98\xAE",
+ ':hushed:' => "\xF0\x9F\x98\xAF",
+ ':sleeping:' => "\xF0\x9F\x98\xB4",
+ ':no_mouth:' => "\xF0\x9F\x98\xB6",
+ ':helicopter:' => "\xF0\x9F\x9A\x81",
+ ':steam_locomotive:' => "\xF0\x9F\x9A\x82",
+ ':train2:' => "\xF0\x9F\x9A\x86",
+ ':light_rail:' => "\xF0\x9F\x9A\x88",
+ ':tram:' => "\xF0\x9F\x9A\x8A",
+ ':oncoming_bus:' => "\xF0\x9F\x9A\x8D",
+ ':trolleybus:' => "\xF0\x9F\x9A\x8E",
+ ':minibus:' => "\xF0\x9F\x9A\x90",
+ ':oncoming_police_car:' => "\xF0\x9F\x9A\x94",
+ ':oncoming_taxi:' => "\xF0\x9F\x9A\x96",
+ ':oncoming_automobile:' => "\xF0\x9F\x9A\x98",
+ ':articulated_lorry:' => "\xF0\x9F\x9A\x9B",
+ ':selfie_tone3:' => "\xF0\x9F\xA4\xB3\xF0\x9F\x8F\xBD",
+ ':tractor:' => "\xF0\x9F\x9A\x9C",
+ ':monorail:' => "\xF0\x9F\x9A\x9D",
+ ':mountain_railway:' => "\xF0\x9F\x9A\x9E",
+ ':suspension_railway:' => "\xF0\x9F\x9A\x9F",
+ ':mountain_cableway:' => "\xF0\x9F\x9A\xA0",
+ ':aerial_tramway:' => "\xF0\x9F\x9A\xA1",
+ ':rowboat:' => "\xF0\x9F\x9A\xA3",
+ ':vertical_traffic_light:' => "\xF0\x9F\x9A\xA6",
+ ':selfie_tone4:' => "\xF0\x9F\xA4\xB3\xF0\x9F\x8F\xBE",
+ ':put_litter_in_its_place:' => "\xF0\x9F\x9A\xAE",
+ ':do_not_litter:' => "\xF0\x9F\x9A\xAF",
+ ':selfie_tone5:' => "\xF0\x9F\xA4\xB3\xF0\x9F\x8F\xBF",
+ ':potable_water:' => "\xF0\x9F\x9A\xB0",
+ ':non-potable_water:' => "\xF0\x9F\x9A\xB1",
+ ':no_bicycles:' => "\xF0\x9F\x9A\xB3",
+ ':fingers_crossed_tone1:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBB",
+ ':hand_with_index_and_middle_fingers_crossed_tone1:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBB",
+ ':bicyclist:' => "\xF0\x9F\x9A\xB4",
+ ':mountain_bicyclist:' => "\xF0\x9F\x9A\xB5",
+ ':no_pedestrians:' => "\xF0\x9F\x9A\xB7",
+ ':children_crossing:' => "\xF0\x9F\x9A\xB8",
+ ':shower:' => "\xF0\x9F\x9A\xBF",
+ ':bathtub:' => "\xF0\x9F\x9B\x81",
+ ':passport_control:' => "\xF0\x9F\x9B\x82",
+ ':fingers_crossed_tone2:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBC",
+ ':hand_with_index_and_middle_fingers_crossed_tone2:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBC",
+ ':customs:' => "\xF0\x9F\x9B\x83",
+ ':baggage_claim:' => "\xF0\x9F\x9B\x84",
+ ':fingers_crossed_tone3:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBD",
+ ':hand_with_index_and_middle_fingers_crossed_tone3:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBD",
+ ':left_luggage:' => "\xF0\x9F\x9B\x85",
+ ':earth_africa:' => "\xF0\x9F\x8C\x8D",
+ ':earth_americas:' => "\xF0\x9F\x8C\x8E",
+ ':globe_with_meridians:' => "\xF0\x9F\x8C\x90",
+ ':waxing_crescent_moon:' => "\xF0\x9F\x8C\x92",
+ ':waning_gibbous_moon:' => "\xF0\x9F\x8C\x96",
+ ':last_quarter_moon:' => "\xF0\x9F\x8C\x97",
+ ':waning_crescent_moon:' => "\xF0\x9F\x8C\x98",
+ ':new_moon_with_face:' => "\xF0\x9F\x8C\x9A",
+ ':last_quarter_moon_with_face:' => "\xF0\x9F\x8C\x9C",
+ ':full_moon_with_face:' => "\xF0\x9F\x8C\x9D",
+ ':sun_with_face:' => "\xF0\x9F\x8C\x9E",
+ ':evergreen_tree:' => "\xF0\x9F\x8C\xB2",
+ ':deciduous_tree:' => "\xF0\x9F\x8C\xB3",
+ ':lemon:' => "\xF0\x9F\x8D\x8B",
+ ':fingers_crossed_tone4:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBE",
+ ':hand_with_index_and_middle_fingers_crossed_tone4:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBE",
+ ':pear:' => "\xF0\x9F\x8D\x90",
+ ':baby_bottle:' => "\xF0\x9F\x8D\xBC",
+ ':horse_racing:' => "\xF0\x9F\x8F\x87",
+ ':rugby_football:' => "\xF0\x9F\x8F\x89",
+ ':european_post_office:' => "\xF0\x9F\x8F\xA4",
+ ':rat:' => "\xF0\x9F\x90\x80",
+ ':mouse2:' => "\xF0\x9F\x90\x81",
+ ':ox:' => "\xF0\x9F\x90\x82",
+ ':water_buffalo:' => "\xF0\x9F\x90\x83",
+ ':cow2:' => "\xF0\x9F\x90\x84",
+ ':tiger2:' => "\xF0\x9F\x90\x85",
+ ':leopard:' => "\xF0\x9F\x90\x86",
+ ':rabbit2:' => "\xF0\x9F\x90\x87",
+ ':cat2:' => "\xF0\x9F\x90\x88",
+ ':dragon:' => "\xF0\x9F\x90\x89",
+ ':crocodile:' => "\xF0\x9F\x90\x8A",
+ ':whale2:' => "\xF0\x9F\x90\x8B",
+ ':ram:' => "\xF0\x9F\x90\x8F",
+ ':goat:' => "\xF0\x9F\x90\x90",
+ ':rooster:' => "\xF0\x9F\x90\x93",
+ ':dog2:' => "\xF0\x9F\x90\x95",
+ ':pig2:' => "\xF0\x9F\x90\x96",
+ ':fingers_crossed_tone5:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBF",
+ ':hand_with_index_and_middle_fingers_crossed_tone5:' => "\xF0\x9F\xA4\x9E\xF0\x9F\x8F\xBF",
+ ':dromedary_camel:' => "\xF0\x9F\x90\xAA",
+ ':busts_in_silhouette:' => "\xF0\x9F\x91\xA5",
+ ':two_men_holding_hands:' => "\xF0\x9F\x91\xAC",
+ ':two_women_holding_hands:' => "\xF0\x9F\x91\xAD",
+ ':thought_balloon:' => "\xF0\x9F\x92\xAD",
+ ':euro:' => "\xF0\x9F\x92\xB6",
+ ':call_me_tone1:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBB",
+ ':call_me_hand_tone1:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBB",
+ ':pound:' => "\xF0\x9F\x92\xB7",
+ ':mailbox_with_mail:' => "\xF0\x9F\x93\xAC",
+ ':mailbox_with_no_mail:' => "\xF0\x9F\x93\xAD",
+ ':call_me_tone2:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBC",
+ ':call_me_hand_tone2:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBC",
+ ':postal_horn:' => "\xF0\x9F\x93\xAF",
+ ':no_mobile_phones:' => "\xF0\x9F\x93\xB5",
+ ':twisted_rightwards_arrows:' => "\xF0\x9F\x94\x80",
+ ':repeat:' => "\xF0\x9F\x94\x81",
+ ':repeat_one:' => "\xF0\x9F\x94\x82",
+ ':arrows_counterclockwise:' => "\xF0\x9F\x94\x84",
+ ':call_me_tone3:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBD",
+ ':call_me_hand_tone3:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBD",
+ ':low_brightness:' => "\xF0\x9F\x94\x85",
+ ':high_brightness:' => "\xF0\x9F\x94\x86",
+ ':mute:' => "\xF0\x9F\x94\x87",
+ ':sound:' => "\xF0\x9F\x94\x89",
+ ':no_bell:' => "\xF0\x9F\x94\x95",
+ ':microscope:' => "\xF0\x9F\x94\xAC",
+ ':telescope:' => "\xF0\x9F\x94\xAD",
+ ':clock130:' => "\xF0\x9F\x95\x9C",
+ ':clock230:' => "\xF0\x9F\x95\x9D",
+ ':clock330:' => "\xF0\x9F\x95\x9E",
+ ':clock430:' => "\xF0\x9F\x95\x9F",
+ ':clock530:' => "\xF0\x9F\x95\xA0",
+ ':clock630:' => "\xF0\x9F\x95\xA1",
+ ':clock730:' => "\xF0\x9F\x95\xA2",
+ ':clock830:' => "\xF0\x9F\x95\xA3",
+ ':clock930:' => "\xF0\x9F\x95\xA4",
+ ':clock1030:' => "\xF0\x9F\x95\xA5",
+ ':clock1130:' => "\xF0\x9F\x95\xA6",
+ ':clock1230:' => "\xF0\x9F\x95\xA7",
+ ':speaker:' => "\xF0\x9F\x94\x88",
+ ':train:' => "\xF0\x9F\x9A\x8B",
+ ':loop:' => "\xE2\x9E\xBF",
+ ':flag_af:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAB",
+ ':af:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAB",
+ ':flag_al:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB1",
+ ':al:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB1",
+ ':flag_dz:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xBF",
+ ':dz:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xBF",
+ ':flag_ad:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xA9",
+ ':ad:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xA9",
+ ':flag_ao:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB4",
+ ':ao:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB4",
+ ':flag_ag:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAC",
+ ':ag:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAC",
+ ':flag_ar:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB7",
+ ':ar:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB7",
+ ':flag_am:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB2",
+ ':am:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB2",
+ ':flag_au:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBA",
+ ':au:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBA",
+ ':flag_at:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB9",
+ ':at:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB9",
+ ':flag_az:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBF",
+ ':az:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBF",
+ ':flag_bs:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB8",
+ ':bs:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB8",
+ ':flag_bh:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAD",
+ ':bh:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAD",
+ ':flag_bd:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA9",
+ ':bd:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA9",
+ ':flag_bb:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA7",
+ ':bb:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA7",
+ ':flag_by:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBE",
+ ':by:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBE",
+ ':flag_be:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAA",
+ ':be:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAA",
+ ':flag_bz:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBF",
+ ':bz:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBF",
+ ':flag_bj:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAF",
+ ':bj:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAF",
+ ':flag_bt:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB9",
+ ':bt:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB9",
+ ':flag_bo:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB4",
+ ':bo:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB4",
+ ':flag_ba:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA6",
+ ':ba:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xA6",
+ ':flag_bw:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBC",
+ ':bw:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBC",
+ ':flag_br:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB7",
+ ':br:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB7",
+ ':flag_bn:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB3",
+ ':bn:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB3",
+ ':flag_bg:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAC",
+ ':bg:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAC",
+ ':flag_bf:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAB",
+ ':bf:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAB",
+ ':flag_bi:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAE",
+ ':bi:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xAE",
+ ':flag_kh:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAD",
+ ':kh:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAD",
+ ':flag_cm:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB2",
+ ':cm:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB2",
+ ':flag_ca:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA6",
+ ':ca:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA6",
+ ':flag_cv:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBB",
+ ':cv:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBB",
+ ':call_me_tone4:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBE",
+ ':call_me_hand_tone4:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBE",
+ ':flag_cf:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAB",
+ ':cf:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAB",
+ ':flag_td:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA9",
+ ':td:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA9",
+ ':flag_cl:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB1",
+ ':chile:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB1",
+ ':flag_co:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB4",
+ ':co:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB4",
+ ':flag_km:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB2",
+ ':km:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB2",
+ ':flag_cr:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB7",
+ ':cr:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB7",
+ ':flag_ci:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAE",
+ ':ci:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAE",
+ ':flag_hr:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB7",
+ ':hr:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB7",
+ ':flag_cu:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBA",
+ ':cu:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBA",
+ ':flag_cy:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBE",
+ ':cy:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBE",
+ ':flag_cz:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBF",
+ ':cz:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBF",
+ ':call_me_tone5:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBF",
+ ':call_me_hand_tone5:' => "\xF0\x9F\xA4\x99\xF0\x9F\x8F\xBF",
+ ':flag_cd:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA9",
+ ':congo:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA9",
+ ':left_facing_fist_tone1:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBB",
+ ':left_fist_tone1:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBB",
+ ':flag_dk:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB0",
+ ':dk:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB0",
+ ':flag_dj:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAF",
+ ':dj:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAF",
+ ':flag_dm:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB2",
+ ':dm:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB2",
+ ':flag_do:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB4",
+ ':do:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xB4",
+ ':flag_tl:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB1",
+ ':tl:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB1",
+ ':flag_ec:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xA8",
+ ':ec:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xA8",
+ ':flag_eg:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAC",
+ ':eg:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAC",
+ ':flag_sv:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBB",
+ ':sv:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBB",
+ ':flag_gq:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB6",
+ ':gq:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB6",
+ ':flag_er:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB7",
+ ':er:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB7",
+ ':flag_ee:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAA",
+ ':ee:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAA",
+ ':flag_et:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB9",
+ ':et:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB9",
+ ':left_facing_fist_tone2:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBC",
+ ':left_fist_tone2:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBC",
+ ':flag_fj:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xAF",
+ ':fj:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xAF",
+ ':flag_fi:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xAE",
+ ':fi:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xAE",
+ ':flag_ga:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA6",
+ ':ga:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA6",
+ ':flag_gm:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB2",
+ ':gm:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB2",
+ ':flag_ge:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAA",
+ ':ge:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAA",
+ ':flag_gh:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAD",
+ ':gh:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAD",
+ ':flag_gr:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB7",
+ ':gr:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB7",
+ ':flag_gd:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA9",
+ ':gd:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA9",
+ ':flag_gt:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB9",
+ ':gt:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB9",
+ ':flag_gn:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB3",
+ ':gn:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB3",
+ ':flag_gw:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBC",
+ ':gw:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBC",
+ ':flag_gy:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBE",
+ ':gy:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBE",
+ ':flag_ht:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB9",
+ ':ht:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB9",
+ ':flag_hn:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB3",
+ ':hn:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB3",
+ ':flag_hu:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xBA",
+ ':hu:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xBA",
+ ':flag_is:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB8",
+ ':is:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB8",
+ ':flag_in:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB3",
+ ':in:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB3",
+ ':flag_id:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xA9",
+ ':indonesia:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xA9",
+ ':flag_ir:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB7",
+ ':ir:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB7",
+ ':flag_iq:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB6",
+ ':iq:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB6",
+ ':flag_ie:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xAA",
+ ':ie:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xAA",
+ ':flag_il:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB1",
+ ':il:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB1",
+ ':flag_jm:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB2",
+ ':jm:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB2",
+ ':flag_jo:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB4",
+ ':jo:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB4",
+ ':flag_kz:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBF",
+ ':kz:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBF",
+ ':flag_ke:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAA",
+ ':ke:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAA",
+ ':flag_ki:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAE",
+ ':ki:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAE",
+ ':flag_xk:' => "\xF0\x9F\x87\xBD\xF0\x9F\x87\xB0",
+ ':xk:' => "\xF0\x9F\x87\xBD\xF0\x9F\x87\xB0",
+ ':flag_kw:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBC",
+ ':kw:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBC",
+ ':flag_kg:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAC",
+ ':kg:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xAC",
+ ':left_facing_fist_tone3:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBD",
+ ':left_fist_tone3:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBD",
+ ':flag_la:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA6",
+ ':la:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA6",
+ ':flag_lv:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBB",
+ ':lv:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBB",
+ ':flag_lb:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA7",
+ ':lb:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA7",
+ ':flag_ls:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB8",
+ ':ls:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB8",
+ ':flag_lr:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB7",
+ ':lr:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB7",
+ ':flag_ly:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBE",
+ ':ly:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBE",
+ ':flag_li:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xAE",
+ ':li:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xAE",
+ ':flag_lt:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB9",
+ ':lt:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB9",
+ ':flag_lu:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBA",
+ ':lu:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xBA",
+ ':flag_mk:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB0",
+ ':mk:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB0",
+ ':flag_mg:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAC",
+ ':mg:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAC",
+ ':flag_mw:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBC",
+ ':mw:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBC",
+ ':flag_my:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBE",
+ ':my:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBE",
+ ':flag_mv:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBB",
+ ':mv:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBB",
+ ':flag_ml:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB1",
+ ':ml:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB1",
+ ':flag_mt:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB9",
+ ':mt:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB9",
+ ':flag_mh:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAD",
+ ':mh:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAD",
+ ':flag_mr:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB7",
+ ':mr:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB7",
+ ':flag_mu:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBA",
+ ':mu:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBA",
+ ':flag_mx:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBD",
+ ':mx:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBD",
+ ':flag_fm:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB2",
+ ':fm:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB2",
+ ':flag_md:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA9",
+ ':md:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA9",
+ ':flag_mc:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA8",
+ ':mc:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA8",
+ ':flag_mn:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB3",
+ ':mn:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB3",
+ ':flag_me:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAA",
+ ':me:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAA",
+ ':flag_ma:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA6",
+ ':ma:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xA6",
+ ':flag_mz:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBF",
+ ':mz:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xBF",
+ ':flag_mm:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB2",
+ ':mm:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB2",
+ ':flag_na:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xA6",
+ ':na:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xA6",
+ ':flag_nr:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB7",
+ ':nr:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB7",
+ ':flag_np:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB5",
+ ':np:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB5",
+ ':flag_nl:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB1",
+ ':nl:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB1",
+ ':flag_nz:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xBF",
+ ':nz:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xBF",
+ ':flag_ni:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAE",
+ ':ni:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAE",
+ ':flag_ne:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAA",
+ ':ne:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAA",
+ ':flag_ng:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAC",
+ ':nigeria:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAC",
+ ':flag_kp:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB5",
+ ':kp:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB5",
+ ':flag_no:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB4",
+ ':no:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xB4",
+ ':flag_om:' => "\xF0\x9F\x87\xB4\xF0\x9F\x87\xB2",
+ ':om:' => "\xF0\x9F\x87\xB4\xF0\x9F\x87\xB2",
+ ':flag_pk:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB0",
+ ':pk:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB0",
+ ':flag_pw:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xBC",
+ ':pw:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xBC",
+ ':flag_pa:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xA6",
+ ':pa:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xA6",
+ ':flag_pg:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAC",
+ ':pg:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAC",
+ ':left_facing_fist_tone4:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBE",
+ ':left_fist_tone4:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBE",
+ ':flag_py:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xBE",
+ ':py:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xBE",
+ ':flag_pe:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAA",
+ ':pe:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAA",
+ ':flag_ph:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAD",
+ ':ph:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAD",
+ ':flag_pl:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB1",
+ ':pl:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB1",
+ ':flag_pt:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB9",
+ ':pt:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB9",
+ ':flag_qa:' => "\xF0\x9F\x87\xB6\xF0\x9F\x87\xA6",
+ ':qa:' => "\xF0\x9F\x87\xB6\xF0\x9F\x87\xA6",
+ ':flag_tw:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBC",
+ ':tw:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBC",
+ ':flag_cg:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAC",
+ ':cg:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAC",
+ ':flag_ro:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xB4",
+ ':ro:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xB4",
+ ':flag_rw:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBC",
+ ':rw:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBC",
+ ':flag_kn:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB3",
+ ':kn:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB3",
+ ':flag_lc:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA8",
+ ':lc:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xA8",
+ ':flag_vc:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xA8",
+ ':vc:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xA8",
+ ':flag_ws:' => "\xF0\x9F\x87\xBC\xF0\x9F\x87\xB8",
+ ':ws:' => "\xF0\x9F\x87\xBC\xF0\x9F\x87\xB8",
+ ':flag_sm:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB2",
+ ':sm:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB2",
+ ':flag_st:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB9",
+ ':st:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB9",
+ ':flag_sa:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA6",
+ ':saudiarabia:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA6",
+ ':saudi:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA6",
+ ':left_facing_fist_tone5:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBF",
+ ':left_fist_tone5:' => "\xF0\x9F\xA4\x9B\xF0\x9F\x8F\xBF",
+ ':flag_sn:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB3",
+ ':sn:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB3",
+ ':flag_rs:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xB8",
+ ':rs:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xB8",
+ ':flag_sc:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA8",
+ ':sc:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA8",
+ ':flag_sl:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB1",
+ ':sl:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB1",
+ ':flag_sg:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAC",
+ ':sg:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAC",
+ ':flag_sk:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB0",
+ ':sk:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB0",
+ ':flag_si:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAE",
+ ':si:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAE",
+ ':flag_sb:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA7",
+ ':sb:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA7",
+ ':flag_so:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB4",
+ ':so:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB4",
+ ':flag_za:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xA6",
+ ':za:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xA6",
+ ':flag_lk:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB0",
+ ':lk:' => "\xF0\x9F\x87\xB1\xF0\x9F\x87\xB0",
+ ':flag_sd:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA9",
+ ':sd:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xA9",
+ ':flag_sr:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB7",
+ ':sr:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB7",
+ ':flag_sz:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBF",
+ ':sz:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBF",
+ ':flag_se:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAA",
+ ':se:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAA",
+ ':flag_ch:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAD",
+ ':ch:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xAD",
+ ':flag_sy:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBE",
+ ':sy:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBE",
+ ':flag_tj:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAF",
+ ':tj:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAF",
+ ':flag_tz:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBF",
+ ':tz:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBF",
+ ':flag_th:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAD",
+ ':th:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAD",
+ ':flag_tg:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAC",
+ ':tg:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAC",
+ ':flag_to:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB4",
+ ':to:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB4",
+ ':flag_tt:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB9",
+ ':tt:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB9",
+ ':flag_tn:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB3",
+ ':tn:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB3",
+ ':flag_tr:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB7",
+ ':tr:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB7",
+ ':flag_tm:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB2",
+ ':turkmenistan:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB2",
+ ':flag_tv:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBB",
+ ':tuvalu:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xBB",
+ ':flag_ug:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xAC",
+ ':ug:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xAC",
+ ':flag_ua:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xA6",
+ ':ua:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xA6",
+ ':flag_ae:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAA",
+ ':ae:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAA",
+ ':flag_uy:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xBE",
+ ':uy:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xBE",
+ ':flag_uz:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xBF",
+ ':uz:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xBF",
+ ':flag_vu:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xBA",
+ ':vu:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xBA",
+ ':flag_va:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xA6",
+ ':va:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xA6",
+ ':flag_ve:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAA",
+ ':ve:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAA",
+ ':flag_vn:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xB3",
+ ':vn:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xB3",
+ ':flag_eh:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAD",
+ ':eh:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xAD",
+ ':right_facing_fist_tone1:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBB",
+ ':right_fist_tone1:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBB",
+ ':flag_ye:' => "\xF0\x9F\x87\xBE\xF0\x9F\x87\xAA",
+ ':ye:' => "\xF0\x9F\x87\xBE\xF0\x9F\x87\xAA",
+ ':flag_zm:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xB2",
+ ':zm:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xB2",
+ ':flag_zw:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xBC",
+ ':zw:' => "\xF0\x9F\x87\xBF\xF0\x9F\x87\xBC",
+ ':flag_pr:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB7",
+ ':pr:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB7",
+ ':flag_ky:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBE",
+ ':ky:' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xBE",
+ ':flag_bm:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB2",
+ ':bm:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB2",
+ ':flag_pf:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAB",
+ ':pf:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xAB",
+ ':flag_ps:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB8",
+ ':ps:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB8",
+ ':flag_nc:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xA8",
+ ':nc:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xA8",
+ ':right_facing_fist_tone2:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBC",
+ ':right_fist_tone2:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBC",
+ ':flag_sh:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAD",
+ ':sh:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAD",
+ ':flag_aw:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBC",
+ ':aw:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBC",
+ ':flag_vi:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAE",
+ ':vi:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAE",
+ ':flag_hk:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB0",
+ ':hk:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB0",
+ ':flag_ac:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xA8",
+ ':ac:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xA8",
+ ':flag_ms:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB8",
+ ':ms:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB8",
+ ':flag_gu:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBA",
+ ':gu:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xBA",
+ ':flag_gl:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB1",
+ ':gl:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB1",
+ ':flag_nu:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xBA",
+ ':nu:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xBA",
+ ':flag_wf:' => "\xF0\x9F\x87\xBC\xF0\x9F\x87\xAB",
+ ':wf:' => "\xF0\x9F\x87\xBC\xF0\x9F\x87\xAB",
+ ':flag_mo:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB4",
+ ':mo:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB4",
+ ':right_facing_fist_tone3:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBD",
+ ':right_fist_tone3:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBD",
+ ':flag_fo:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB4",
+ ':fo:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB4",
+ ':flag_fk:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB0",
+ ':fk:' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB0",
+ ':flag_je:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xAA",
+ ':je:' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xAA",
+ ':flag_ai:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAE",
+ ':ai:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xAE",
+ ':flag_gi:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAE",
+ ':gi:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAE",
+ ':film_frames:' => "\xF0\x9F\x8E\x9E\xEF\xB8\x8F",
+ ':tickets:' => "\xF0\x9F\x8E\x9F\xEF\xB8\x8F",
+ ':admission_tickets:' => "\xF0\x9F\x8E\x9F\xEF\xB8\x8F",
+ ':medal:' => "\xF0\x9F\x8F\x85",
+ ':sports_medal:' => "\xF0\x9F\x8F\x85",
+ ':lifter:' => "\xF0\x9F\x8F\x8B\xEF\xB8\x8F",
+ ':weight_lifter:' => "\xF0\x9F\x8F\x8B\xEF\xB8\x8F",
+ ':golfer:' => "\xF0\x9F\x8F\x8C\xEF\xB8\x8F",
+ ':motorcycle:' => "\xF0\x9F\x8F\x8D\xEF\xB8\x8F",
+ ':racing_motorcycle:' => "\xF0\x9F\x8F\x8D\xEF\xB8\x8F",
+ ':race_car:' => "\xF0\x9F\x8F\x8E\xEF\xB8\x8F",
+ ':racing_car:' => "\xF0\x9F\x8F\x8E\xEF\xB8\x8F",
+ ':military_medal:' => "\xF0\x9F\x8E\x96\xEF\xB8\x8F",
+ ':reminder_ribbon:' => "\xF0\x9F\x8E\x97\xEF\xB8\x8F",
+ ':hot_pepper:' => "\xF0\x9F\x8C\xB6\xEF\xB8\x8F",
+ ':right_facing_fist_tone4:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBE",
+ ':right_fist_tone4:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBE",
+ ':cloud_rain:' => "\xF0\x9F\x8C\xA7\xEF\xB8\x8F",
+ ':cloud_with_rain:' => "\xF0\x9F\x8C\xA7\xEF\xB8\x8F",
+ ':cloud_snow:' => "\xF0\x9F\x8C\xA8\xEF\xB8\x8F",
+ ':cloud_with_snow:' => "\xF0\x9F\x8C\xA8\xEF\xB8\x8F",
+ ':cloud_lightning:' => "\xF0\x9F\x8C\xA9\xEF\xB8\x8F",
+ ':cloud_with_lightning:' => "\xF0\x9F\x8C\xA9\xEF\xB8\x8F",
+ ':cloud_tornado:' => "\xF0\x9F\x8C\xAA\xEF\xB8\x8F",
+ ':cloud_with_tornado:' => "\xF0\x9F\x8C\xAA\xEF\xB8\x8F",
+ ':fog:' => "\xF0\x9F\x8C\xAB\xEF\xB8\x8F",
+ ':wind_blowing_face:' => "\xF0\x9F\x8C\xAC\xEF\xB8\x8F",
+ ':chipmunk:' => "\xF0\x9F\x90\xBF\xEF\xB8\x8F",
+ ':spider:' => "\xF0\x9F\x95\xB7\xEF\xB8\x8F",
+ ':spider_web:' => "\xF0\x9F\x95\xB8\xEF\xB8\x8F",
+ ':thermometer:' => "\xF0\x9F\x8C\xA1\xEF\xB8\x8F",
+ ':microphone2:' => "\xF0\x9F\x8E\x99\xEF\xB8\x8F",
+ ':studio_microphone:' => "\xF0\x9F\x8E\x99\xEF\xB8\x8F",
+ ':level_slider:' => "\xF0\x9F\x8E\x9A\xEF\xB8\x8F",
+ ':control_knobs:' => "\xF0\x9F\x8E\x9B\xEF\xB8\x8F",
+ ':flag_white:' => "\xF0\x9F\x8F\xB3\xEF\xB8\x8F",
+ ':waving_white_flag:' => "\xF0\x9F\x8F\xB3\xEF\xB8\x8F",
+ ':flag_black:' => "\xF0\x9F\x8F\xB4",
+ ':waving_black_flag:' => "\xF0\x9F\x8F\xB4",
+ ':rosette:' => "\xF0\x9F\x8F\xB5\xEF\xB8\x8F",
+ ':label:' => "\xF0\x9F\x8F\xB7\xEF\xB8\x8F",
+ ':camera_with_flash:' => "\xF0\x9F\x93\xB8",
+ ':projector:' => "\xF0\x9F\x93\xBD\xEF\xB8\x8F",
+ ':film_projector:' => "\xF0\x9F\x93\xBD\xEF\xB8\x8F",
+ ':cross:' => "\xE2\x9C\x9D\xEF\xB8\x8F",
+ ':latin_cross:' => "\xE2\x9C\x9D\xEF\xB8\x8F",
+ ':om_symbol:' => "\xF0\x9F\x95\x89\xEF\xB8\x8F",
+ ':dove:' => "\xF0\x9F\x95\x8A\xEF\xB8\x8F",
+ ':dove_of_peace:' => "\xF0\x9F\x95\x8A\xEF\xB8\x8F",
+ ':candle:' => "\xF0\x9F\x95\xAF\xEF\xB8\x8F",
+ ':clock:' => "\xF0\x9F\x95\xB0\xEF\xB8\x8F",
+ ':mantlepiece_clock:' => "\xF0\x9F\x95\xB0\xEF\xB8\x8F",
+ ':hole:' => "\xF0\x9F\x95\xB3\xEF\xB8\x8F",
+ ':dark_sunglasses:' => "\xF0\x9F\x95\xB6\xEF\xB8\x8F",
+ ':joystick:' => "\xF0\x9F\x95\xB9\xEF\xB8\x8F",
+ ':paperclips:' => "\xF0\x9F\x96\x87\xEF\xB8\x8F",
+ ':linked_paperclips:' => "\xF0\x9F\x96\x87\xEF\xB8\x8F",
+ ':pen_ballpoint:' => "\xF0\x9F\x96\x8A\xEF\xB8\x8F",
+ ':lower_left_ballpoint_pen:' => "\xF0\x9F\x96\x8A\xEF\xB8\x8F",
+ ':pen_fountain:' => "\xF0\x9F\x96\x8B\xEF\xB8\x8F",
+ ':lower_left_fountain_pen:' => "\xF0\x9F\x96\x8B\xEF\xB8\x8F",
+ ':paintbrush:' => "\xF0\x9F\x96\x8C\xEF\xB8\x8F",
+ ':lower_left_paintbrush:' => "\xF0\x9F\x96\x8C\xEF\xB8\x8F",
+ ':crayon:' => "\xF0\x9F\x96\x8D\xEF\xB8\x8F",
+ ':lower_left_crayon:' => "\xF0\x9F\x96\x8D\xEF\xB8\x8F",
+ ':desktop:' => "\xF0\x9F\x96\xA5\xEF\xB8\x8F",
+ ':desktop_computer:' => "\xF0\x9F\x96\xA5\xEF\xB8\x8F",
+ ':printer:' => "\xF0\x9F\x96\xA8\xEF\xB8\x8F",
+ ':right_facing_fist_tone5:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBF",
+ ':right_fist_tone5:' => "\xF0\x9F\xA4\x9C\xF0\x9F\x8F\xBF",
+ ':keyboard:' => "\xE2\x8C\xA8\xEF\xB8\x8F",
+ ':trackball:' => "\xF0\x9F\x96\xB2\xEF\xB8\x8F",
+ ':raised_back_of_hand_tone1:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBB",
+ ':back_of_hand_tone1:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBB",
+ ':frame_photo:' => "\xF0\x9F\x96\xBC\xEF\xB8\x8F",
+ ':frame_with_picture:' => "\xF0\x9F\x96\xBC\xEF\xB8\x8F",
+ ':dividers:' => "\xF0\x9F\x97\x82\xEF\xB8\x8F",
+ ':card_index_dividers:' => "\xF0\x9F\x97\x82\xEF\xB8\x8F",
+ ':card_box:' => "\xF0\x9F\x97\x83\xEF\xB8\x8F",
+ ':card_file_box:' => "\xF0\x9F\x97\x83\xEF\xB8\x8F",
+ ':file_cabinet:' => "\xF0\x9F\x97\x84\xEF\xB8\x8F",
+ ':wastebasket:' => "\xF0\x9F\x97\x91\xEF\xB8\x8F",
+ ':notepad_spiral:' => "\xF0\x9F\x97\x92\xEF\xB8\x8F",
+ ':spiral_note_pad:' => "\xF0\x9F\x97\x92\xEF\xB8\x8F",
+ ':calendar_spiral:' => "\xF0\x9F\x97\x93\xEF\xB8\x8F",
+ ':spiral_calendar_pad:' => "\xF0\x9F\x97\x93\xEF\xB8\x8F",
+ ':compression:' => "\xF0\x9F\x97\x9C\xEF\xB8\x8F",
+ ':key2:' => "\xF0\x9F\x97\x9D\xEF\xB8\x8F",
+ ':old_key:' => "\xF0\x9F\x97\x9D\xEF\xB8\x8F",
+ ':newspaper2:' => "\xF0\x9F\x97\x9E\xEF\xB8\x8F",
+ ':rolled_up_newspaper:' => "\xF0\x9F\x97\x9E\xEF\xB8\x8F",
+ ':dagger:' => "\xF0\x9F\x97\xA1\xEF\xB8\x8F",
+ ':dagger_knife:' => "\xF0\x9F\x97\xA1\xEF\xB8\x8F",
+ ':speaking_head:' => "\xF0\x9F\x97\xA3\xEF\xB8\x8F",
+ ':speaking_head_in_silhouette:' => "\xF0\x9F\x97\xA3\xEF\xB8\x8F",
+ ':speech_left:' => "\xF0\x9F\x97\xA8\xEF\xB8\x8F",
+ ':left_speech_bubble:' => "\xF0\x9F\x97\xA8\xEF\xB8\x8F",
+ ':raised_back_of_hand_tone2:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBC",
+ ':back_of_hand_tone2:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBC",
+ ':anger_right:' => "\xF0\x9F\x97\xAF\xEF\xB8\x8F",
+ ':right_anger_bubble:' => "\xF0\x9F\x97\xAF\xEF\xB8\x8F",
+ ':raised_back_of_hand_tone3:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBD",
+ ':back_of_hand_tone3:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBD",
+ ':ballot_box:' => "\xF0\x9F\x97\xB3\xEF\xB8\x8F",
+ ':ballot_box_with_ballot:' => "\xF0\x9F\x97\xB3\xEF\xB8\x8F",
+ ':map:' => "\xF0\x9F\x97\xBA\xEF\xB8\x8F",
+ ':world_map:' => "\xF0\x9F\x97\xBA\xEF\xB8\x8F",
+ ':sleeping_accommodation:' => "\xF0\x9F\x9B\x8C",
+ ':tools:' => "\xF0\x9F\x9B\xA0\xEF\xB8\x8F",
+ ':hammer_and_wrench:' => "\xF0\x9F\x9B\xA0\xEF\xB8\x8F",
+ ':shield:' => "\xF0\x9F\x9B\xA1\xEF\xB8\x8F",
+ ':oil:' => "\xF0\x9F\x9B\xA2\xEF\xB8\x8F",
+ ':oil_drum:' => "\xF0\x9F\x9B\xA2\xEF\xB8\x8F",
+ ':satellite_orbital:' => "\xF0\x9F\x9B\xB0\xEF\xB8\x8F",
+ ':fork_knife_plate:' => "\xF0\x9F\x8D\xBD\xEF\xB8\x8F",
+ ':fork_and_knife_with_plate:' => "\xF0\x9F\x8D\xBD\xEF\xB8\x8F",
+ ':eye:' => "\xF0\x9F\x91\x81\xEF\xB8\x8F",
+ ':levitate:' => "\xF0\x9F\x95\xB4\xEF\xB8\x8F",
+ ':man_in_business_suit_levitating:' => "\xF0\x9F\x95\xB4\xEF\xB8\x8F",
+ ':spy:' => "\xF0\x9F\x95\xB5\xEF\xB8\x8F",
+ ':sleuth_or_spy:' => "\xF0\x9F\x95\xB5\xEF\xB8\x8F",
+ ':writing_hand:' => "\xE2\x9C\x8D\xEF\xB8\x8F",
+ ':hand_splayed:' => "\xF0\x9F\x96\x90\xEF\xB8\x8F",
+ ':raised_hand_with_fingers_splayed:' => "\xF0\x9F\x96\x90\xEF\xB8\x8F",
+ ':middle_finger:' => "\xF0\x9F\x96\x95",
+ ':reversed_hand_with_middle_finger_extended:' => "\xF0\x9F\x96\x95",
+ ':vulcan:' => "\xF0\x9F\x96\x96",
+ ':raised_hand_with_part_between_middle_and_ring_fingers:' => "\xF0\x9F\x96\x96",
+ ':slight_frown:' => "\xF0\x9F\x99\x81",
+ ':slightly_frowning_face:' => "\xF0\x9F\x99\x81",
+ ':slight_smile:' => "\xF0\x9F\x99\x82",
+ ':slightly_smiling_face:' => "\xF0\x9F\x99\x82",
+ ':mountain_snow:' => "\xF0\x9F\x8F\x94\xEF\xB8\x8F",
+ ':snow_capped_mountain:' => "\xF0\x9F\x8F\x94\xEF\xB8\x8F",
+ ':camping:' => "\xF0\x9F\x8F\x95\xEF\xB8\x8F",
+ ':beach:' => "\xF0\x9F\x8F\x96\xEF\xB8\x8F",
+ ':beach_with_umbrella:' => "\xF0\x9F\x8F\x96\xEF\xB8\x8F",
+ ':construction_site:' => "\xF0\x9F\x8F\x97\xEF\xB8\x8F",
+ ':building_construction:' => "\xF0\x9F\x8F\x97\xEF\xB8\x8F",
+ ':homes:' => "\xF0\x9F\x8F\x98\xEF\xB8\x8F",
+ ':house_buildings:' => "\xF0\x9F\x8F\x98\xEF\xB8\x8F",
+ ':cityscape:' => "\xF0\x9F\x8F\x99\xEF\xB8\x8F",
+ ':house_abandoned:' => "\xF0\x9F\x8F\x9A\xEF\xB8\x8F",
+ ':derelict_house_building:' => "\xF0\x9F\x8F\x9A\xEF\xB8\x8F",
+ ':classical_building:' => "\xF0\x9F\x8F\x9B\xEF\xB8\x8F",
+ ':desert:' => "\xF0\x9F\x8F\x9C\xEF\xB8\x8F",
+ ':island:' => "\xF0\x9F\x8F\x9D\xEF\xB8\x8F",
+ ':desert_island:' => "\xF0\x9F\x8F\x9D\xEF\xB8\x8F",
+ ':park:' => "\xF0\x9F\x8F\x9E\xEF\xB8\x8F",
+ ':national_park:' => "\xF0\x9F\x8F\x9E\xEF\xB8\x8F",
+ ':stadium:' => "\xF0\x9F\x8F\x9F\xEF\xB8\x8F",
+ ':couch:' => "\xF0\x9F\x9B\x8B\xEF\xB8\x8F",
+ ':couch_and_lamp:' => "\xF0\x9F\x9B\x8B\xEF\xB8\x8F",
+ ':raised_back_of_hand_tone4:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBE",
+ ':back_of_hand_tone4:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBE",
+ ':shopping_bags:' => "\xF0\x9F\x9B\x8D\xEF\xB8\x8F",
+ ':bellhop:' => "\xF0\x9F\x9B\x8E\xEF\xB8\x8F",
+ ':bellhop_bell:' => "\xF0\x9F\x9B\x8E\xEF\xB8\x8F",
+ ':bed:' => "\xF0\x9F\x9B\x8F\xEF\xB8\x8F",
+ ':motorway:' => "\xF0\x9F\x9B\xA3\xEF\xB8\x8F",
+ ':railway_track:' => "\xF0\x9F\x9B\xA4\xEF\xB8\x8F",
+ ':railroad_track:' => "\xF0\x9F\x9B\xA4\xEF\xB8\x8F",
+ ':motorboat:' => "\xF0\x9F\x9B\xA5\xEF\xB8\x8F",
+ ':airplane_small:' => "\xF0\x9F\x9B\xA9\xEF\xB8\x8F",
+ ':small_airplane:' => "\xF0\x9F\x9B\xA9\xEF\xB8\x8F",
+ ':airplane_departure:' => "\xF0\x9F\x9B\xAB",
+ ':airplane_arriving:' => "\xF0\x9F\x9B\xAC",
+ ':cruise_ship:' => "\xF0\x9F\x9B\xB3\xEF\xB8\x8F",
+ ':passenger_ship:' => "\xF0\x9F\x9B\xB3\xEF\xB8\x8F",
+ ':baby_tone1:' => "\xF0\x9F\x91\xB6\xF0\x9F\x8F\xBB",
+ ':baby_tone2:' => "\xF0\x9F\x91\xB6\xF0\x9F\x8F\xBC",
+ ':baby_tone3:' => "\xF0\x9F\x91\xB6\xF0\x9F\x8F\xBD",
+ ':baby_tone4:' => "\xF0\x9F\x91\xB6\xF0\x9F\x8F\xBE",
+ ':baby_tone5:' => "\xF0\x9F\x91\xB6\xF0\x9F\x8F\xBF",
+ ':boy_tone1:' => "\xF0\x9F\x91\xA6\xF0\x9F\x8F\xBB",
+ ':boy_tone2:' => "\xF0\x9F\x91\xA6\xF0\x9F\x8F\xBC",
+ ':boy_tone3:' => "\xF0\x9F\x91\xA6\xF0\x9F\x8F\xBD",
+ ':boy_tone4:' => "\xF0\x9F\x91\xA6\xF0\x9F\x8F\xBE",
+ ':boy_tone5:' => "\xF0\x9F\x91\xA6\xF0\x9F\x8F\xBF",
+ ':girl_tone1:' => "\xF0\x9F\x91\xA7\xF0\x9F\x8F\xBB",
+ ':girl_tone2:' => "\xF0\x9F\x91\xA7\xF0\x9F\x8F\xBC",
+ ':girl_tone3:' => "\xF0\x9F\x91\xA7\xF0\x9F\x8F\xBD",
+ ':girl_tone4:' => "\xF0\x9F\x91\xA7\xF0\x9F\x8F\xBE",
+ ':girl_tone5:' => "\xF0\x9F\x91\xA7\xF0\x9F\x8F\xBF",
+ ':man_tone1:' => "\xF0\x9F\x91\xA8\xF0\x9F\x8F\xBB",
+ ':man_tone2:' => "\xF0\x9F\x91\xA8\xF0\x9F\x8F\xBC",
+ ':man_tone3:' => "\xF0\x9F\x91\xA8\xF0\x9F\x8F\xBD",
+ ':man_tone4:' => "\xF0\x9F\x91\xA8\xF0\x9F\x8F\xBE",
+ ':man_tone5:' => "\xF0\x9F\x91\xA8\xF0\x9F\x8F\xBF",
+ ':woman_tone1:' => "\xF0\x9F\x91\xA9\xF0\x9F\x8F\xBB",
+ ':woman_tone2:' => "\xF0\x9F\x91\xA9\xF0\x9F\x8F\xBC",
+ ':woman_tone3:' => "\xF0\x9F\x91\xA9\xF0\x9F\x8F\xBD",
+ ':woman_tone4:' => "\xF0\x9F\x91\xA9\xF0\x9F\x8F\xBE",
+ ':woman_tone5:' => "\xF0\x9F\x91\xA9\xF0\x9F\x8F\xBF",
+ ':bride_with_veil_tone1:' => "\xF0\x9F\x91\xB0\xF0\x9F\x8F\xBB",
+ ':bride_with_veil_tone2:' => "\xF0\x9F\x91\xB0\xF0\x9F\x8F\xBC",
+ ':raised_back_of_hand_tone5:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBF",
+ ':back_of_hand_tone5:' => "\xF0\x9F\xA4\x9A\xF0\x9F\x8F\xBF",
+ ':bride_with_veil_tone3:' => "\xF0\x9F\x91\xB0\xF0\x9F\x8F\xBD",
+ ':bride_with_veil_tone4:' => "\xF0\x9F\x91\xB0\xF0\x9F\x8F\xBE",
+ ':bride_with_veil_tone5:' => "\xF0\x9F\x91\xB0\xF0\x9F\x8F\xBF",
+ ':handshake_tone1:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBB",
+ ':shaking_hands_tone1:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBB",
+ ':person_with_blond_hair_tone1:' => "\xF0\x9F\x91\xB1\xF0\x9F\x8F\xBB",
+ ':person_with_blond_hair_tone2:' => "\xF0\x9F\x91\xB1\xF0\x9F\x8F\xBC",
+ ':person_with_blond_hair_tone3:' => "\xF0\x9F\x91\xB1\xF0\x9F\x8F\xBD",
+ ':person_with_blond_hair_tone4:' => "\xF0\x9F\x91\xB1\xF0\x9F\x8F\xBE",
+ ':handshake_tone2:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBC",
+ ':shaking_hands_tone2:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBC",
+ ':person_with_blond_hair_tone5:' => "\xF0\x9F\x91\xB1\xF0\x9F\x8F\xBF",
+ ':man_with_gua_pi_mao_tone1:' => "\xF0\x9F\x91\xB2\xF0\x9F\x8F\xBB",
+ ':man_with_gua_pi_mao_tone2:' => "\xF0\x9F\x91\xB2\xF0\x9F\x8F\xBC",
+ ':man_with_gua_pi_mao_tone3:' => "\xF0\x9F\x91\xB2\xF0\x9F\x8F\xBD",
+ ':man_with_gua_pi_mao_tone4:' => "\xF0\x9F\x91\xB2\xF0\x9F\x8F\xBE",
+ ':man_with_gua_pi_mao_tone5:' => "\xF0\x9F\x91\xB2\xF0\x9F\x8F\xBF",
+ ':man_with_turban_tone1:' => "\xF0\x9F\x91\xB3\xF0\x9F\x8F\xBB",
+ ':man_with_turban_tone2:' => "\xF0\x9F\x91\xB3\xF0\x9F\x8F\xBC",
+ ':handshake_tone3:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBD",
+ ':shaking_hands_tone3:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBD",
+ ':man_with_turban_tone3:' => "\xF0\x9F\x91\xB3\xF0\x9F\x8F\xBD",
+ ':man_with_turban_tone4:' => "\xF0\x9F\x91\xB3\xF0\x9F\x8F\xBE",
+ ':man_with_turban_tone5:' => "\xF0\x9F\x91\xB3\xF0\x9F\x8F\xBF",
+ ':handshake_tone4:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBE",
+ ':shaking_hands_tone4:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBE",
+ ':older_man_tone1:' => "\xF0\x9F\x91\xB4\xF0\x9F\x8F\xBB",
+ ':older_man_tone2:' => "\xF0\x9F\x91\xB4\xF0\x9F\x8F\xBC",
+ ':older_man_tone3:' => "\xF0\x9F\x91\xB4\xF0\x9F\x8F\xBD",
+ ':older_man_tone4:' => "\xF0\x9F\x91\xB4\xF0\x9F\x8F\xBE",
+ ':older_man_tone5:' => "\xF0\x9F\x91\xB4\xF0\x9F\x8F\xBF",
+ ':older_woman_tone1:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBB",
+ ':grandma_tone1:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBB",
+ ':older_woman_tone2:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBC",
+ ':grandma_tone2:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBC",
+ ':older_woman_tone3:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBD",
+ ':grandma_tone3:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBD",
+ ':older_woman_tone4:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBE",
+ ':grandma_tone4:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBE",
+ ':older_woman_tone5:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBF",
+ ':grandma_tone5:' => "\xF0\x9F\x91\xB5\xF0\x9F\x8F\xBF",
+ ':cop_tone1:' => "\xF0\x9F\x91\xAE\xF0\x9F\x8F\xBB",
+ ':cop_tone2:' => "\xF0\x9F\x91\xAE\xF0\x9F\x8F\xBC",
+ ':cop_tone3:' => "\xF0\x9F\x91\xAE\xF0\x9F\x8F\xBD",
+ ':cop_tone4:' => "\xF0\x9F\x91\xAE\xF0\x9F\x8F\xBE",
+ ':cop_tone5:' => "\xF0\x9F\x91\xAE\xF0\x9F\x8F\xBF",
+ ':construction_worker_tone1:' => "\xF0\x9F\x91\xB7\xF0\x9F\x8F\xBB",
+ ':construction_worker_tone2:' => "\xF0\x9F\x91\xB7\xF0\x9F\x8F\xBC",
+ ':construction_worker_tone3:' => "\xF0\x9F\x91\xB7\xF0\x9F\x8F\xBD",
+ ':construction_worker_tone4:' => "\xF0\x9F\x91\xB7\xF0\x9F\x8F\xBE",
+ ':construction_worker_tone5:' => "\xF0\x9F\x91\xB7\xF0\x9F\x8F\xBF",
+ ':princess_tone1:' => "\xF0\x9F\x91\xB8\xF0\x9F\x8F\xBB",
+ ':princess_tone2:' => "\xF0\x9F\x91\xB8\xF0\x9F\x8F\xBC",
+ ':handshake_tone5:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBF",
+ ':shaking_hands_tone5:' => "\xF0\x9F\xA4\x9D\xF0\x9F\x8F\xBF",
+ ':princess_tone3:' => "\xF0\x9F\x91\xB8\xF0\x9F\x8F\xBD",
+ ':princess_tone4:' => "\xF0\x9F\x91\xB8\xF0\x9F\x8F\xBE",
+ ':cartwheel_tone1:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBB",
+ ':person_doing_cartwheel_tone1:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBB",
+ ':princess_tone5:' => "\xF0\x9F\x91\xB8\xF0\x9F\x8F\xBF",
+ ':guardsman_tone1:' => "\xF0\x9F\x92\x82\xF0\x9F\x8F\xBB",
+ ':guardsman_tone2:' => "\xF0\x9F\x92\x82\xF0\x9F\x8F\xBC",
+ ':cartwheel_tone2:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBC",
+ ':person_doing_cartwheel_tone2:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBC",
+ ':guardsman_tone3:' => "\xF0\x9F\x92\x82\xF0\x9F\x8F\xBD",
+ ':guardsman_tone4:' => "\xF0\x9F\x92\x82\xF0\x9F\x8F\xBE",
+ ':guardsman_tone5:' => "\xF0\x9F\x92\x82\xF0\x9F\x8F\xBF",
+ ':cartwheel_tone3:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBD",
+ ':person_doing_cartwheel_tone3:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBD",
+ ':angel_tone1:' => "\xF0\x9F\x91\xBC\xF0\x9F\x8F\xBB",
+ ':angel_tone2:' => "\xF0\x9F\x91\xBC\xF0\x9F\x8F\xBC",
+ ':angel_tone3:' => "\xF0\x9F\x91\xBC\xF0\x9F\x8F\xBD",
+ ':angel_tone4:' => "\xF0\x9F\x91\xBC\xF0\x9F\x8F\xBE",
+ ':angel_tone5:' => "\xF0\x9F\x91\xBC\xF0\x9F\x8F\xBF",
+ ':bow_tone1:' => "\xF0\x9F\x99\x87\xF0\x9F\x8F\xBB",
+ ':bow_tone2:' => "\xF0\x9F\x99\x87\xF0\x9F\x8F\xBC",
+ ':bow_tone3:' => "\xF0\x9F\x99\x87\xF0\x9F\x8F\xBD",
+ ':bow_tone4:' => "\xF0\x9F\x99\x87\xF0\x9F\x8F\xBE",
+ ':bow_tone5:' => "\xF0\x9F\x99\x87\xF0\x9F\x8F\xBF",
+ ':information_desk_person_tone1:' => "\xF0\x9F\x92\x81\xF0\x9F\x8F\xBB",
+ ':information_desk_person_tone2:' => "\xF0\x9F\x92\x81\xF0\x9F\x8F\xBC",
+ ':information_desk_person_tone3:' => "\xF0\x9F\x92\x81\xF0\x9F\x8F\xBD",
+ ':cartwheel_tone4:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBE",
+ ':person_doing_cartwheel_tone4:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBE",
+ ':information_desk_person_tone4:' => "\xF0\x9F\x92\x81\xF0\x9F\x8F\xBE",
+ ':information_desk_person_tone5:' => "\xF0\x9F\x92\x81\xF0\x9F\x8F\xBF",
+ ':no_good_tone1:' => "\xF0\x9F\x99\x85\xF0\x9F\x8F\xBB",
+ ':cartwheel_tone5:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBF",
+ ':person_doing_cartwheel_tone5:' => "\xF0\x9F\xA4\xB8\xF0\x9F\x8F\xBF",
+ ':no_good_tone2:' => "\xF0\x9F\x99\x85\xF0\x9F\x8F\xBC",
+ ':no_good_tone3:' => "\xF0\x9F\x99\x85\xF0\x9F\x8F\xBD",
+ ':no_good_tone4:' => "\xF0\x9F\x99\x85\xF0\x9F\x8F\xBE",
+ ':wrestlers_tone2:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBC",
+ ':wrestling_tone2:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBC",
+ ':no_good_tone5:' => "\xF0\x9F\x99\x85\xF0\x9F\x8F\xBF",
+ ':ok_woman_tone1:' => "\xF0\x9F\x99\x86\xF0\x9F\x8F\xBB",
+ ':ok_woman_tone2:' => "\xF0\x9F\x99\x86\xF0\x9F\x8F\xBC",
+ ':ok_woman_tone3:' => "\xF0\x9F\x99\x86\xF0\x9F\x8F\xBD",
+ ':wrestlers_tone1:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBB",
+ ':wrestling_tone1:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBB",
+ ':ok_woman_tone4:' => "\xF0\x9F\x99\x86\xF0\x9F\x8F\xBE",
+ ':ok_woman_tone5:' => "\xF0\x9F\x99\x86\xF0\x9F\x8F\xBF",
+ ':raising_hand_tone1:' => "\xF0\x9F\x99\x8B\xF0\x9F\x8F\xBB",
+ ':raising_hand_tone2:' => "\xF0\x9F\x99\x8B\xF0\x9F\x8F\xBC",
+ ':raising_hand_tone3:' => "\xF0\x9F\x99\x8B\xF0\x9F\x8F\xBD",
+ ':wrestlers_tone3:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBD",
+ ':wrestling_tone3:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBD",
+ ':raising_hand_tone4:' => "\xF0\x9F\x99\x8B\xF0\x9F\x8F\xBE",
+ ':raising_hand_tone5:' => "\xF0\x9F\x99\x8B\xF0\x9F\x8F\xBF",
+ ':person_with_pouting_face_tone1:' => "\xF0\x9F\x99\x8E\xF0\x9F\x8F\xBB",
+ ':person_with_pouting_face_tone2:' => "\xF0\x9F\x99\x8E\xF0\x9F\x8F\xBC",
+ ':person_with_pouting_face_tone3:' => "\xF0\x9F\x99\x8E\xF0\x9F\x8F\xBD",
+ ':person_with_pouting_face_tone4:' => "\xF0\x9F\x99\x8E\xF0\x9F\x8F\xBE",
+ ':person_with_pouting_face_tone5:' => "\xF0\x9F\x99\x8E\xF0\x9F\x8F\xBF",
+ ':person_frowning_tone1:' => "\xF0\x9F\x99\x8D\xF0\x9F\x8F\xBB",
+ ':person_frowning_tone2:' => "\xF0\x9F\x99\x8D\xF0\x9F\x8F\xBC",
+ ':person_frowning_tone3:' => "\xF0\x9F\x99\x8D\xF0\x9F\x8F\xBD",
+ ':wrestlers_tone4:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBE",
+ ':wrestling_tone4:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBE",
+ ':person_frowning_tone4:' => "\xF0\x9F\x99\x8D\xF0\x9F\x8F\xBE",
+ ':person_frowning_tone5:' => "\xF0\x9F\x99\x8D\xF0\x9F\x8F\xBF",
+ ':massage_tone1:' => "\xF0\x9F\x92\x86\xF0\x9F\x8F\xBB",
+ ':massage_tone2:' => "\xF0\x9F\x92\x86\xF0\x9F\x8F\xBC",
+ ':massage_tone3:' => "\xF0\x9F\x92\x86\xF0\x9F\x8F\xBD",
+ ':massage_tone4:' => "\xF0\x9F\x92\x86\xF0\x9F\x8F\xBE",
+ ':massage_tone5:' => "\xF0\x9F\x92\x86\xF0\x9F\x8F\xBF",
+ ':haircut_tone1:' => "\xF0\x9F\x92\x87\xF0\x9F\x8F\xBB",
+ ':haircut_tone2:' => "\xF0\x9F\x92\x87\xF0\x9F\x8F\xBC",
+ ':haircut_tone3:' => "\xF0\x9F\x92\x87\xF0\x9F\x8F\xBD",
+ ':haircut_tone4:' => "\xF0\x9F\x92\x87\xF0\x9F\x8F\xBE",
+ ':haircut_tone5:' => "\xF0\x9F\x92\x87\xF0\x9F\x8F\xBF",
+ ':raised_hands_tone1:' => "\xF0\x9F\x99\x8C\xF0\x9F\x8F\xBB",
+ ':raised_hands_tone2:' => "\xF0\x9F\x99\x8C\xF0\x9F\x8F\xBC",
+ ':raised_hands_tone3:' => "\xF0\x9F\x99\x8C\xF0\x9F\x8F\xBD",
+ ':raised_hands_tone4:' => "\xF0\x9F\x99\x8C\xF0\x9F\x8F\xBE",
+ ':raised_hands_tone5:' => "\xF0\x9F\x99\x8C\xF0\x9F\x8F\xBF",
+ ':clap_tone1:' => "\xF0\x9F\x91\x8F\xF0\x9F\x8F\xBB",
+ ':wrestlers_tone5:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBF",
+ ':wrestling_tone5:' => "\xF0\x9F\xA4\xBC\xF0\x9F\x8F\xBF",
+ ':clap_tone2:' => "\xF0\x9F\x91\x8F\xF0\x9F\x8F\xBC",
+ ':clap_tone3:' => "\xF0\x9F\x91\x8F\xF0\x9F\x8F\xBD",
+ ':water_polo_tone1:' => "\xF0\x9F\xA4\xBD\xF0\x9F\x8F\xBB",
+ ':clap_tone4:' => "\xF0\x9F\x91\x8F\xF0\x9F\x8F\xBE",
+ ':clap_tone5:' => "\xF0\x9F\x91\x8F\xF0\x9F\x8F\xBF",
+ ':water_polo_tone2:' => "\xF0\x9F\xA4\xBD\xF0\x9F\x8F\xBC",
+ ':ear_tone1:' => "\xF0\x9F\x91\x82\xF0\x9F\x8F\xBB",
+ ':ear_tone2:' => "\xF0\x9F\x91\x82\xF0\x9F\x8F\xBC",
+ ':ear_tone3:' => "\xF0\x9F\x91\x82\xF0\x9F\x8F\xBD",
+ ':ear_tone4:' => "\xF0\x9F\x91\x82\xF0\x9F\x8F\xBE",
+ ':ear_tone5:' => "\xF0\x9F\x91\x82\xF0\x9F\x8F\xBF",
+ ':nose_tone1:' => "\xF0\x9F\x91\x83\xF0\x9F\x8F\xBB",
+ ':nose_tone2:' => "\xF0\x9F\x91\x83\xF0\x9F\x8F\xBC",
+ ':nose_tone3:' => "\xF0\x9F\x91\x83\xF0\x9F\x8F\xBD",
+ ':nose_tone4:' => "\xF0\x9F\x91\x83\xF0\x9F\x8F\xBE",
+ ':nose_tone5:' => "\xF0\x9F\x91\x83\xF0\x9F\x8F\xBF",
+ ':nail_care_tone1:' => "\xF0\x9F\x92\x85\xF0\x9F\x8F\xBB",
+ ':nail_care_tone2:' => "\xF0\x9F\x92\x85\xF0\x9F\x8F\xBC",
+ ':nail_care_tone3:' => "\xF0\x9F\x92\x85\xF0\x9F\x8F\xBD",
+ ':nail_care_tone4:' => "\xF0\x9F\x92\x85\xF0\x9F\x8F\xBE",
+ ':nail_care_tone5:' => "\xF0\x9F\x92\x85\xF0\x9F\x8F\xBF",
+ ':wave_tone1:' => "\xF0\x9F\x91\x8B\xF0\x9F\x8F\xBB",
+ ':wave_tone2:' => "\xF0\x9F\x91\x8B\xF0\x9F\x8F\xBC",
+ ':wave_tone3:' => "\xF0\x9F\x91\x8B\xF0\x9F\x8F\xBD",
+ ':wave_tone4:' => "\xF0\x9F\x91\x8B\xF0\x9F\x8F\xBE",
+ ':wave_tone5:' => "\xF0\x9F\x91\x8B\xF0\x9F\x8F\xBF",
+ ':thumbsup_tone1:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBB",
+ ':+1_tone1:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBB",
+ ':thumbup_tone1:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBB",
+ ':thumbsup_tone2:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBC",
+ ':+1_tone2:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBC",
+ ':thumbup_tone2:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBC",
+ ':thumbsup_tone3:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBD",
+ ':+1_tone3:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBD",
+ ':thumbup_tone3:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBD",
+ ':thumbsup_tone4:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBE",
+ ':+1_tone4:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBE",
+ ':thumbup_tone4:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBE",
+ ':thumbsup_tone5:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBF",
+ ':+1_tone5:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBF",
+ ':thumbup_tone5:' => "\xF0\x9F\x91\x8D\xF0\x9F\x8F\xBF",
+ ':thumbsdown_tone1:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBB",
+ ':-1_tone1:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBB",
+ ':thumbdown_tone1:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBB",
+ ':thumbsdown_tone2:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBC",
+ ':-1_tone2:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBC",
+ ':thumbdown_tone2:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBC",
+ ':thumbsdown_tone3:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBD",
+ ':-1_tone3:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBD",
+ ':thumbdown_tone3:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBD",
+ ':thumbsdown_tone4:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBE",
+ ':-1_tone4:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBE",
+ ':thumbdown_tone4:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBE",
+ ':thumbsdown_tone5:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBF",
+ ':-1_tone5:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBF",
+ ':thumbdown_tone5:' => "\xF0\x9F\x91\x8E\xF0\x9F\x8F\xBF",
+ ':point_up_tone1:' => "\xE2\x98\x9D\xF0\x9F\x8F\xBB",
+ ':point_up_tone2:' => "\xE2\x98\x9D\xF0\x9F\x8F\xBC",
+ ':point_up_tone3:' => "\xE2\x98\x9D\xF0\x9F\x8F\xBD",
+ ':point_up_tone4:' => "\xE2\x98\x9D\xF0\x9F\x8F\xBE",
+ ':point_up_tone5:' => "\xE2\x98\x9D\xF0\x9F\x8F\xBF",
+ ':point_up_2_tone1:' => "\xF0\x9F\x91\x86\xF0\x9F\x8F\xBB",
+ ':point_up_2_tone2:' => "\xF0\x9F\x91\x86\xF0\x9F\x8F\xBC",
+ ':point_up_2_tone3:' => "\xF0\x9F\x91\x86\xF0\x9F\x8F\xBD",
+ ':point_up_2_tone4:' => "\xF0\x9F\x91\x86\xF0\x9F\x8F\xBE",
+ ':point_up_2_tone5:' => "\xF0\x9F\x91\x86\xF0\x9F\x8F\xBF",
+ ':point_down_tone1:' => "\xF0\x9F\x91\x87\xF0\x9F\x8F\xBB",
+ ':point_down_tone2:' => "\xF0\x9F\x91\x87\xF0\x9F\x8F\xBC",
+ ':point_down_tone3:' => "\xF0\x9F\x91\x87\xF0\x9F\x8F\xBD",
+ ':point_down_tone4:' => "\xF0\x9F\x91\x87\xF0\x9F\x8F\xBE",
+ ':point_down_tone5:' => "\xF0\x9F\x91\x87\xF0\x9F\x8F\xBF",
+ ':point_left_tone1:' => "\xF0\x9F\x91\x88\xF0\x9F\x8F\xBB",
+ ':point_left_tone2:' => "\xF0\x9F\x91\x88\xF0\x9F\x8F\xBC",
+ ':point_left_tone3:' => "\xF0\x9F\x91\x88\xF0\x9F\x8F\xBD",
+ ':point_left_tone4:' => "\xF0\x9F\x91\x88\xF0\x9F\x8F\xBE",
+ ':point_left_tone5:' => "\xF0\x9F\x91\x88\xF0\x9F\x8F\xBF",
+ ':point_right_tone1:' => "\xF0\x9F\x91\x89\xF0\x9F\x8F\xBB",
+ ':point_right_tone2:' => "\xF0\x9F\x91\x89\xF0\x9F\x8F\xBC",
+ ':point_right_tone3:' => "\xF0\x9F\x91\x89\xF0\x9F\x8F\xBD",
+ ':point_right_tone4:' => "\xF0\x9F\x91\x89\xF0\x9F\x8F\xBE",
+ ':point_right_tone5:' => "\xF0\x9F\x91\x89\xF0\x9F\x8F\xBF",
+ ':ok_hand_tone1:' => "\xF0\x9F\x91\x8C\xF0\x9F\x8F\xBB",
+ ':ok_hand_tone2:' => "\xF0\x9F\x91\x8C\xF0\x9F\x8F\xBC",
+ ':water_polo_tone3:' => "\xF0\x9F\xA4\xBD\xF0\x9F\x8F\xBD",
+ ':ok_hand_tone3:' => "\xF0\x9F\x91\x8C\xF0\x9F\x8F\xBD",
+ ':ok_hand_tone4:' => "\xF0\x9F\x91\x8C\xF0\x9F\x8F\xBE",
+ ':water_polo_tone4:' => "\xF0\x9F\xA4\xBD\xF0\x9F\x8F\xBE",
+ ':ok_hand_tone5:' => "\xF0\x9F\x91\x8C\xF0\x9F\x8F\xBF",
+ ':v_tone1:' => "\xE2\x9C\x8C\xF0\x9F\x8F\xBB",
+ ':v_tone2:' => "\xE2\x9C\x8C\xF0\x9F\x8F\xBC",
+ ':v_tone3:' => "\xE2\x9C\x8C\xF0\x9F\x8F\xBD",
+ ':v_tone4:' => "\xE2\x9C\x8C\xF0\x9F\x8F\xBE",
+ ':v_tone5:' => "\xE2\x9C\x8C\xF0\x9F\x8F\xBF",
+ ':punch_tone1:' => "\xF0\x9F\x91\x8A\xF0\x9F\x8F\xBB",
+ ':punch_tone2:' => "\xF0\x9F\x91\x8A\xF0\x9F\x8F\xBC",
+ ':punch_tone3:' => "\xF0\x9F\x91\x8A\xF0\x9F\x8F\xBD",
+ ':punch_tone4:' => "\xF0\x9F\x91\x8A\xF0\x9F\x8F\xBE",
+ ':punch_tone5:' => "\xF0\x9F\x91\x8A\xF0\x9F\x8F\xBF",
+ ':fist_tone1:' => "\xE2\x9C\x8A\xF0\x9F\x8F\xBB",
+ ':fist_tone2:' => "\xE2\x9C\x8A\xF0\x9F\x8F\xBC",
+ ':fist_tone3:' => "\xE2\x9C\x8A\xF0\x9F\x8F\xBD",
+ ':fist_tone4:' => "\xE2\x9C\x8A\xF0\x9F\x8F\xBE",
+ ':fist_tone5:' => "\xE2\x9C\x8A\xF0\x9F\x8F\xBF",
+ ':raised_hand_tone1:' => "\xE2\x9C\x8B\xF0\x9F\x8F\xBB",
+ ':raised_hand_tone2:' => "\xE2\x9C\x8B\xF0\x9F\x8F\xBC",
+ ':raised_hand_tone3:' => "\xE2\x9C\x8B\xF0\x9F\x8F\xBD",
+ ':raised_hand_tone4:' => "\xE2\x9C\x8B\xF0\x9F\x8F\xBE",
+ ':raised_hand_tone5:' => "\xE2\x9C\x8B\xF0\x9F\x8F\xBF",
+ ':muscle_tone1:' => "\xF0\x9F\x92\xAA\xF0\x9F\x8F\xBB",
+ ':muscle_tone2:' => "\xF0\x9F\x92\xAA\xF0\x9F\x8F\xBC",
+ ':muscle_tone3:' => "\xF0\x9F\x92\xAA\xF0\x9F\x8F\xBD",
+ ':muscle_tone4:' => "\xF0\x9F\x92\xAA\xF0\x9F\x8F\xBE",
+ ':muscle_tone5:' => "\xF0\x9F\x92\xAA\xF0\x9F\x8F\xBF",
+ ':open_hands_tone1:' => "\xF0\x9F\x91\x90\xF0\x9F\x8F\xBB",
+ ':open_hands_tone2:' => "\xF0\x9F\x91\x90\xF0\x9F\x8F\xBC",
+ ':open_hands_tone3:' => "\xF0\x9F\x91\x90\xF0\x9F\x8F\xBD",
+ ':open_hands_tone4:' => "\xF0\x9F\x91\x90\xF0\x9F\x8F\xBE",
+ ':open_hands_tone5:' => "\xF0\x9F\x91\x90\xF0\x9F\x8F\xBF",
+ ':pray_tone1:' => "\xF0\x9F\x99\x8F\xF0\x9F\x8F\xBB",
+ ':water_polo_tone5:' => "\xF0\x9F\xA4\xBD\xF0\x9F\x8F\xBF",
+ ':pray_tone2:' => "\xF0\x9F\x99\x8F\xF0\x9F\x8F\xBC",
+ ':pray_tone3:' => "\xF0\x9F\x99\x8F\xF0\x9F\x8F\xBD",
+ ':handball_tone1:' => "\xF0\x9F\xA4\xBE\xF0\x9F\x8F\xBB",
+ ':pray_tone4:' => "\xF0\x9F\x99\x8F\xF0\x9F\x8F\xBE",
+ ':pray_tone5:' => "\xF0\x9F\x99\x8F\xF0\x9F\x8F\xBF",
+ ':handball_tone2:' => "\xF0\x9F\xA4\xBE\xF0\x9F\x8F\xBC",
+ ':runner_tone1:' => "\xF0\x9F\x8F\x83\xF0\x9F\x8F\xBB",
+ ':runner_tone2:' => "\xF0\x9F\x8F\x83\xF0\x9F\x8F\xBC",
+ ':runner_tone3:' => "\xF0\x9F\x8F\x83\xF0\x9F\x8F\xBD",
+ ':runner_tone4:' => "\xF0\x9F\x8F\x83\xF0\x9F\x8F\xBE",
+ ':handball_tone3:' => "\xF0\x9F\xA4\xBE\xF0\x9F\x8F\xBD",
+ ':runner_tone5:' => "\xF0\x9F\x8F\x83\xF0\x9F\x8F\xBF",
+ ':walking_tone1:' => "\xF0\x9F\x9A\xB6\xF0\x9F\x8F\xBB",
+ ':walking_tone2:' => "\xF0\x9F\x9A\xB6\xF0\x9F\x8F\xBC",
+ ':walking_tone3:' => "\xF0\x9F\x9A\xB6\xF0\x9F\x8F\xBD",
+ ':walking_tone4:' => "\xF0\x9F\x9A\xB6\xF0\x9F\x8F\xBE",
+ ':walking_tone5:' => "\xF0\x9F\x9A\xB6\xF0\x9F\x8F\xBF",
+ ':dancer_tone1:' => "\xF0\x9F\x92\x83\xF0\x9F\x8F\xBB",
+ ':handball_tone4:' => "\xF0\x9F\xA4\xBE\xF0\x9F\x8F\xBE",
+ ':dancer_tone2:' => "\xF0\x9F\x92\x83\xF0\x9F\x8F\xBC",
+ ':dancer_tone3:' => "\xF0\x9F\x92\x83\xF0\x9F\x8F\xBD",
+ ':handball_tone5:' => "\xF0\x9F\xA4\xBE\xF0\x9F\x8F\xBF",
+ ':dancer_tone4:' => "\xF0\x9F\x92\x83\xF0\x9F\x8F\xBE",
+ ':dancer_tone5:' => "\xF0\x9F\x92\x83\xF0\x9F\x8F\xBF",
+ ':juggling_tone1:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBB",
+ ':juggler_tone1:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBB",
+ ':rowboat_tone1:' => "\xF0\x9F\x9A\xA3\xF0\x9F\x8F\xBB",
+ ':rowboat_tone2:' => "\xF0\x9F\x9A\xA3\xF0\x9F\x8F\xBC",
+ ':rowboat_tone3:' => "\xF0\x9F\x9A\xA3\xF0\x9F\x8F\xBD",
+ ':rowboat_tone4:' => "\xF0\x9F\x9A\xA3\xF0\x9F\x8F\xBE",
+ ':rowboat_tone5:' => "\xF0\x9F\x9A\xA3\xF0\x9F\x8F\xBF",
+ ':swimmer_tone1:' => "\xF0\x9F\x8F\x8A\xF0\x9F\x8F\xBB",
+ ':swimmer_tone2:' => "\xF0\x9F\x8F\x8A\xF0\x9F\x8F\xBC",
+ ':juggling_tone2:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBC",
+ ':juggler_tone2:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBC",
+ ':swimmer_tone3:' => "\xF0\x9F\x8F\x8A\xF0\x9F\x8F\xBD",
+ ':swimmer_tone4:' => "\xF0\x9F\x8F\x8A\xF0\x9F\x8F\xBE",
+ ':swimmer_tone5:' => "\xF0\x9F\x8F\x8A\xF0\x9F\x8F\xBF",
+ ':juggling_tone3:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBD",
+ ':juggler_tone3:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBD",
+ ':surfer_tone1:' => "\xF0\x9F\x8F\x84\xF0\x9F\x8F\xBB",
+ ':surfer_tone2:' => "\xF0\x9F\x8F\x84\xF0\x9F\x8F\xBC",
+ ':surfer_tone3:' => "\xF0\x9F\x8F\x84\xF0\x9F\x8F\xBD",
+ ':surfer_tone4:' => "\xF0\x9F\x8F\x84\xF0\x9F\x8F\xBE",
+ ':surfer_tone5:' => "\xF0\x9F\x8F\x84\xF0\x9F\x8F\xBF",
+ ':bath_tone1:' => "\xF0\x9F\x9B\x80\xF0\x9F\x8F\xBB",
+ ':bath_tone2:' => "\xF0\x9F\x9B\x80\xF0\x9F\x8F\xBC",
+ ':juggling_tone4:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBE",
+ ':juggler_tone4:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBE",
+ ':bath_tone3:' => "\xF0\x9F\x9B\x80\xF0\x9F\x8F\xBD",
+ ':bath_tone4:' => "\xF0\x9F\x9B\x80\xF0\x9F\x8F\xBE",
+ ':bath_tone5:' => "\xF0\x9F\x9B\x80\xF0\x9F\x8F\xBF",
+ ':juggling_tone5:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBF",
+ ':juggler_tone5:' => "\xF0\x9F\xA4\xB9\xF0\x9F\x8F\xBF",
+ ':bicyclist_tone1:' => "\xF0\x9F\x9A\xB4\xF0\x9F\x8F\xBB",
+ ':bicyclist_tone2:' => "\xF0\x9F\x9A\xB4\xF0\x9F\x8F\xBC",
+ ':bicyclist_tone3:' => "\xF0\x9F\x9A\xB4\xF0\x9F\x8F\xBD",
+ ':gay_pride_flag:' => "\xF0\x9F\x8F\xB3\xF0\x9F\x8C\x88",
+ ':rainbow_flag:' => "\xF0\x9F\x8F\xB3\xF0\x9F\x8C\x88",
+ ':bicyclist_tone4:' => "\xF0\x9F\x9A\xB4\xF0\x9F\x8F\xBE",
+ ':bicyclist_tone5:' => "\xF0\x9F\x9A\xB4\xF0\x9F\x8F\xBF",
+ ':mountain_bicyclist_tone1:' => "\xF0\x9F\x9A\xB5\xF0\x9F\x8F\xBB",
+ ':mountain_bicyclist_tone2:' => "\xF0\x9F\x9A\xB5\xF0\x9F\x8F\xBC",
+ ':mountain_bicyclist_tone3:' => "\xF0\x9F\x9A\xB5\xF0\x9F\x8F\xBD",
+ ':mountain_bicyclist_tone4:' => "\xF0\x9F\x9A\xB5\xF0\x9F\x8F\xBE",
+ ':mountain_bicyclist_tone5:' => "\xF0\x9F\x9A\xB5\xF0\x9F\x8F\xBF",
+ ':horse_racing_tone1:' => "\xF0\x9F\x8F\x87\xF0\x9F\x8F\xBB",
+ ':horse_racing_tone2:' => "\xF0\x9F\x8F\x87\xF0\x9F\x8F\xBC",
+ ':horse_racing_tone3:' => "\xF0\x9F\x8F\x87\xF0\x9F\x8F\xBD",
+ ':horse_racing_tone4:' => "\xF0\x9F\x8F\x87\xF0\x9F\x8F\xBE",
+ ':horse_racing_tone5:' => "\xF0\x9F\x8F\x87\xF0\x9F\x8F\xBF",
+ ':writing_hand_tone1:' => "\xE2\x9C\x8D\xF0\x9F\x8F\xBB",
+ ':writing_hand_tone2:' => "\xE2\x9C\x8D\xF0\x9F\x8F\xBC",
+ ':writing_hand_tone3:' => "\xE2\x9C\x8D\xF0\x9F\x8F\xBD",
+ ':writing_hand_tone4:' => "\xE2\x9C\x8D\xF0\x9F\x8F\xBE",
+ ':writing_hand_tone5:' => "\xE2\x9C\x8D\xF0\x9F\x8F\xBF",
+ ':hand_splayed_tone1:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBB",
+ ':raised_hand_with_fingers_splayed_tone1:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBB",
+ ':hand_splayed_tone2:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBC",
+ ':raised_hand_with_fingers_splayed_tone2:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBC",
+ ':hand_splayed_tone3:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBD",
+ ':raised_hand_with_fingers_splayed_tone3:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBD",
+ ':hand_splayed_tone4:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBE",
+ ':raised_hand_with_fingers_splayed_tone4:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBE",
+ ':hand_splayed_tone5:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBF",
+ ':raised_hand_with_fingers_splayed_tone5:' => "\xF0\x9F\x96\x90\xF0\x9F\x8F\xBF",
+ ':middle_finger_tone1:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBB",
+ ':reversed_hand_with_middle_finger_extended_tone1:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBB",
+ ':middle_finger_tone2:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBC",
+ ':reversed_hand_with_middle_finger_extended_tone2:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBC",
+ ':middle_finger_tone3:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBD",
+ ':reversed_hand_with_middle_finger_extended_tone3:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBD",
+ ':middle_finger_tone4:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBE",
+ ':reversed_hand_with_middle_finger_extended_tone4:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBE",
+ ':middle_finger_tone5:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBF",
+ ':reversed_hand_with_middle_finger_extended_tone5:' => "\xF0\x9F\x96\x95\xF0\x9F\x8F\xBF",
+ ':vulcan_tone1:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBB",
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone1:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBB",
+ ':vulcan_tone2:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBC",
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone2:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBC",
+ ':vulcan_tone3:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBD",
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone3:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBD",
+ ':vulcan_tone4:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBE",
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone4:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBE",
+ ':vulcan_tone5:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBF",
+ ':raised_hand_with_part_between_middle_and_ring_fingers_tone5:' => "\xF0\x9F\x96\x96\xF0\x9F\x8F\xBF",
+ ':family_mmb:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_mmbb:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA6\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_mmg:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':family_mmgb:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_mmgg:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':family_mwbb:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA6\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_mwg:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':family_mwgb:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_mwgg:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':family_wwb:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_wwbb:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA6\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_wwg:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':family_wwgb:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA6",
+ ':family_wwgg:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA9\xE2\x80\x8D\xF0\x9F\x91\xA7\xE2\x80\x8D\xF0\x9F\x91\xA7",
+ ':couple_ww:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x91\xA9",
+ ':couple_with_heart_ww:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x91\xA9",
+ ':couple_mm:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x91\xA8",
+ ':couple_with_heart_mm:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x91\xA8",
+ ':kiss_ww:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x92\x8B\xE2\x80\x8D\xF0\x9F\x91\xA9",
+ ':couplekiss_ww:' => "\xF0\x9F\x91\xA9\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x92\x8B\xE2\x80\x8D\xF0\x9F\x91\xA9",
+ ':kiss_mm:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x92\x8B\xE2\x80\x8D\xF0\x9F\x91\xA8",
+ ':couplekiss_mm:' => "\xF0\x9F\x91\xA8\xE2\x80\x8D\xE2\x9D\xA4\xEF\xB8\x8F\xE2\x80\x8D\xF0\x9F\x92\x8B\xE2\x80\x8D\xF0\x9F\x91\xA8",
+ ':tone1:' => "\xF0\x9F\x8F\xBB",
+ ':tone2:' => "\xF0\x9F\x8F\xBC",
+ ':tone3:' => "\xF0\x9F\x8F\xBD",
+ ':tone4:' => "\xF0\x9F\x8F\xBE",
+ ':tone5:' => "\xF0\x9F\x8F\xBF",
+ ':asterisk:' => "\x2A\xEF\xB8\x8F\xE2\x83\xA3",
+ ':keycap_asterisk:' => "\x2A\xEF\xB8\x8F\xE2\x83\xA3",
+ ':eject:' => "\xE2\x8F\x8F\xEF\xB8\x8F",
+ ':eject_symbol:' => "\xE2\x8F\x8F\xEF\xB8\x8F",
+ ':track_next:' => "\xE2\x8F\xAD\xEF\xB8\x8F",
+ ':next_track:' => "\xE2\x8F\xAD\xEF\xB8\x8F",
+ ':track_previous:' => "\xE2\x8F\xAE\xEF\xB8\x8F",
+ ':previous_track:' => "\xE2\x8F\xAE\xEF\xB8\x8F",
+ ':play_pause:' => "\xE2\x8F\xAF\xEF\xB8\x8F",
+ ':eye_in_speech_bubble:' => "\xF0\x9F\x91\x81\xE2\x80\x8D\xF0\x9F\x97\xA8",
+ ':stopwatch:' => "\xE2\x8F\xB1\xEF\xB8\x8F",
+ ':timer:' => "\xE2\x8F\xB2\xEF\xB8\x8F",
+ ':timer_clock:' => "\xE2\x8F\xB2\xEF\xB8\x8F",
+ ':pause_button:' => "\xE2\x8F\xB8\xEF\xB8\x8F",
+ ':double_vertical_bar:' => "\xE2\x8F\xB8\xEF\xB8\x8F",
+ ':stop_button:' => "\xE2\x8F\xB9\xEF\xB8\x8F",
+ ':record_button:' => "\xE2\x8F\xBA\xEF\xB8\x8F",
+ ':umbrella2:' => "\xE2\x98\x82\xEF\xB8\x8F",
+ ':snowman2:' => "\xE2\x98\x83\xEF\xB8\x8F",
+ ':comet:' => "\xE2\x98\x84\xEF\xB8\x8F",
+ ':shamrock:' => "\xE2\x98\x98\xEF\xB8\x8F",
+ ':skull_crossbones:' => "\xE2\x98\xA0\xEF\xB8\x8F",
+ ':skull_and_crossbones:' => "\xE2\x98\xA0\xEF\xB8\x8F",
+ ':radioactive:' => "\xE2\x98\xA2\xEF\xB8\x8F",
+ ':radioactive_sign:' => "\xE2\x98\xA2\xEF\xB8\x8F",
+ ':biohazard:' => "\xE2\x98\xA3\xEF\xB8\x8F",
+ ':biohazard_sign:' => "\xE2\x98\xA3\xEF\xB8\x8F",
+ ':orthodox_cross:' => "\xE2\x98\xA6\xEF\xB8\x8F",
+ ':star_and_crescent:' => "\xE2\x98\xAA\xEF\xB8\x8F",
+ ':peace:' => "\xE2\x98\xAE\xEF\xB8\x8F",
+ ':peace_symbol:' => "\xE2\x98\xAE\xEF\xB8\x8F",
+ ':yin_yang:' => "\xE2\x98\xAF\xEF\xB8\x8F",
+ ':wheel_of_dharma:' => "\xE2\x98\xB8\xEF\xB8\x8F",
+ ':frowning2:' => "\xE2\x98\xB9\xEF\xB8\x8F",
+ ':white_frowning_face:' => "\xE2\x98\xB9\xEF\xB8\x8F",
+ ':hammer_pick:' => "\xE2\x9A\x92\xEF\xB8\x8F",
+ ':hammer_and_pick:' => "\xE2\x9A\x92\xEF\xB8\x8F",
+ ':crossed_swords:' => "\xE2\x9A\x94\xEF\xB8\x8F",
+ ':scales:' => "\xE2\x9A\x96\xEF\xB8\x8F",
+ ':alembic:' => "\xE2\x9A\x97\xEF\xB8\x8F",
+ ':gear:' => "\xE2\x9A\x99\xEF\xB8\x8F",
+ ':atom:' => "\xE2\x9A\x9B\xEF\xB8\x8F",
+ ':atom_symbol:' => "\xE2\x9A\x9B\xEF\xB8\x8F",
+ ':fleur-de-lis:' => "\xE2\x9A\x9C\xEF\xB8\x8F",
+ ':coffin:' => "\xE2\x9A\xB0\xEF\xB8\x8F",
+ ':urn:' => "\xE2\x9A\xB1\xEF\xB8\x8F",
+ ':funeral_urn:' => "\xE2\x9A\xB1\xEF\xB8\x8F",
+ ':thunder_cloud_rain:' => "\xE2\x9B\x88\xEF\xB8\x8F",
+ ':thunder_cloud_and_rain:' => "\xE2\x9B\x88\xEF\xB8\x8F",
+ ':pick:' => "\xE2\x9B\x8F\xEF\xB8\x8F",
+ ':helmet_with_cross:' => "\xE2\x9B\x91\xEF\xB8\x8F",
+ ':helmet_with_white_cross:' => "\xE2\x9B\x91\xEF\xB8\x8F",
+ ':chains:' => "\xE2\x9B\x93\xEF\xB8\x8F",
+ ':shinto_shrine:' => "\xE2\x9B\xA9\xEF\xB8\x8F",
+ ':mountain:' => "\xE2\x9B\xB0\xEF\xB8\x8F",
+ ':beach_umbrella:' => "\xE2\x9B\xB1\xEF\xB8\x8F",
+ ':umbrella_on_ground:' => "\xE2\x9B\xB1\xEF\xB8\x8F",
+ ':ferry:' => "\xE2\x9B\xB4\xEF\xB8\x8F",
+ ':skier:' => "\xE2\x9B\xB7\xEF\xB8\x8F",
+ ':ice_skate:' => "\xE2\x9B\xB8\xEF\xB8\x8F",
+ ':basketball_player:' => "\xE2\x9B\xB9\xEF\xB8\x8F",
+ ':person_with_ball:' => "\xE2\x9B\xB9\xEF\xB8\x8F",
+ ':star_of_david:' => "\xE2\x9C\xA1\xEF\xB8\x8F",
+ ':heart_exclamation:' => "\xE2\x9D\xA3\xEF\xB8\x8F",
+ ':heavy_heart_exclamation_mark_ornament:' => "\xE2\x9D\xA3\xEF\xB8\x8F",
+ ':white_sun_small_cloud:' => "\xF0\x9F\x8C\xA4\xEF\xB8\x8F",
+ ':white_sun_with_small_cloud:' => "\xF0\x9F\x8C\xA4\xEF\xB8\x8F",
+ ':white_sun_cloud:' => "\xF0\x9F\x8C\xA5\xEF\xB8\x8F",
+ ':white_sun_behind_cloud:' => "\xF0\x9F\x8C\xA5\xEF\xB8\x8F",
+ ':white_sun_rain_cloud:' => "\xF0\x9F\x8C\xA6\xEF\xB8\x8F",
+ ':white_sun_behind_cloud_with_rain:' => "\xF0\x9F\x8C\xA6\xEF\xB8\x8F",
+ ':mouse_three_button:' => "\xF0\x9F\x96\xB1\xEF\xB8\x8F",
+ ':three_button_mouse:' => "\xF0\x9F\x96\xB1\xEF\xB8\x8F",
+ ':santa_tone1:' => "\xF0\x9F\x8E\x85\xF0\x9F\x8F\xBB",
+ ':santa_tone2:' => "\xF0\x9F\x8E\x85\xF0\x9F\x8F\xBC",
+ ':santa_tone3:' => "\xF0\x9F\x8E\x85\xF0\x9F\x8F\xBD",
+ ':santa_tone4:' => "\xF0\x9F\x8E\x85\xF0\x9F\x8F\xBE",
+ ':santa_tone5:' => "\xF0\x9F\x8E\x85\xF0\x9F\x8F\xBF",
+ ':metal_tone1:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBB",
+ ':sign_of_the_horns_tone1:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBB",
+ ':metal_tone2:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBC",
+ ':sign_of_the_horns_tone2:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBC",
+ ':metal_tone3:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBD",
+ ':sign_of_the_horns_tone3:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBD",
+ ':metal_tone4:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBE",
+ ':sign_of_the_horns_tone4:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBE",
+ ':metal_tone5:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBF",
+ ':sign_of_the_horns_tone5:' => "\xF0\x9F\xA4\x98\xF0\x9F\x8F\xBF",
+ ':lifter_tone1:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBB",
+ ':weight_lifter_tone1:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBB",
+ ':lifter_tone2:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBC",
+ ':weight_lifter_tone2:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBC",
+ ':lifter_tone3:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBD",
+ ':weight_lifter_tone3:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBD",
+ ':lifter_tone4:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBE",
+ ':weight_lifter_tone4:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBE",
+ ':lifter_tone5:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBF",
+ ':weight_lifter_tone5:' => "\xF0\x9F\x8F\x8B\xF0\x9F\x8F\xBF",
+ ':basketball_player_tone1:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBB",
+ ':person_with_ball_tone1:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBB",
+ ':basketball_player_tone2:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBC",
+ ':person_with_ball_tone2:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBC",
+ ':basketball_player_tone3:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBD",
+ ':person_with_ball_tone3:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBD",
+ ':basketball_player_tone4:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBE",
+ ':person_with_ball_tone4:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBE",
+ ':basketball_player_tone5:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBF",
+ ':person_with_ball_tone5:' => "\xE2\x9B\xB9\xF0\x9F\x8F\xBF",
+ ':upside_down:' => "\xF0\x9F\x99\x83",
+ ':upside_down_face:' => "\xF0\x9F\x99\x83",
+ ':money_mouth:' => "\xF0\x9F\xA4\x91",
+ ':money_mouth_face:' => "\xF0\x9F\xA4\x91",
+ ':nerd:' => "\xF0\x9F\xA4\x93",
+ ':nerd_face:' => "\xF0\x9F\xA4\x93",
+ ':hugging:' => "\xF0\x9F\xA4\x97",
+ ':hugging_face:' => "\xF0\x9F\xA4\x97",
+ ':rolling_eyes:' => "\xF0\x9F\x99\x84",
+ ':face_with_rolling_eyes:' => "\xF0\x9F\x99\x84",
+ ':thinking:' => "\xF0\x9F\xA4\x94",
+ ':thinking_face:' => "\xF0\x9F\xA4\x94",
+ ':zipper_mouth:' => "\xF0\x9F\xA4\x90",
+ ':zipper_mouth_face:' => "\xF0\x9F\xA4\x90",
+ ':thermometer_face:' => "\xF0\x9F\xA4\x92",
+ ':face_with_thermometer:' => "\xF0\x9F\xA4\x92",
+ ':head_bandage:' => "\xF0\x9F\xA4\x95",
+ ':face_with_head_bandage:' => "\xF0\x9F\xA4\x95",
+ ':robot:' => "\xF0\x9F\xA4\x96",
+ ':robot_face:' => "\xF0\x9F\xA4\x96",
+ ':lion_face:' => "\xF0\x9F\xA6\x81",
+ ':lion:' => "\xF0\x9F\xA6\x81",
+ ':unicorn:' => "\xF0\x9F\xA6\x84",
+ ':unicorn_face:' => "\xF0\x9F\xA6\x84",
+ ':scorpion:' => "\xF0\x9F\xA6\x82",
+ ':crab:' => "\xF0\x9F\xA6\x80",
+ ':turkey:' => "\xF0\x9F\xA6\x83",
+ ':cheese:' => "\xF0\x9F\xA7\x80",
+ ':cheese_wedge:' => "\xF0\x9F\xA7\x80",
+ ':hotdog:' => "\xF0\x9F\x8C\xAD",
+ ':hot_dog:' => "\xF0\x9F\x8C\xAD",
+ ':taco:' => "\xF0\x9F\x8C\xAE",
+ ':burrito:' => "\xF0\x9F\x8C\xAF",
+ ':popcorn:' => "\xF0\x9F\x8D\xBF",
+ ':champagne:' => "\xF0\x9F\x8D\xBE",
+ ':bottle_with_popping_cork:' => "\xF0\x9F\x8D\xBE",
+ ':bow_and_arrow:' => "\xF0\x9F\x8F\xB9",
+ ':archery:' => "\xF0\x9F\x8F\xB9",
+ ':amphora:' => "\xF0\x9F\x8F\xBA",
+ ':place_of_worship:' => "\xF0\x9F\x9B\x90",
+ ':worship_symbol:' => "\xF0\x9F\x9B\x90",
+ ':kaaba:' => "\xF0\x9F\x95\x8B",
+ ':mosque:' => "\xF0\x9F\x95\x8C",
+ ':synagogue:' => "\xF0\x9F\x95\x8D",
+ ':menorah:' => "\xF0\x9F\x95\x8E",
+ ':prayer_beads:' => "\xF0\x9F\x93\xBF",
+ ':cricket:' => "\xF0\x9F\x8F\x8F",
+ ':cricket_bat_ball:' => "\xF0\x9F\x8F\x8F",
+ ':volleyball:' => "\xF0\x9F\x8F\x90",
+ ':field_hockey:' => "\xF0\x9F\x8F\x91",
+ ':hockey:' => "\xF0\x9F\x8F\x92",
+ ':ping_pong:' => "\xF0\x9F\x8F\x93",
+ ':table_tennis:' => "\xF0\x9F\x8F\x93",
+ ':badminton:' => "\xF0\x9F\x8F\xB8",
+ ':flag_ax:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBD",
+ ':ax:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xBD",
+ ':flag_ta:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA6",
+ ':ta:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA6",
+ ':flag_io:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB4",
+ ':io:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB4",
+ ':flag_bq:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB6",
+ ':bq:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB6",
+ ':flag_cx:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBD",
+ ':cx:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBD",
+ ':flag_cc:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA8",
+ ':cc:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xA8",
+ ':flag_gg:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAC",
+ ':gg:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAC",
+ ':flag_im:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB2",
+ ':im:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB2",
+ ':flag_yt:' => "\xF0\x9F\x87\xBE\xF0\x9F\x87\xB9",
+ ':yt:' => "\xF0\x9F\x87\xBE\xF0\x9F\x87\xB9",
+ ':flag_nf:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAB",
+ ':nf:' => "\xF0\x9F\x87\xB3\xF0\x9F\x87\xAB",
+ ':flag_pn:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB3",
+ ':pn:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB3",
+ ':flag_bl:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB1",
+ ':bl:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xB1",
+ ':flag_pm:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB2",
+ ':pm:' => "\xF0\x9F\x87\xB5\xF0\x9F\x87\xB2",
+ ':flag_gs:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB8",
+ ':gs:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB8",
+ ':flag_tk:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB0",
+ ':tk:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xB0",
+ ':flag_bv:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBB",
+ ':bv:' => "\xF0\x9F\x87\xA7\xF0\x9F\x87\xBB",
+ ':flag_hm:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB2",
+ ':hm:' => "\xF0\x9F\x87\xAD\xF0\x9F\x87\xB2",
+ ':flag_sj:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAF",
+ ':sj:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xAF",
+ ':flag_um:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB2",
+ ':um:' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB2",
+ ':flag_ic:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xA8",
+ ':ic:' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xA8",
+ ':flag_ea:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xA6",
+ ':ea:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xA6",
+ ':flag_cp:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB5",
+ ':cp:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB5",
+ ':flag_dg:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAC",
+ ':dg:' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAC",
+ ':flag_as:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB8",
+ ':as:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB8",
+ ':flag_aq:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB6",
+ ':aq:' => "\xF0\x9F\x87\xA6\xF0\x9F\x87\xB6",
+ ':flag_vg:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAC",
+ ':vg:' => "\xF0\x9F\x87\xBB\xF0\x9F\x87\xAC",
+ ':flag_ck:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB0",
+ ':ck:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB0",
+ ':flag_cw:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBC",
+ ':cw:' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xBC",
+ ':flag_eu:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xBA",
+ ':eu:' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xBA",
+ ':flag_gf:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAB",
+ ':gf:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xAB",
+ ':flag_tf:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAB",
+ ':tf:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xAB",
+ ':flag_gp:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB5",
+ ':gp:' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xB5",
+ ':flag_mq:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB6",
+ ':mq:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB6",
+ ':flag_mp:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB5",
+ ':mp:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xB5",
+ ':flag_re:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xAA",
+ ':re:' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xAA",
+ ':flag_sx:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBD",
+ ':sx:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xBD",
+ ':flag_ss:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB8",
+ ':ss:' => "\xF0\x9F\x87\xB8\xF0\x9F\x87\xB8",
+ ':flag_tc:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA8",
+ ':tc:' => "\xF0\x9F\x87\xB9\xF0\x9F\x87\xA8",
+ ':flag_mf:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAB",
+ ':mf:' => "\xF0\x9F\x87\xB2\xF0\x9F\x87\xAB",
+ ':spy_tone1:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBB",
+ ':sleuth_or_spy_tone1:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBB",
+ ':spy_tone2:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBC",
+ ':sleuth_or_spy_tone2:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBC",
+ ':spy_tone3:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBD",
+ ':sleuth_or_spy_tone3:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBD",
+ ':spy_tone4:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBE",
+ ':sleuth_or_spy_tone4:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBE",
+ ':spy_tone5:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBF",
+ ':sleuth_or_spy_tone5:' => "\xF0\x9F\x95\xB5\xF0\x9F\x8F\xBF",
+ ':drum:' => "\xF0\x9F\xA5\x81",
+ ':drum_with_drumsticks:' => "\xF0\x9F\xA5\x81",
+ ':shrimp:' => "\xF0\x9F\xA6\x90",
+ ':squid:' => "\xF0\x9F\xA6\x91",
+ ':egg:' => "\xF0\x9F\xA5\x9A",
+ ':milk:' => "\xF0\x9F\xA5\x9B",
+ ':glass_of_milk:' => "\xF0\x9F\xA5\x9B",
+ ':peanuts:' => "\xF0\x9F\xA5\x9C",
+ ':shelled_peanut:' => "\xF0\x9F\xA5\x9C",
+ ':kiwi:' => "\xF0\x9F\xA5\x9D",
+ ':kiwifruit:' => "\xF0\x9F\xA5\x9D",
+ ':pancakes:' => "\xF0\x9F\xA5\x9E",
+ ':regional_indicator_w:' => "\xF0\x9F\x87\xBC",
+ ':regional_indicator_v:' => "\xF0\x9F\x87\xBB",
+ ':regional_indicator_u:' => "\xF0\x9F\x87\xBA",
+ ':regional_indicator_t:' => "\xF0\x9F\x87\xB9",
+ ':regional_indicator_s:' => "\xF0\x9F\x87\xB8",
+ ':regional_indicator_r:' => "\xF0\x9F\x87\xB7",
+ ':regional_indicator_q:' => "\xF0\x9F\x87\xB6",
+ ':regional_indicator_p:' => "\xF0\x9F\x87\xB5",
+ ':regional_indicator_o:' => "\xF0\x9F\x87\xB4",
+ ':regional_indicator_n:' => "\xF0\x9F\x87\xB3",
+ ':regional_indicator_m:' => "\xF0\x9F\x87\xB2",
+ ':regional_indicator_l:' => "\xF0\x9F\x87\xB1",
+ ':regional_indicator_k:' => "\xF0\x9F\x87\xB0",
+ ':regional_indicator_j:' => "\xF0\x9F\x87\xAF",
+ ':regional_indicator_i:' => "\xF0\x9F\x87\xAE",
+ ':regional_indicator_h:' => "\xF0\x9F\x87\xAD",
+ ':regional_indicator_g:' => "\xF0\x9F\x87\xAC",
+ ':regional_indicator_f:' => "\xF0\x9F\x87\xAB",
+ ':regional_indicator_e:' => "\xF0\x9F\x87\xAA",
+ ':regional_indicator_d:' => "\xF0\x9F\x87\xA9",
+ ':regional_indicator_c:' => "\xF0\x9F\x87\xA8",
+ ':regional_indicator_b:' => "\xF0\x9F\x87\xA7",
+ ':regional_indicator_a:' => "\xF0\x9F\x87\xA6"
+ );
+
+ protected $asciiRegexp = '(\\<3|<3|\\<\\/3|<\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\:\\-\\)|>\\:\\-\\)|\\>\\=\\)|>\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|x\\-p|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|>\\:\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|>\\.<|D\\:|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-Þ|\\:Þ|\\:Þ|\\:þ|\\:þ|\\:\\-þ|\\:\\-þ|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
+
+ /**
+ * Returns the shortcode unicode replacement rules
+ *
+ * @return array The shortcode unicode rules
+ */
+ public function getShortcodeReplace()
+ {
+ return $this->shortcode_replace;
+ }
+
+ /**
+ * Returns the ascii unicode replacement rules
+ *
+ * @return array The ascii unicode rules
+ */
+ public function getAsciiReplace()
+ {
+ return $this->ascii_replace;
+ }
+
+ /**
+ * Returns the unicode shortcode replacement rules
+ *
+ * @return array The unicode shortcode rules
+ */
+ public function getUnicodeReplace()
+ {
+ return $this->unicode_replace;
+ }
+
+ /**
+ * Returns the regexp to find ascii smilies
+ *
+ * @return string The regexp
+ */
+ public function getAsciiRegexp()
+ {
+ return $this->asciiRegexp;
+ }
+}
diff --git a/class/emoji/RulesetInterface.php b/class/emoji/RulesetInterface.php
new file mode 100644
index 0000000..5e49e42
--- /dev/null
+++ b/class/emoji/RulesetInterface.php
@@ -0,0 +1,34 @@
+
+
+
+ net.manuellemos.mimeparser
+
+ @(#) $Id: mime_parser.php,v 1.85 2012/08/23 12:19:59 mlemos Exp $
+ Copyright © (C) Manuel Lemos 2006 - 2008
+ MIME parser
+ Manuel Lemos
+ mlemos-at-acm.org
+
+
+ en
+ Parse MIME encapsulated e-mail message data compliant with
+ the RFC 2822 or aggregated in mbox format.
+ Use the function Decode function
+ to retrieve the structure of the messages to be parsed. Adjust its
+ parameters to tell how to return the decoded body data.
+ Use the SaveBody parameter to make the body parts be saved
+ to files when the message is larger than the available memory. Use
+ the SkipBody parameter to just retrieve the message
+ structure without returning the body data.
+ If the message data is an archive that may contain multiple messages
+ aggregated in the mbox format, set the variable
+ mbox to 1.
+
+
+{/metadocument}
+*/
+
+class mime_parser_class
+{
+/*
+{metadocument}
+
+ error
+ STRING
+
+
+ Store the message that is returned when an error
+ occurs.
+ Check this variable to understand what happened when a call to
+ any of the class functions has failed.
+ This class uses cumulative error handling. This means that if one
+ class functions that may fail is called and this variable was
+ already set to an error message due to a failure in a previous call
+ to the same or other function, the function will also fail and does
+ not do anything.
+ This allows programs using this class to safely call several
+ functions that may fail and only check the failure condition after
+ the last function call.
+ Just set this variable to an empty string to clear the error
+ condition.
+
+
+{/metadocument}
+*/
+ var $error='';
+
+/*
+{metadocument}
+
+ error_position
+ INTEGER
+ -1
+
+ Point to the position of the message data or file that
+ refers to the last error that occurred.
+ Check this variable to determine the relevant position of the
+ message when a parsing error occurs.
+
+
+{/metadocument}
+*/
+ var $error_position = -1;
+
+/*
+{metadocument}
+
+ mbox
+ BOOLEAN
+ 0
+
+ Specify whether the message data to parse is a single RFC
+ 2822 message or it is an archive that contain multiple messages in
+ the mbox format.
+ Set this variable to 1 if it is
+ it is intended to parse an mbox message archive.
+ mbox archives may contain multiple messages. Each message starts
+ with the header From. Since all valid RFC 2822 headers
+ must with a colon, the class will fail to parse a mbox archive if
+ this variable is set to 0.
+
+
+{/metadocument}
+*/
+ var $mbox = 0;
+
+/*
+{metadocument}
+
+ decode_headers
+ BOOLEAN
+ 1
+
+ Specify whether the message headers should be decoded.
+ Set this variable to 1 if it is
+ necessary to decode message headers that may have non-ASCII
+ characters and use other character set encodings.
+
+
+{/metadocument}
+*/
+ var $decode_headers = 1;
+
+/*
+{metadocument}
+
+ decode_bodies
+ BOOLEAN
+ 1
+
+ Specify whether the message body parts should be decoded.
+ Set this variable to 1 if it is
+ necessary to parse the message bodies and extract its part
+ structure.
+
+
+{/metadocument}
+*/
+ var $decode_bodies = 1;
+
+/*
+{metadocument}
+
+ extract_addresses
+ BOOLEAN
+ 1
+
+ Specify whether the message headers that usually contain
+ e-mail addresses should be parsed and the addresses should be
+ extracted by the Decode function.
+ Set this variable to 1 if it is
+ necessary to extract the e-mail addresses contained in certain
+ message headers.
+ The headers to be parsed are defined by the
+ address_headers variable.
+ The parsed addresses are returned by the
+ ExtractedAddresses entry of the
+ Decode
+ decoded
+ argument of the
+ Decode function.
+
+
+{/metadocument}
+*/
+ var $extract_addresses = 1;
+
+/*
+{metadocument}
+
+ address_headers
+ HASH
+
+
+ Specify which headers contain addresses that should be
+ parsed and extracted.
+ Change this variable if you need to extract e-mail addresses
+ from a different list of message headers.
+ It must be set to an associative array with keys set to the names
+ of the headers to be parsed including the colon. The array values
+ must be set to a boolean flag to tell whether the headers with the
+ respective name should be parsed. The header names must be in lower
+ case.
+ By default the class addresses from the headers:
+ from:, to:,
+ cc:, bcc:,
+ return-path:,
+ reply-to: and
+ disposition-notification-to:.
+
+
+{/metadocument}
+*/
+ var $address_headers = array(
+ 'from:' => 1,
+ 'to:' => 1,
+ 'cc:' => 1,
+ 'bcc:' => 1,
+ 'return-path:'=>1,
+ 'reply-to:'=>1,
+ 'disposition-notification-to:'=>1
+ );
+
+/*
+{metadocument}
+
+ message_buffer_length
+ INTEGER
+ 8000
+
+ Maximum length of the chunks of message data that the class
+ parse at one time.
+ Adjust this value according to the available memory.
+
+
+{/metadocument}
+*/
+ var $message_buffer_length = 8000;
+
+/*
+{metadocument}
+
+ ignore_syntax_errors
+ BOOLEAN
+ 1
+
+ Specify whether the class should ignore syntax errors in
+ malformed messages.
+ Set this variable to 0 if it is
+ necessary to verify whether message data may be corrupted due to
+ to eventual bugs in the program that generated the
+ message.
+ Currently the class only ignores some types of syntax errors.
+ Other syntax errors may still cause the
+ Decode to fail.
+
+
+{/metadocument}
+*/
+ var $ignore_syntax_errors=1;
+
+/*
+{metadocument}
+
+ warnings
+ HASH
+
+
+ Return a list of positions of the original message that
+ contain syntax errors.
+ Check this variable to retrieve eventual message syntax
+ errors that were ignored when the
+ ignore_syntax_errors is set to
+ 1.
+ The indexes of this array are the positions of the errors. The
+ array values are the corresponding syntax error messages.
+
+
+{/metadocument}
+*/
+ var $warnings=array();
+
+/*
+{metadocument}
+
+ track_lines
+ BOOLEAN
+ 0
+
+ Tell the class to keep track the position of each message
+ line.
+ Set this variable to 1 if you
+ need to determine the line and column number associated to a given
+ position of the parsed message.
+
+
+{/metadocument}
+*/
+ var $track_lines = 0;
+
+/*
+{metadocument}
+
+ use_part_file_names
+ BOOLEAN
+ 0
+
+ Tell the class to try to use the original message
+ attachment file names when saving body parts to files.
+ Set this variable to 1 if you
+ would like to have attachments be saved to file with the names
+ that were used when the message was sent.
+
+
+{/metadocument}
+*/
+ var $use_part_file_names = 0;
+
+/*
+{metadocument}
+
+ custom_mime_types
+ HASH
+
+
+ List of MIME types not yet recognized by the
+ Analyze function that applications
+ may define.
+ Set this variable to an associative array of custom MIME
+ types that your application recognizes, so the
+ Analyze function does not fail when
+ message parts are found with those MIME types.
+ The indexes of this array are the MIME type names with lower case
+ letters. The array values are also associative arrays with an
+ entry named Type that defines the type of content and
+ another entry named Description that defines the content
+ type description.
+
+
+{/metadocument}
+*/
+ var $custom_mime_types = array();
+
+ /* Private variables */
+ var $state = MIME_PARSER_START;
+ var $buffer = '';
+ var $buffer_position = 0;
+ var $offset = 0;
+ var $parts = array();
+ var $part_position = 0;
+ var $headers = array();
+ var $body_parser;
+ var $body_parser_state = MIME_PARSER_BODY_DONE;
+ var $body_buffer = '';
+ var $body_buffer_position = 0;
+ var $body_offset = 0;
+ var $current_header = '';
+ var $file;
+ var $body_file;
+ var $position = 0;
+ var $body_part_number = 1;
+ var $next_token = '';
+ var $lines = array();
+ var $line_offset = 0;
+ var $last_line = 1;
+ var $last_carriage_return = 0;
+ var $header_name_characters = '!"#$%&\'()*+,-./0123456789;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}';
+ var $message_position = 0;
+
+ /* Private functions */
+
+ Function SetError($error)
+ {
+ $this->error = $error;
+ return(0);
+ }
+
+ Function SetErrorWithContact($error)
+ {
+ return($this->SetError($error.'. Please contact the author Manuel Lemos and send a copy of this message to let him add support for this kind of messages'));
+ }
+
+ Function SetPositionedError($error, $position)
+ {
+ $this->error_position = $position;
+ return($this->SetError($error));
+ }
+
+ Function SetPositionedWarning($error, $position)
+ {
+ if(!$this->ignore_syntax_errors)
+ return($this->SetPositionedError($error, $position));
+ $this->warnings[$position]=$error;
+ return(1);
+ }
+
+ Function SetPHPError($error, &$php_error_message)
+ {
+ if(IsSet($php_error_message)
+ && strlen($php_error_message))
+ $error .= ': '.$php_error_message;
+ return($this->SetError($error));
+ }
+
+ Function ResetParserState()
+ {
+ $this->error='';
+ $this->error_position = -1;
+ $this->state = MIME_PARSER_START;
+ $this->buffer = '';
+ $this->buffer_position = 0;
+ $this->offset = 0;
+ $this->parts = array();
+ $this->part_position = 0;
+ $this->headers = array();
+ $this->body_parser_state = MIME_PARSER_BODY_DONE;
+ $this->body_buffer = '';
+ $this->body_buffer_position = 0;
+ $this->body_offset = 0;
+ $this->current_header = '';
+ $this->position = 0;
+ $this->body_part_number = 1;
+ $this->next_token = '';
+ $this->lines = ($this->track_lines ? array(0 => 0) : array());
+ $this->line_offset = 0;
+ $this->last_line = 0;
+ $this->last_carriage_return = 0;
+ }
+
+ Function Tokenize($string,$separator="")
+ {
+ if(!strcmp($separator,""))
+ {
+ $separator=$string;
+ $string=$this->next_token;
+ }
+ for($character=0;$characternext_token=substr($string,$found+1);
+ return(substr($string,0,$found));
+ }
+ else
+ {
+ $this->next_token='';
+ return($string);
+ }
+ }
+
+ Function ParseStructuredHeader($value, &$type, &$parameters, &$character_sets, &$languages)
+ {
+ $type = strtolower(trim($this->Tokenize($value, ';')));
+ $p = trim($this->Tokenize(''));
+ $parameters = $character_sets = $languages = array();
+ while(strlen($p))
+ {
+ $parameter = trim(strtolower($this->Tokenize($p, '=')));
+ $remaining = trim($this->Tokenize(''));
+ if(strlen($remaining)
+ && !strcmp($remaining[0], '"')
+ && (GetType($quote = strpos($remaining, '"', 1)) == 'integer'))
+ {
+ $value = substr($remaining, 1, $quote - 1);
+ $p = trim(substr($remaining, $quote + 1));
+ if(strlen($p) > 0
+ && !strcmp($p[0], ';'))
+ $p = substr($p, 1);
+ }
+ else
+ {
+ $value = trim($this->Tokenize($remaining, ';'));
+ $p = trim($this->Tokenize(''));
+ }
+ if(($l=strlen($parameter))
+ && !strcmp($parameter[$l - 1],'*'))
+ {
+ $parameter=$this->Tokenize($parameter, '*');
+ if(IsSet($parameters[$parameter])
+ && IsSet($character_sets[$parameter]))
+ $value = $parameters[$parameter] . UrlDecode($value);
+ else
+ {
+ $character_sets[$parameter] = strtolower($this->Tokenize($value, '\''));
+ $languages[$parameter] = $this->Tokenize('\'');
+ $value = UrlDecode($this->Tokenize(''));
+ }
+ }
+ $parameters[$parameter] = $value;
+ }
+ }
+
+ Function FindStringLineBreak($string, $position, &$break, &$line_break)
+ {
+ if(GetType($line_break=strpos($string, $break="\r", $position))=='integer')
+ {
+ if(GetType($new_line_break=strpos($string, "\n", $position))=='integer')
+ {
+ if($new_line_break < $line_break)
+ {
+ $break = "\n";
+ $line_break = $new_line_break;
+ return(1);
+ }
+ }
+ if($line_break>$position
+ && $string[$line_break-1]=="\r")
+ {
+ $line_break--;
+ $break="\r\n";
+ }
+ return(1);
+ }
+ return(GetType($line_break=strpos($string, $break="\n", $position))=='integer');
+ }
+
+ Function FindLineBreak($position, &$break, &$line_break)
+ {
+ if(GetType($line_break=strpos($this->buffer, $break="\r", $position))=='integer')
+ {
+ if(GetType($new_line_break=strpos($this->buffer, "\n", $position))=='integer')
+ {
+ if($new_line_break < $line_break)
+ {
+ $break = "\n";
+ $line_break = $new_line_break;
+ return(1);
+ }
+ }
+ if(($n = $line_break + 1) < strlen($this->buffer)
+ && $this->buffer[$n]=="\n")
+ $break="\r\n";
+ return(1);
+ }
+ return(GetType($line_break=strpos($this->buffer, $break="\n", $position))=='integer');
+ }
+
+ Function FindBodyLineBreak($position, &$break, &$line_break)
+ {
+ if(GetType($line_break=strpos($this->body_buffer, $break="\r", $position))=='integer')
+ {
+ if(GetType($new_line_break=strpos($this->body_buffer, "\n", $position))=='integer')
+ {
+ if($new_line_break < $line_break)
+ {
+ $break = "\n";
+ $line_break = $new_line_break;
+ return(1);
+ }
+ }
+ if(($n = $line_break + 1) < strlen($this->body_buffer)
+ && $this->body_buffer[$n]=="\n")
+ $break="\r\n";
+ return(1);
+ }
+ return(GetType($line_break=strpos($this->body_buffer, $break="\n", $position))=='integer');
+ }
+
+ Function ParseHeaderString($body, &$position, &$headers)
+ {
+ $l = strlen($body);
+ $headers = array();
+ for(;$position < $l;)
+ {
+ if($this->FindStringLineBreak($body, $position, $break, $line_break))
+ {
+ $line = substr($body, $position, $line_break - $position);
+ $position = $line_break + strlen($break);
+ }
+ else
+ {
+ $line = substr($body, $position);
+ $position = $l;
+ }
+ if(strlen($line)==0)
+ break;
+ $h = strtolower(strtok($line,':'));
+ $headers[$h] = trim(strtok(''));
+ }
+ }
+
+ Function ParsePart($end, &$part, &$need_more_data)
+ {
+ $need_more_data = 0;
+ switch($this->state)
+ {
+ case MIME_PARSER_START:
+ $part=array(
+ 'Type'=>'MessageStart',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->state = MIME_PARSER_HEADER;
+ break;
+ case MIME_PARSER_HEADER:
+ if($this->FindLineBreak($this->buffer_position, $break, $line_break))
+ {
+ $next = $line_break + strlen($break);
+ if(!strcmp($break,"\r")
+ && strlen($this->buffer) == $next
+ && !$end)
+ {
+ $need_more_data = 1;
+ break;
+ }
+ if($line_break==$this->buffer_position)
+ {
+ $part=array(
+ 'Type'=>'BodyStart',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $next;
+ $this->state = MIME_PARSER_BODY;
+ break;
+ }
+ }
+ if(($break = strspn($this->buffer, $this->header_name_characters, $this->buffer_position) + $this->buffer_position) < strlen($this->buffer))
+ {
+ switch($this->buffer[$break])
+ {
+ case ':':
+ $next = $break + 1;
+ break;
+ case ' ':
+ if(substr($this->buffer, $this->buffer_position, $break - $this->buffer_position)==='From')
+ {
+ $next = $break + 1;
+ break;
+ }
+ default:
+ if(!$this->SetPositionedWarning('message headers do not end with empty line', $this->buffer_position))
+ return(0);
+ $part=array(
+ 'Type'=>'BodyStart',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->state = MIME_PARSER_BODY;
+ break 2;
+ }
+ }
+ else
+ {
+ $need_more_data = !$end;
+ if($end)
+ {
+ $part=array(
+ 'Type'=>'BodyStart',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->state = MIME_PARSER_BODY;
+ }
+ break;
+ }
+
+ $part=array(
+ 'Type'=>'HeaderName',
+ 'Name'=>substr($this->buffer, $this->buffer_position, $next - $this->buffer_position),
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $next;
+ $this->state = MIME_PARSER_HEADER_VALUE;
+ break;
+ case MIME_PARSER_HEADER_VALUE:
+ $position = $this->buffer_position;
+ $value = '';
+ for(;;)
+ {
+ if($this->FindLineBreak($position, $break, $line_break))
+ {
+ $next = $line_break + strlen($break);
+ $line = substr($this->buffer, $position, $line_break - $position);
+ if(strlen($this->buffer) == $next)
+ {
+ if(!$end)
+ {
+ $need_more_data = 1;
+ break 2;
+ }
+ $value .= $line;
+ $part=array(
+ 'Type'=>'HeaderValue',
+ 'Value'=>$value,
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $next;
+ $this->state = MIME_PARSER_END;
+ break ;
+ }
+ else
+ {
+ $character = $this->buffer[$next];
+ if(!strcmp($character, ' ')
+ || !strcmp($character, "\t"))
+ {
+ $value .= $line;
+ $position = $next;
+ }
+ else
+ {
+ $value .= $line;
+ $part=array(
+ 'Type'=>'HeaderValue',
+ 'Value'=>$value,
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $next;
+ $this->state = MIME_PARSER_HEADER;
+ break 2;
+ }
+ }
+ }
+ else
+ {
+ if(!$end)
+ {
+ $need_more_data = 1;
+ break;
+ }
+ else
+ {
+ $value .= substr($this->buffer, $position);
+ $part=array(
+ 'Type'=>'HeaderValue',
+ 'Value'=>$value,
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = strlen($this->buffer);
+ $this->state = MIME_PARSER_END;
+ break;
+ }
+ }
+ }
+ break;
+ case MIME_PARSER_BODY:
+ if($this->mbox)
+ {
+ $add = 0;
+ $append='';
+ if($this->FindLineBreak($this->buffer_position, $break, $line_break))
+ {
+ $next = $line_break + strlen($break);
+ $following = $next + strlen($break);
+ if($following >= strlen($this->buffer)
+ || GetType($line=strpos($this->buffer, $break, $following))!='integer')
+ {
+ if(!$end)
+ {
+ $need_more_data = 1;
+ break;
+ }
+ }
+ $start = substr($this->buffer, $next, strlen($break.'From '));
+ if(!strcmp($break.'From ', $start))
+ {
+ if($line_break == $this->buffer_position)
+ {
+ $part=array(
+ 'Type'=>'MessageEnd',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $following;
+ $this->state = MIME_PARSER_START;
+ break;
+ }
+ else
+ $add = strlen($break);
+ $next = $line_break;
+ }
+ elseif(($indent = strspn($this->buffer, '>', $next)) > 0)
+ {
+ $start = substr($this->buffer, $next + $indent, strlen('From '));
+ if(!strcmp('From ', $start))
+ {
+ $part=array(
+ 'Type'=>'BodyData',
+ 'Data'=>substr($this->buffer, $this->buffer_position, $next - $this->buffer_position),
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->buffer_position = $next + 1;
+ break;
+ }
+ }
+ }
+ else
+ {
+ if(!$end)
+ {
+ $need_more_data = 1;
+ break;
+ }
+ $next = strlen($this->buffer);
+ $append="\r\n";
+ }
+ if($next > $this->buffer_position)
+ {
+ $part=array(
+ 'Type'=>'BodyData',
+ 'Data'=>substr($this->buffer, $this->buffer_position, $next + $add - $this->buffer_position).$append,
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ }
+ elseif($end)
+ {
+ $part=array(
+ 'Type'=>'MessageEnd',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->state = MIME_PARSER_END;
+ }
+ $this->buffer_position = $next;
+ }
+ else
+ {
+ if(strlen($this->buffer)-$this->buffer_position)
+ {
+ $data=substr($this->buffer, $this->buffer_position, strlen($this->buffer) - $this->buffer_position);
+ $end_line = (!strcmp(substr($data,-1),"\n") || !strcmp(substr($data,-1),"\r"));
+ if($end
+ && !$end_line)
+ {
+ $data.="\n";
+ $end_line = 1;
+ }
+ $offset = $this->offset + $this->buffer_position;
+ $this->buffer_position = strlen($this->buffer);
+ $need_more_data = !$end;
+ if(!$end_line)
+ {
+ if(GetType($line_break=strrpos($data, "\n"))=='integer'
+ || GetType($line_break=strrpos($data, "\r"))=='integer')
+ {
+ $line_break++;
+ $this->buffer_position -= strlen($data) - $line_break;
+ $data = substr($data, 0, $line_break);
+ }
+ }
+ $part=array(
+ 'Type'=>'BodyData',
+ 'Data'=>$data,
+ 'Position'=>$offset
+ );
+ }
+ else
+ {
+ if($end)
+ {
+ $part=array(
+ 'Type'=>'MessageEnd',
+ 'Position'=>$this->offset + $this->buffer_position
+ );
+ $this->state = MIME_PARSER_END;
+ }
+ else
+ $need_more_data = 1;
+ }
+ }
+ break;
+ default:
+ return($this->SetPositionedError($this->state.' is not a valid parser state', $this->buffer_position));
+ }
+ return(1);
+ }
+
+ Function QueueBodyParts()
+ {
+ for(;;)
+ {
+ if(!$this->body_parser->GetPart($part,$end))
+ return($this->SetError($this->body_parser->error));
+ if($end)
+ return(1);
+ if(!IsSet($part['Part']))
+ $part['Part']=$this->headers['Boundary'];
+ $this->parts[]=$part;
+ }
+ }
+
+ Function ParseParameters($value, &$first, &$parameters, $return)
+ {
+ $first = strtolower(trim(strtok($value, ';')));
+ $values = trim(strtok(''));
+ $parameters = array();
+ $return_value = '';
+ while(strlen($values))
+ {
+ $parameter = trim(strtolower(strtok($values, '=')));
+ $value = trim(strtok(';'));
+ $l = strlen($value);
+ if($l > 1
+ && !strcmp($value[0], '"')
+ && !strcmp($value[$l - 1], '"'))
+ $value = substr($value, 1, $l - 2);
+ $parameters[$parameter] = $value;
+ if(!strcmp($parameter, $return))
+ $return_value = $value;
+ $values = trim(strtok(''));
+ }
+ return($return_value);
+ }
+
+ Function ParseBody($data, $end, $offset)
+ {
+ $success = $this->body_parser->Parse($data, $end);
+ $tw = count($this->body_parser->warnings);
+ for(Reset($this->body_parser->warnings), $w = 0; $w < $tw; ++$w, Next($this->body_parser->warnings))
+ {
+ $position = Key($this->body_parser->warnings);
+ $this->SetPositionedWarning($this->body_parser->warnings[$position], $offset + $position + $this->body_parser->message_position);
+ }
+ if(!$success)
+ {
+ if(($this->error_position = $this->body_parser->error_position) != -1)
+ $this->body_parser->error_position += $offset + $this->body_parser->message_position;
+ return($this->SetError($this->body_parser->error));
+ }
+ return(1);
+ }
+
+ Function DecodePart($part)
+ {
+ switch($part['Type'])
+ {
+ case 'MessageStart':
+ $this->headers=array();
+ break;
+ case 'HeaderName':
+ if($this->decode_bodies)
+ $this->current_header = strtolower($part['Name']);
+ break;
+ case 'HeaderValue':
+ if($this->decode_headers)
+ {
+ $value = $part['Value'];
+ $error = '';
+ for($decoded_header = array(), $position = 0; $positionsubstr($value, $position),
+ 'Encoding'=>'ASCII'
+ );
+ }
+ }
+ break;
+ }
+ $set = $encoded + 2;
+ if(GetType($method=strpos($value,'?', $set))!='integer')
+ {
+ $error = 'invalid header encoding syntax '.$part['Value'];
+ $error_position = $part['Position'] + $set;
+ break;
+ }
+ $encoding=strtoupper(substr($value, $set, $method - $set));
+ $method += 1;
+ if(GetType($data=strpos($value,'?', $method))!='integer')
+ {
+ $error = 'invalid header encoding syntax '.$part['Value'];
+ $error_position = $part['Position'] + $set;
+ break;
+ }
+ $start = $data + 1;
+ if(GetType($end=strpos($value,'?=', $start))!='integer')
+ {
+ $error = 'invalid header encoding syntax '.$part['Value'];
+ $error_position = $part['Position'] + $start;
+ break;
+ }
+ if($encoded > $position)
+ {
+ if(count($decoded_header))
+ $decoded_header[count($decoded_header)-1]['Value'].=substr($value, $position, $encoded - $position);
+ else
+ {
+ $decoded_header[]=array(
+ 'Value'=>substr($value, $position, $encoded - $position),
+ 'Encoding'=>'ASCII'
+ );
+ }
+ }
+ switch(strtolower(substr($value, $method, $data - $method)))
+ {
+ case 'q':
+ if($end>$start)
+ {
+ for($decoded = '', $position = $start; $position < $end ; )
+ {
+ switch($value[$position])
+ {
+ case '=':
+ $h = HexDec($hex = strtolower(substr($value, $position+1, 2)));
+ if($end - $position < 3
+ || strcmp(sprintf('%02x', $h), $hex))
+ {
+ $warning = 'the header specified an invalid encoded character';
+ $warning_position = $part['Position'] + $position + 1;
+ if($this->ignore_syntax_errors)
+ {
+ $this->SetPositionedWarning($warning, $warning_position);
+ $decoded .= '=';
+ $position ++;
+ }
+ else
+ {
+ $error = $warning;
+ $error_position = $warning_position;
+ break 4;
+ }
+ }
+ else
+ {
+ $decoded .= Chr($h);
+ $position += 3;
+ }
+ break;
+ case '_':
+ $decoded .= ' ';
+ $position++;
+ break;
+ default:
+ $decoded .= $value[$position];
+ $position++;
+ break;
+ }
+ }
+ if(count($decoded_header)
+ && (!strcmp($decoded_header[$last = count($decoded_header)-1]['Encoding'], 'ASCII')
+ || !strcmp($decoded_header[$last]['Encoding'], $encoding)))
+ {
+ $decoded_header[$last]['Value'].= $decoded;
+ $decoded_header[$last]['Encoding']= $encoding;
+ }
+ else
+ {
+ $decoded_header[]=array(
+ 'Value'=>$decoded,
+ 'Encoding'=>$encoding
+ );
+ }
+ }
+ break;
+ case 'b':
+ $decoded=base64_decode(substr($value, $start, $end - $start));
+ if($end <= $start
+ || GetType($decoded) != 'string'
+ || strlen($decoded) == 0)
+ {
+ $warning = 'the header specified an invalid base64 encoded text';
+ $warning_position = $part['Position'] + $start;
+ if($this->ignore_syntax_errors)
+ $this->SetPositionedWarning($warning, $warning_position);
+ else
+ {
+ $error = $warning;
+ $error_position = $warning_position;
+ break 2;
+ }
+ }
+ if(count($decoded_header)
+ && (!strcmp($decoded_header[$last = count($decoded_header)-1]['Encoding'], 'ASCII')
+ || !strcmp($decoded_header[$last]['Encoding'], $encoding)))
+ {
+ $decoded_header[$last]['Value'].= $decoded;
+ $decoded_header[$last]['Encoding']= $encoding;
+ }
+ else
+ {
+ $decoded_header[]=array(
+ 'Value'=>$decoded,
+ 'Encoding'=>$encoding
+ );
+ }
+ break;
+ default:
+ $error = 'the header specified an unsupported encoding method';
+ $error_position = $part['Position'] + $method;
+ break 2;
+ }
+ $position = $end + 2;
+ if(($space = strspn($value, " \t", $position)) > 0)
+ $position += $space - 1;
+ }
+ if(strlen($error)==0
+ && count($decoded_header))
+ $part['Decoded']=$decoded_header;
+ }
+ if($this->decode_bodies
+ || $this->decode_headers)
+ {
+ switch($this->current_header)
+ {
+ case 'content-type:':
+ $boundary = $this->ParseParameters($part['Value'], $type, $parameters, 'boundary');
+ $this->headers['Type'] = $type;
+ if($this->decode_headers)
+ {
+ $part['MainValue'] = $type;
+ $part['Parameters'] = $parameters;
+ }
+ if(!strcmp(strtok($type, '/'), 'multipart'))
+ {
+ $this->headers['Multipart'] = 1;
+ if(strlen($boundary))
+ $this->headers['Boundary'] = $boundary;
+ else
+ return($this->SetPositionedError('multipart content-type header does not specify the boundary parameter', $part['Position']));
+ }
+ break;
+ case 'content-transfer-encoding:':
+ switch($this->headers['Encoding']=strtolower(trim($part['Value'])))
+ {
+ case 'quoted-printable':
+ $this->headers['QuotedPrintable'] = 1;
+ break;
+ case '7 bit':
+ case '8 bit':
+ if(!$this->SetPositionedWarning('"'.$this->headers['Encoding'].'" is an incorrect content transfer encoding type', $part['Position']))
+ return(0);
+ case '7bit':
+ case '8bit':
+ case 'binary':
+ break;
+ case 'base64':
+ $this->headers['Base64']=1;
+ break;
+ default:
+ if(!$this->SetPositionedWarning('decoding '.$this->headers['Encoding'].' encoded bodies is not yet supported', $part['Position']))
+ return(0);
+ }
+ break;
+ }
+ }
+ break;
+ case 'BodyStart':
+ if($this->decode_bodies
+ && IsSet($this->headers['Multipart']))
+ {
+ $this->body_parser_state = MIME_PARSER_BODY_START;
+ $this->body_buffer = '';
+ $this->body_buffer_position = 0;
+ }
+ break;
+ case 'MessageEnd':
+ if($this->decode_bodies
+ && IsSet($this->headers['Multipart'])
+ && $this->body_parser_state != MIME_PARSER_BODY_DONE)
+ {
+ if($this->body_parser_state != MIME_PARSER_BODY_DATA)
+ return($this->SetPositionedError('incomplete message body part', $part['Position']));
+ if(!$this->SetPositionedWarning('truncated message body part', $part['Position']))
+ return(0);
+ }
+ break;
+ case 'BodyData':
+ if($this->decode_bodies)
+ {
+ if(strlen($this->body_buffer)==0)
+ {
+ $this->body_buffer = $part['Data'];
+ $this->body_offset = $part['Position'];
+ }
+ else
+ $this->body_buffer .= $part['Data'];
+ if(IsSet($this->headers['Multipart']))
+ {
+ $boundary = '--'.$this->headers['Boundary'];
+ switch($this->body_parser_state)
+ {
+ case MIME_PARSER_BODY_START:
+ for($position = $this->body_buffer_position; ;)
+ {
+ if(!$this->FindBodyLineBreak($position, $break, $line_break))
+ return(1);
+ $next = $line_break + strlen($break);
+ if(!strcmp(rtrim(substr($this->body_buffer, $position, $line_break - $position)), $boundary))
+ {
+ $part=array(
+ 'Type'=>'StartPart',
+ 'Part'=>$this->headers['Boundary'],
+ 'Position'=>$this->body_offset + $next
+ );
+ $this->parts[]=$part;
+ UnSet($this->body_parser);
+ $this->body_parser = new mime_parser_class;
+ $this->body_parser->decode_bodies = 1;
+ $this->body_parser->decode_headers = $this->decode_headers;
+ $this->body_parser->mbox = 0;
+ $this->body_parser_state = MIME_PARSER_BODY_DATA;
+ $this->body_buffer = substr($this->body_buffer, $next);
+ $this->body_offset += $next;
+ $this->body_buffer_position = 0;
+ break;
+ }
+ else
+ $position = $next;
+ }
+ case MIME_PARSER_BODY_DATA:
+ for($position = $this->body_buffer_position; ;)
+ {
+ if(!$this->FindBodyLineBreak($position, $break, $line_break))
+ {
+ if($position > 0)
+ {
+ if(!$this->ParseBody(substr($this->body_buffer, 0, $position), 0, $this->body_offset))
+ return(0);
+ if(!$this->QueueBodyParts())
+ return(0);
+ }
+ $this->body_buffer = substr($this->body_buffer, $position);
+ $this->body_buffer_position = 0;
+ $this->body_offset += $position;
+ return(1);
+ }
+ $next = $line_break + strlen($break);
+ $line = rtrim(substr($this->body_buffer, $position, $line_break - $position));
+ if(!strcmp($line, $boundary.'--'))
+ {
+ if(!$this->ParseBody(substr($this->body_buffer, 0, $position), 1, $this->body_offset))
+ return(0);
+ if(!$this->QueueBodyParts())
+ return(0);
+ $part=array(
+ 'Type'=>'EndPart',
+ 'Part'=>$this->headers['Boundary'],
+ 'Position'=>$this->body_offset + $position
+ );
+ $this->body_buffer = substr($this->body_buffer, $next);
+ $this->body_buffer_position = 0;
+ $this->body_offset += $next;
+ $this->body_parser_state = MIME_PARSER_BODY_DONE;
+ break 2;
+ }
+ elseif(!strcmp($line, $boundary))
+ {
+ if(!$this->ParseBody(substr($this->body_buffer, 0, $position), 1, $this->body_offset))
+ return(0);
+ if(!$this->QueueBodyParts())
+ return(0);
+ $part=array(
+ 'Type'=>'EndPart',
+ 'Part'=>$this->headers['Boundary'],
+ 'Position'=>$this->body_offset + $position
+ );
+ $this->parts[] = $part;
+ $part=array(
+ 'Type'=>'StartPart',
+ 'Part'=>$this->headers['Boundary'],
+ 'Position'=>$this->body_offset + $next
+ );
+ $this->parts[] = $part;
+ UnSet($this->body_parser);
+ $this->body_parser = new mime_parser_class;
+ $this->body_parser->decode_bodies = 1;
+ $this->body_parser->decode_headers = $this->decode_headers;
+ $this->body_parser->mbox = 0;
+ $this->body_buffer = substr($this->body_buffer, $next);
+ $this->body_buffer_position = 0;
+ $this->body_offset += $next;
+ $position=0;
+ continue;
+ }
+ $position = $next;
+ }
+ break;
+ case MIME_PARSER_BODY_DONE:
+ return(1);
+ default:
+ return($this->SetPositionedError($this->state.' is not a valid body parser state', $this->body_buffer_position));
+ }
+ }
+ elseif(IsSet($this->headers['QuotedPrintable']))
+ {
+ for($end = strlen($this->body_buffer), $decoded = '', $position = $this->body_buffer_position; $position < $end; )
+ {
+ if(GetType($equal = strpos($this->body_buffer, '=', $position))!='integer')
+ {
+ $decoded .= substr($this->body_buffer, $position);
+ $position = $end;
+ break;
+ }
+ $next = $equal + 1;
+ switch($end - $equal)
+ {
+ case 1:
+ $decoded .= substr($this->body_buffer, $position, $equal - $position);
+ $position = $equal;
+ break 2;
+ case 2:
+ $decoded .= substr($this->body_buffer, $position, $equal - $position);
+ if(!strcmp($this->body_buffer[$next],"\n"))
+ $position = $end;
+ else
+ $position = $equal;
+ break 2;
+ }
+ if(!strcmp(substr($this->body_buffer, $next, 2), $break="\r\n")
+ || !strcmp($this->body_buffer[$next], $break="\n")
+ || !strcmp($this->body_buffer[$next], $break="\r"))
+ {
+ $decoded .= substr($this->body_buffer, $position, $equal - $position);
+ $position = $next + strlen($break);
+ continue;
+ }
+ $decoded .= substr($this->body_buffer, $position, $equal - $position);
+ $h = HexDec($hex=strtolower(substr($this->body_buffer, $next, 2)));
+ if(strcmp(sprintf('%02x', $h), $hex))
+ {
+ if(!$this->SetPositionedWarning('the body specified an invalid quoted-printable encoded character', $this->body_offset + $next))
+ return(0);
+ $decoded.='=';
+ $position=$next;
+ }
+ else
+ {
+ $decoded .= Chr($h);
+ $position = $equal + 3;
+ }
+ }
+ if(strlen($decoded)==0)
+ {
+ $this->body_buffer_position = $position;
+ return(1);
+ }
+ $part['Data'] = $decoded;
+ $this->body_buffer = substr($this->body_buffer, $position);
+ $this->body_buffer_position = 0;
+ $this->body_offset += $position;
+ }
+ elseif(IsSet($this->headers['Base64']))
+ {
+ $part['Data'] = base64_decode($this->body_buffer_position ? substr($this->body_buffer,$this->body_buffer_position) : $this->body_buffer);
+ $this->body_offset += strlen($this->body_buffer) - $this->body_buffer_position;
+ $this->body_buffer_position = 0;
+ $this->body_buffer = '';
+ }
+ else
+ {
+ $part['Data'] = substr($this->body_buffer, $this->body_buffer_position);
+ $this->body_buffer_position = 0;
+ $this->body_buffer = '';
+ }
+ }
+ break;
+ }
+ $this->parts[]=$part;
+ return(1);
+ }
+
+ Function DecodeStream($parameters, $position, &$end_of_message, &$decoded)
+ {
+ $this->message_position = $position;
+ $end_of_message = 1;
+ $state = MIME_MESSAGE_START;
+ for(;;)
+ {
+ if(!$this->GetPart($part, $end))
+ return(0);
+ if($end)
+ {
+ if(IsSet($parameters['File']))
+ {
+ $end_of_data = feof($this->file);
+ if($end_of_data)
+ break;
+ $data = @fread($this->file, $this->message_buffer_length);
+ if(GetType($data)!='string')
+ return($this->SetPHPError('could not read the message file', $php_errormsg));
+ $end_of_data = feof($this->file);
+ }
+ else
+ {
+ $end_of_data=($this->position>=strlen($parameters['Data']));
+ if($end_of_data)
+ break;
+ $data = substr($parameters['Data'], $this->position, $this->message_buffer_length);
+ $this->position += strlen($data);
+ $end_of_data = ($this->position >= strlen($parameters['Data']));
+ }
+ if(!$this->Parse($data, $end_of_data))
+ return(0);
+ continue;
+ }
+ $type = $part['Type'];
+ switch($state)
+ {
+ case MIME_MESSAGE_START:
+ switch($type)
+ {
+ case 'MessageStart':
+ $decoded=array(
+ 'Headers'=>array(),
+ 'Parts'=>array(),
+ 'Position'=>$this->message_position,
+ );
+ $end_of_message = 0;
+ $state = MIME_MESSAGE_GET_HEADER_NAME;
+ continue 3;
+ case 'MessageEnd':
+ return($this->SetPositionedWarning('incorrectly ended body part', $part['Position']));
+ }
+ break;
+
+ case MIME_MESSAGE_GET_HEADER_NAME:
+ switch($type)
+ {
+ case 'HeaderName':
+ $header = strtolower($part['Name']);
+ $state = MIME_MESSAGE_GET_HEADER_VALUE;
+ continue 3;
+ case 'BodyStart':
+ $state = MIME_MESSAGE_GET_BODY;
+ $part_number = 0;
+ continue 3;
+ }
+ break;
+
+ case MIME_MESSAGE_GET_HEADER_VALUE:
+ switch($type)
+ {
+ case 'HeaderValue':
+ $value = trim($part['Value']);
+ if(!IsSet($decoded['Headers'][$header]))
+ {
+ $h = 0;
+ $decoded['Headers'][$header]=$value;
+ if($this->extract_addresses
+ && IsSet($this->address_headers[$header]))
+ $decoded['HeaderPositions'][$header] = $part['Position'];
+ }
+ elseif(GetType($decoded['Headers'][$header])=='string')
+ {
+ $h = 1;
+ $decoded['Headers'][$header]=array($decoded['Headers'][$header], $value);
+ if($this->extract_addresses
+ && IsSet($this->address_headers[$header]))
+ $decoded['HeaderPositions'][$header] = array($decoded['HeaderPositions'][$header], $part['Position']);
+ }
+ else
+ {
+ $h = count($decoded['Headers'][$header]);
+ $decoded['Headers'][$header][]=$value;
+ if($this->extract_addresses
+ && IsSet($this->address_headers[$header]))
+ $decoded['HeaderPositions'][$header][] = $part['Position'];
+ }
+ if(IsSet($part['Decoded'])
+ && (count($part['Decoded'])>1
+ || strcmp($part['Decoded'][0]['Encoding'],'ASCII')
+ || strcmp($value, trim($part['Decoded'][0]['Value']))))
+ {
+ $p=$part['Decoded'];
+ $p[0]['Value']=ltrim($p[0]['Value']);
+ $last=count($p)-1;
+ $p[$last]['Value']=rtrim($p[$last]['Value']);
+ $decoded['DecodedHeaders'][$header][$h]=$p;
+ }
+ switch($header)
+ {
+ case 'content-disposition:':
+ $filename='filename';
+ break;
+ case 'content-type:':
+ if(!IsSet($decoded['FileName']))
+ {
+ $filename='name';
+ break;
+ }
+ default:
+ $filename='';
+ break;
+ }
+ if(strlen($filename))
+ {
+ if(IsSet($decoded['DecodedHeaders'][$header][$h])
+ && count($decoded['DecodedHeaders'][$header][$h]) == 1)
+ {
+ $value = $decoded['DecodedHeaders'][$header][$h][0]['Value'];
+ $encoding = $decoded['DecodedHeaders'][$header][$h][0]['Encoding'];
+ }
+ else
+ $encoding = '';
+ $this->ParseStructuredHeader($value, $type, $header_parameters, $character_sets, $languages);
+ if(IsSet($header_parameters[$filename]))
+ {
+ $decoded['FileName']=$header_parameters[$filename];
+ if(IsSet($character_sets[$filename])
+ && strlen($character_sets[$filename]))
+ $decoded['FileNameCharacterSet']=$character_sets[$filename];
+ if(IsSet($character_sets['language'])
+ && strlen($character_sets['language']))
+ $decoded['FileNameCharacterSet']=$character_sets[$filename];
+ if(!IsSet($decoded['FileNameCharacterSet'])
+ && strlen($encoding))
+ $decoded['FileNameCharacterSet'] = $encoding;
+ if(!strcmp($header, 'content-disposition:'))
+ $decoded['FileDisposition']=$type;
+ }
+ }
+ $state = MIME_MESSAGE_GET_HEADER_NAME;
+ continue 3;
+ }
+ break;
+
+ case MIME_MESSAGE_GET_BODY:
+ switch($type)
+ {
+ case 'BodyData':
+ if(IsSet($parameters['SaveBody']))
+ {
+ if(!IsSet($decoded['BodyFile']))
+ {
+ $directory_separator=(defined('DIRECTORY_SEPARATOR') ? DIRECTORY_SEPARATOR : '/');
+ $path = (strlen($parameters['SaveBody']) ? ($parameters['SaveBody'].(strcmp($parameters['SaveBody'][strlen($parameters['SaveBody'])-1], $directory_separator) ? $directory_separator : '')) : '');
+ $filename = strval($this->body_part_number);
+ if($this->use_part_file_names
+ && !$this->GetPartFileName($decoded, $filename))
+ return(0);
+ if(file_exists($path.$filename))
+ {
+ if(GetType($dot = strrpos($filename, '.'))=='integer')
+ {
+ $base = substr($filename, 0, $dot);
+ $extension = substr($filename, $dot);
+ }
+ else
+ {
+ $base = $filename;
+ $extension = '';
+ }
+ $appendix = 0;
+ do
+ {
+ ++$appendix;
+ $filename = $base.$appendix.$extension;
+ }
+ while(file_exists($path.$filename));
+ }
+ $path .= $filename;
+ if(!($this->body_file = fopen($path, 'wb')))
+ return($this->SetPHPError('could not create file '.$path.' to save the message body part', $php_errormsg));
+ $decoded['BodyFile'] = $path;
+ $decoded['BodyPart'] = $this->body_part_number;
+ $decoded['BodyLength'] = 0;
+ $this->body_part_number++;
+ }
+ if(strlen($part['Data'])
+ && !fwrite($this->body_file, $part['Data']))
+ {
+ $this->SetPHPError('could not save the message body part to file '.$decoded['BodyFile'], $php_errormsg);
+ fclose($this->body_file);
+ @unlink($decoded['BodyFile']);
+ return(0);
+ }
+ }
+ elseif(IsSet($parameters['SkipBody'])
+ && $parameters['SkipBody'])
+ {
+ if(!IsSet($decoded['BodyPart']))
+ {
+ $decoded['BodyPart'] = $this->body_part_number;
+ $decoded['BodyLength'] = 0;
+ $this->body_part_number++;
+ }
+ }
+ else
+ {
+ if(IsSet($decoded['Body']))
+ $decoded['Body'].=$part['Data'];
+ else
+ {
+ $decoded['Body']=$part['Data'];
+ $decoded['BodyPart'] = $this->body_part_number;
+ $decoded['BodyLength'] = 0;
+ $this->body_part_number++;
+ }
+ }
+ $decoded['BodyLength'] += strlen($part['Data']);
+ continue 3;
+ case 'StartPart':
+ if(!$this->DecodeStream($parameters, $position + $part['Position'], $end_of_part, $decoded_part))
+ return(0);
+ $decoded['Parts'][$part_number]=$decoded_part;
+ $part_number++;
+ $state = MIME_MESSAGE_GET_BODY_PART;
+ continue 3;
+ case 'MessageEnd':
+ if(IsSet($decoded['BodyFile']))
+ fclose($this->body_file);
+ return(1);
+ }
+ break;
+
+ case MIME_MESSAGE_GET_BODY_PART:
+ switch($type)
+ {
+ case 'EndPart':
+ $state = MIME_MESSAGE_GET_BODY;
+ continue 3;
+ }
+ break;
+ }
+ return($this->SetError('unexpected decoded message part type '.$type.' in state '.$state));
+ }
+ return(1);
+ }
+
+ /* Public functions */
+
+ Function GetPartFileName($decoded, &$filename)
+ {
+ if(IsSet($decoded['FileName']))
+ $filename = basename($decoded['FileName']);
+ return(1);
+ }
+
+ Function Parse($data, $end)
+ {
+ if(strlen($this->error))
+ return(0);
+ if($this->state==MIME_PARSER_END)
+ return($this->SetError('the parser already reached the end'));
+ $length = strlen($data);
+ if($this->track_lines
+ && $length)
+ {
+ $line = $this->last_line;
+ $position = 0;
+ if($this->last_carriage_return)
+ {
+ if($data[0] == "\n")
+ ++$position;
+ $this->lines[++$line] = $this->line_offset + $position;
+ $this->last_carriage_return = 0;
+ }
+ while($position < $length)
+ {
+ $position += strcspn($data, "\r\n", $position) ;
+ if($position >= $length)
+ break;
+ if($data[$position] == "\r")
+ {
+ ++$position;
+ if($position >= $length)
+ {
+ $this->last_carriage_return = 1;
+ break;
+ }
+ if($data[$position] == "\n")
+ ++$position;
+ $this->lines[++$line] = $this->line_offset + $position;
+ }
+ else
+ {
+ ++$position;
+ $this->lines[++$line] = $this->line_offset + $position;
+ }
+ }
+ $this->last_line = $line;
+ $this->line_offset += $length;
+ }
+ $this->buffer .= $data;
+ do
+ {
+ Unset($part);
+ if(!$this->ParsePart($end, $part, $need_more_data))
+ return(0);
+ if(IsSet($part)
+ && !$this->DecodePart($part))
+ return(0);
+ }
+ while(!$need_more_data
+ && $this->state!=MIME_PARSER_END);
+ if($end
+ && $this->state!=MIME_PARSER_END)
+ return($this->SetError('reached a premature end of data'));
+ if($this->buffer_position>0)
+ {
+ $this->offset += $this->buffer_position;
+ $this->buffer = substr($this->buffer, $this->buffer_position);
+ $this->buffer_position = 0;
+ }
+ return(1);
+ }
+
+ Function ParseFile($file)
+ {
+ if(strlen($this->error))
+ return(0);
+ if(!($stream = @fopen($file, 'r')))
+ return($this->SetPHPError('Could not open the file '.$file, $php_errormsg));
+ for($end = 0;!$end;)
+ {
+ if(!($data = @fread($stream, $this->message_buffer_length)))
+ {
+ $this->SetPHPError('Could not read the file '.$file, $php_errormsg);
+ fclose($stream);
+ return(0);
+ }
+ $end=feof($stream);
+ if(!$this->Parse($data, $end))
+ {
+ fclose($stream);
+ return(0);
+ }
+ }
+ fclose($stream);
+ return(1);
+ }
+
+ Function GetPart(&$part, &$end)
+ {
+ $end = ($this->part_position >= count($this->parts));
+ if($end)
+ {
+ if($this->part_position)
+ {
+ $this->part_position = 0;
+ $this->parts = array();
+ }
+ }
+ else
+ {
+ $part = $this->parts[$this->part_position];
+ $this->part_position ++;
+ }
+ return(1);
+ }
+
+/*
+{metadocument}
+
+ Decode
+ BOOLEAN
+
+ Parse and decode message data and retrieve its structure.
+ Pass an array to the
+ Decode
+ parameters
+
+ parameter to define whether the message data should be read and
+ parsed from a file or a data string, as well additional parsing
+ options. The
+ Decode
+ decoded
+ returns the
+ data structure of the parsed messages.
+ This function returns 1 if
+ the specified message data is parsed successfully. Otherwise,
+ check the variables error and
+ error_position to determine what
+ error occurred and the relevant message position.
+
+
+ parameters
+ HASH
+
+ Associative array to specify parameters for the message
+ data parsing and decoding operation. Here follows the list of
+ supported parameters that should be used as indexes of the
+ array:
+ File
+ Name of the file from which the message data will be read. It
+ may be the name of a file stream or a remote URL, as long as
+ your PHP installation is configured to allow accessing remote
+ files with the fopen() function.
+ Data
+ String that specifies the message data. This should be used
+ as alternative data source for passing data available in memory,
+ like for instance messages stored in a database that was queried
+ dynamically and the message data was fetched into a string
+ variable.
+ SaveBody
+ If this parameter is specified, the message body parts are saved
+ to files. The path of the directory where the files are saved is
+ defined by this parameter value. The information about the
+ message body part structure is returned by the
+ Decode
+ decoded
+ argument, but it just returns the body data part
+ file name instead of the actual body data. It is recommended for
+ retrieving messages larger than the available memory. The names
+ of the body part files are numbers starting from
+ 1.
+ SkipBody
+ If this parameter is set to 1, the
+ message body parts are skipped. This means the information about
+ the message body part structure is returned by the
+ Decode
+ decoded
+ but it does not return any body data. It is
+ recommended just for parsing messages without the need to
+ retrieve the message body part data.
+
+
+
+ decoded
+ ARRAY
+
+
+ Retrieve the structure of the parsed message headers and
+ body data.
+ The argument is used to return by reference an array of message
+ structure definitions. Each array entry refers to the structure
+ of each message that is found and parsed successfully.
+ Each message entry consists of an associative array with several
+ entries that describe the message structure. Here follows the
+ list of message structure entries names and the meaning of the
+ respective values:
+ Headers
+ Associative array that returns the list of all the message
+ headers. The array entries are the header names mapped to
+ lower case, including the end colon. The array values are the
+ respective header raw values without any start or trailing white
+ spaces. Long header values split between multiple message lines
+ are gathered in single string without line breaks. If an header
+ with the same name appears more than once in the message, the
+ respective value is an array with the values of all of the
+ header occurrences.
+ DecodedHeaders
+ Associative array that returns the list of all the encoded
+ message headers when the
+ decode_headers variable is set. The
+ array entries are the header names mapped to lower case,
+ including the end colon. The array values are also arrays that
+ list only the occurrences of the header that originally were
+ encoded. Each entry of the decoded header array contains more
+ associative arrays that describe each part of the decoded
+ header. Each of those associative arrays have an entry named
+ Value that contains the decoded header part value, and
+ another entry named Encoding that specifies the
+ character set encoding of the value in upper case.
+ ExtractedAddresses
+ If the extract_addresses variable
+ is set to 1, this entry is set to an
+ associative array with the addresses found in the headers
+ specified by the address_headers
+ variable.
+ The parsed addresses found on each header are returned as an
+ array with the format of the
+ addresses
+ rfc822_addresses_class.html#argument_ParseAddressList_addresses
+ argument of the
+ ParseAddressList
+ rfc822_addresses_class.html#function_ParseAddressList
+ function of the
+ RFC 822 addresses
+ rfc822_addresses_class.html
+ class.
+ Parts
+ If this message content type is multipart, this entry is an
+ array that describes each of the parts contained in the message
+ body. Each message part is described by an associative array
+ with the same structure of a complete message
+ definition.
+ Body
+ String with the decoded data contained in the message body. If
+ the SaveBody or SkipBody parameters are
+ defined, the Body entry is not set.
+ BodyFile
+ Name of the file to which the message body data was saved when
+ the SaveBody parameter is defined.
+ BodyLength
+ Length of the current decoded body part.
+ BodyPart
+ Number of the current message body part.
+ FileName
+ Name of the file for body parts composed from
+ files.
+ FileNameCharacterSet
+ Character set encoding for file parts with names that may
+ include non-ASCII characters.
+ FileNameLanguage
+ Language of file parts with names that may include non-ASCII
+ characters.
+ FileDisposition
+ Disposition of parts which are files. It may be either
+ inline for file parts to be
+ displayed with the message, or
+ attachment
+ otherwise.
+ Position
+ Position of the part in terms of bytes since the beginning of
+ the message.
+
+
+
+{/metadocument}
+*/
+ Function Decode($parameters, &$decoded)
+ {
+ if(IsSet($parameters['File']))
+ {
+ if(!($this->file = @fopen($parameters['File'], 'r')))
+ return($this->SetPHPError('could not open the message file to decode '.$parameters['File'], $php_errormsg));
+ }
+ elseif(IsSet($parameters['Data']))
+ $this->position = 0;
+ else
+ return($this->SetError('it was not specified a valid message to decode'));
+ $this->warnings = $decoded = array();
+ $this->ResetParserState();
+ $addresses = new rfc822_addresses_class;
+ $addresses->ignore_syntax_errors = $this->ignore_syntax_errors;
+ for($message = 0; ($success = $this->DecodeStream($parameters, 0, $end_of_message, $decoded_message)) && !$end_of_message; $message++)
+ {
+ if($this->extract_addresses)
+ {
+ $headers = $decoded_message['Headers'];
+ $positions = (IsSet($decoded_message['HeaderPositions']) ? $decoded_message['HeaderPositions'] : array());
+ $th = count($headers);
+ for(Reset($headers), $h = 0; $h<$th; Next($headers), ++$h)
+ {
+ $header = Key($headers);
+ if(IsSet($this->address_headers[$header])
+ && $this->address_headers[$header])
+ {
+ $values = (GetType($headers[$header]) == 'array' ? $headers[$header] : array($headers[$header]));
+ $p = (GetType($positions[$header]) == 'array' ? $positions[$header] : array($positions[$header]));
+ $tv = count($values);
+ for($v = 0; $v<$tv; ++$v)
+ {
+ if($addresses->ParseAddressList($values[$v], $a))
+ {
+ if($v==0)
+ $decoded_message['ExtractedAddresses'][$header] = $a;
+ else
+ {
+ $tl = count($a);
+ for($l = 0; $l<$tl; ++$l)
+ $decoded_message['ExtractedAddresses'][$header][] = $a[$l];
+ }
+ $tw = count($addresses->warnings);
+ for($w = 0, Reset($addresses->warnings); $w < $tw; Next($addresses->warnings), $w++)
+ {
+ $warning = Key($addresses->warnings);
+ if(!$this->SetPositionedWarning('Address extraction warning from header '.$header.' '.$addresses->warnings[$warning], $warning + $p[$v]))
+ return(0);
+ }
+ }
+ elseif(!$this->SetPositionedWarning('Address extraction error from header '.$header.' '.$addresses->error, $addresses->error_position + $p[$v]))
+ return(0);
+ }
+ }
+ }
+ UnSet($decoded_message['HeaderPositions']);
+ }
+ $decoded[$message]=$decoded_message;
+ }
+ if(IsSet($parameters['File']))
+ fclose($this->file);
+ return($success);
+ }
+/*
+{metadocument}
+
+
+{/metadocument}
+*/
+
+ Function CopyAddresses($message, &$results, $header)
+ {
+ if(!IsSet($message['Headers'][$header]))
+ return;
+ if(!IsSet($message['ExtractedAddresses'][$header]))
+ {
+ $parser = new rfc822_addresses_class;
+ $parser->ignore_syntax_errors = $this->ignore_syntax_errors;
+ $values = (GetType($message['Headers'][$header]) == 'array' ? $message['Headers'][$header] : array($message['Headers'][$header]));
+ $tv = count($values);
+ $addresses = array();
+ for($v = 0; $v<$tv; ++$v)
+ {
+ if($parser->ParseAddressList($values[$v], $a))
+ {
+ if($v==0)
+ $addresses = $a;
+ else
+ {
+ $tl = count($a);
+ for($l = 0; $l<$tl; ++$l)
+ $addresses[] = $a[$l];
+ }
+ }
+ }
+ }
+ else
+ $addresses = $message['ExtractedAddresses'][$header];
+ if(count($addresses))
+ $results[ucfirst(substr($header, 0, strlen($header) -1))] = $addresses;
+ }
+
+ Function ReadMessageBody($message, &$body, $prefix)
+ {
+ if(IsSet($message[$prefix]))
+ $body = $message[$prefix];
+ elseif(IsSet($message[$prefix.'File']))
+ {
+ $path = $message[$prefix.'File'];
+ if(!($file = @fopen($path, 'rb')))
+ return($this->SetPHPError('could not open the message body file '.$path, $php_errormsg));
+ for($body = '', $end = 0;!$end;)
+ {
+ if(!($data = @fread($file, $this->message_buffer_length)))
+ {
+ $this->SetPHPError('Could not open the message body file '.$path, $php_errormsg);
+ fclose($stream);
+ return(0);
+ }
+ $end=feof($file);
+ $body.=$data;
+ }
+ fclose($file);
+ }
+ else
+ $body = '';
+ return(1);
+ }
+/*
+{metadocument}
+
+ Analyze
+ BOOLEAN
+
+ Analyze a parsed message to describe its contents.
+ Pass an array to the
+ Analyze
+ message
+
+ parameter with the decoded message array structure returned by the
+ Decode function. The
+ Analyze
+ results
+ returns details about the type of message that was
+ analyzed and its contents.
+ This function returns 1 if
+ the specified message is analyzed successfully. Otherwise,
+ check the variables error and
+ error_position to determine what
+ error occurred.
+
+
+ message
+ HASH
+
+ Pass an associative array with the definition of an
+ individual message returned by the
+ Decode
+ decoded
+ argument of the
+ Decode function..
+
+
+
+ results
+ HASH
+
+
+ Returns an associative array with the results of the
+ analysis. Some types of entries are returned for all types of
+ analyzed messages. Other entries are specific to each type of
+ message.
+ Type
+ Type of message that was analyzed. Currently it supports the
+ types: binary, text, html,
+ video, image, audio, zip,
+ pdf, postscript, ms-word,
+ ms-excel, ms-powerpoint, ms-tnef,
+ odf-writer, signature, report-type,
+ delivery-status and message.
+ SubType
+ Name of the variant of the message type format.
+ Description
+ Human readable description in English of the message type.
+
+
+
+ From message headers:
+ Encoding
+ Character set encoding of the message part.
+ Subject
+ The message subject.
+ SubjectEncoding
+ Character set encoding of the message subject.
+ Date
+ The message date.
+ From
+ To
+ Cc
+ Bcc
+ Array of e-mail addresses found in the From,
+ To, Cc, Bcc.
+ Each of the entries consists of an associative array with an
+ entry named address with the e-mail address and
+ optionally another named name with the associated
+ name.
+
+
+ For content message parts:
+
+ Data
+ String of data of the message part.
+ DataFile
+ File with data of the message part.
+ DataLength
+ Length of the data of the message part.
+
+
+
+ For message with embedded files:
+
+ FileName
+ Original name of the file.
+ ContentID
+ Content identifier of the file to be used in references from
+ other message parts.
+ For instance, an HTML message may reference images embedded in
+ the message using URLs that start with the
+ cid: followed by the content
+ identifier of the embedded image file part.
+ Disposition
+ Information of whether the embedded file should be displayed
+ inline when the message is presented, or it is an attachment
+ file.
+
+
+ For composite message:
+
+ Attachments
+ List of files attached to the message.
+ Alternative
+ List of alternative message parts that can be displayed if the
+ main message type is not supported by the program displaying
+ the message.
+ Related
+ List of message parts related with the main message type.
+ It may list for instance embedded images or CSS files related
+ with an HTML message type.
+
+
+ For bounced messages or other types of delivery status report
+ messages:
+
+ Recipients
+ List of recipients of the original message.
+ Each entry contains an associative array that may have the
+ entries: Recipient with the original recipient address,
+ Action with the name action that triggered the delivery
+ status report, Status with the code of the status of
+ the message delivery.
+ Response
+ Human readable response sent by the server the originated the
+ report.
+
+
+
+
+{/metadocument}
+*/
+ Function Analyze($message, &$results)
+ {
+ $results = array();
+ if(!IsSet($message['Headers']['content-type:']))
+ $content_type = 'text/plain';
+ elseif(count($message['Headers']['content-type:']) == 1)
+ $content_type = $message['Headers']['content-type:'];
+ else
+ {
+ if(!$this->SetPositionedWarning('message contains multiple content-type headers', $message['Position']))
+ return(0);
+ $content_type = $message['Headers']['content-type:'][0];
+ }
+ $disposition = $this->ParseParameters($content_type, $content_type, $parameters, 'disposition');
+ $type = $this->Tokenize($content_type, '/');
+ $sub_type = $this->Tokenize(';');
+ $copy_body = 1;
+ $tolerate_unrecognized = 1;
+ switch($type)
+ {
+ case 'multipart':
+ $tolerate_unrecognized = 0;
+ $copy_body = 0;
+ $lp = count($message['Parts']);
+ if($lp == 0)
+ return($this->SetError($this->decode_bodies ? 'No parts were found in the '.$content_type.' part message' : 'It is not possible to analyze multipart messages without parsing the contained message parts. Please set the decode_bodies variable to 1 before parsing the message'));
+ $parts = array();
+ for($p = 0; $p < $lp; ++$p)
+ {
+ if(!$this->Analyze($message['Parts'][$p], $parts[$p]))
+ return(0);
+ }
+ switch($sub_type)
+ {
+ case 'alternative':
+ $p = $lp;
+ $results = $parts[--$p];
+ for(--$p ; $p >=0 ; --$p)
+ $results['Alternative'][] = $parts[$p];
+ break;
+
+ case 'related':
+ $results = $parts[0];
+ for($p = 1; $p < $lp; ++$p)
+ $results['Related'][] = $parts[$p];
+ break;
+
+ case 'mixed':
+ $results = $parts[0];
+ for($p = 1; $p < $lp; ++$p)
+ $results['Attachments'][] = $parts[$p];
+ break;
+
+ case 'report':
+ if(IsSet($parameters['report-type']))
+ {
+ switch($parameters['report-type'])
+ {
+ case 'delivery-status':
+ for($p = 1; $p < $lp; ++$p)
+ {
+ if(!strcmp($parts[$p]['Type'], $parameters['report-type']))
+ {
+ $results = $parts[$p];
+ break;
+ }
+ }
+ if(!$this->ReadMessageBody($parts[0], $body, 'Data'))
+ return(0);
+ if(strlen($body))
+ $results['Response'] = $body;
+ break;
+ }
+ }
+ $results['Type'] = $parameters['report-type'];
+ break;
+
+ case 'signed':
+ if($lp != 2)
+ return($this->SetError('this '.$content_type.' message does not have just 2 parts'));
+ if(strcmp($parts[1]['Type'], 'signature'))
+ {
+ $this->SetErrorWithContact('this '.$content_type.' message does not contain a signature');
+ $this->error = '';
+ }
+ $results = $parts[0];
+ $results['Signature'] = $parts[1];
+ break;
+
+ case 'appledouble':
+ if($lp != 2)
+ return($this->SetError('this '.$content_type.' message does not have just 2 parts'));
+ if(strcmp($parts[0]['Type'], 'applefile'))
+ {
+ $this->SetErrorWithContact('this '.$content_type.' message does not contain an Apple file header');
+ $this->error = '';
+ }
+ $results = $parts[1];
+ $results['AppleFileHeader'] = $parts[0];
+ break;
+
+ case 'form-data':
+ $results['Type'] = 'form-data';
+ $results['FormData'] = array();
+ for($p = 0; $p < $lp; ++$p)
+ {
+ if(!IsSet($message['Parts'][$p]['Headers']['content-disposition:']))
+ return($this->SetError('the form data part '.$p.' is missing the content-disposition header'));
+ $disposition = $message['Parts'][$p]['Headers']['content-disposition:'];
+ $name = $this->ParseParameters($disposition, $disposition, $parameters, 'name');
+ if(strcmp($disposition, 'form-data'))
+ {
+ if(!$this->SetPositionedWarning('disposition of part '.$p.' is not form-data', $message['Parts'][$p]['Position']))
+ return(0);
+ continue;
+ }
+ $results['FormData'][$name] = $parts[$p];
+ }
+ break;
+ }
+ break;
+ case 'text':
+ switch($sub_type)
+ {
+ case 'plain':
+ $results['Type'] = 'text';
+ $results['Description'] = 'Text message';
+ break;
+ case 'html':
+ $results['Type'] = 'html';
+ $results['Description'] = 'HTML message';
+ break;
+ case 'rtf':
+ $results['Type'] = 'rtf';
+ $results['Description'] = 'Document in Rich Text Format';
+ break;
+ default:
+ $results['Type'] = $type;
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'Text file in the '.strtoupper($sub_type).' format';
+ break;
+ }
+ break;
+ case 'video':
+ $results['Type'] = $type;
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'Video file in the '.strtoupper($sub_type).' format';
+ break;
+ case 'image':
+ $results['Type'] = $type;
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'Image file in the '.strtoupper($sub_type).' format';
+ break;
+ case 'audio':
+ $results['Type'] = $type;
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'Audio file in the '.strtoupper($sub_type).' format';
+ break;
+ case 'application':
+ switch($sub_type)
+ {
+ case 'octet-stream':
+ case 'x-msdownload':
+ $results['Type'] = 'binary';
+ $results['Description'] = 'Binary file';
+ break;
+ case 'pdf':
+ $results['Type'] = $sub_type;
+ $results['Description'] = 'Document in PDF format';
+ break;
+ case 'postscript':
+ $results['Type'] = $sub_type;
+ $results['Description'] = 'Document in Postscript format';
+ break;
+ case 'msword':
+ $results['Type'] = 'ms-word';
+ $results['Description'] = 'Word processing document in Microsoft Word format';
+ break;
+ case 'vnd.ms-powerpoint':
+ $results['Type'] = 'ms-powerpoint';
+ $results['Description'] = 'Presentation in Microsoft PowerPoint format';
+ break;
+ case 'vnd.ms-excel':
+ $results['Type'] = 'ms-excel';
+ $results['Description'] = 'Spreadsheet in Microsoft Excel format';
+ break;
+ case 'x-compressed':
+ if(!IsSet($parameters['name'])
+ || GetType($dot = strpos($parameters['name'], '.'))!='integer'
+ || strcmp($extension = strtolower(substr($parameters['name'], $dot + 1)), 'zip'))
+ break;
+ case 'zip':
+ case 'x-zip':
+ case 'x-zip-compressed':
+ $results['Type'] = 'zip';
+ $results['Description'] = 'ZIP archive with compressed files';
+ break;
+ case 'ms-tnef':
+ $results['Type'] = $sub_type;
+ $results['Description'] = 'Microsoft Exchange data usually sent by Microsoft Outlook';
+ break;
+ case 'pgp-signature':
+ $results['Type'] = 'signature';
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'Message signature for PGP';
+ break;
+ case 'x-pkcs7-signature':
+ case 'pkcs7-signature':
+ $results['Type'] = 'signature';
+ $results['SubType'] = $sub_type;
+ $results['Description'] = 'PKCS message signature';
+ break;
+ case 'vnd.oasis.opendocument.text':
+ $results['Type'] = 'odf-writer';
+ $results['Description'] = 'Word processing document in ODF text format used by OpenOffice Writer';
+ break;
+ case 'applefile':
+ $results['Type'] = 'applefile';
+ $results['Description'] = 'Apple file resource header';
+ break;
+ case 'rtf':
+ $results['Type'] = $sub_type;
+ $results['Description'] = 'Document in Rich Text Format';
+ break;
+ case 'x-httpd-php':
+ $results['Type'] = 'php';
+ $results['Description'] = 'PHP script';
+ break;
+ }
+ break;
+ case 'message':
+ $tolerate_unrecognized = 0;
+ switch($sub_type)
+ {
+ case 'delivery-status':
+ $results['Type'] = $sub_type;
+ $results['Description'] = 'Notification of the status of delivery of a message';
+ if(!$this->ReadMessageBody($message, $body, 'Body'))
+ return(0);
+ if(($l = strlen($body)))
+ {
+ $position = 0;
+ $this->ParseHeaderString($body, $position, $headers);
+ $recipients = array();
+ for(;$position<$l;)
+ {
+ $this->ParseHeaderString($body, $position, $headers);
+ if(count($headers))
+ {
+ $r = count($recipients);
+ if(IsSet($headers['action']))
+ $recipients[$r]['Action'] = $headers['action'];
+ if(IsSet($headers['status']))
+ $recipients[$r]['Status'] = $headers['status'];
+ if(IsSet($headers['original-recipient']))
+ {
+ strtok($headers['original-recipient'], ';');
+ $recipients[$r]['Address'] = trim(strtok(''));
+ }
+ elseif(IsSet($headers['final-recipient']))
+ {
+ strtok($headers['final-recipient'], ';');
+ $recipients[$r]['Address'] = trim(strtok(''));
+ }
+ }
+ }
+ $results['Recipients'] = $recipients;
+ }
+ $copy_body = 0;
+ break;
+ case 'rfc822':
+ $results['Type'] = 'message';
+ $results['Description'] = 'E-mail message';
+ break;
+ }
+ break;
+ default:
+ $tolerate_unrecognized = 0;
+ break;
+ }
+ if(!IsSet($results['Type']))
+ {
+ if(IsSet($this->custom_mime_types[$content_type]))
+ {
+ $results['Type'] = $this->custom_mime_types[$content_type]['Type'];
+ $results['Description'] = $this->custom_mime_types[$content_type]['Description'];
+ }
+ else
+ {
+ $this->SetErrorWithContact($content_type.' message parts are not yet recognized. You can define these part type names and descriptions setting the custom_mime_types class variable');
+ $results['Type'] = $this->error;
+ $this->error = '';
+ }
+ }
+ if(IsSet($parameters['charset']))
+ $results['Encoding'] = strtolower($parameters['charset']);
+ if(IsSet($message['Headers']['subject:']))
+ {
+ if(IsSet($message['DecodedHeaders']['subject:'])
+ && count($message['DecodedHeaders']['subject:']) == 1
+ && count($message['DecodedHeaders']['subject:'][0]) == 1)
+ {
+ $results['Subject'] = $message['DecodedHeaders']['subject:'][0][0]['Value'];
+ $results['SubjectEncoding'] = strtolower($message['DecodedHeaders']['subject:'][0][0]['Encoding']);
+ }
+ else
+ $results['Subject'] = $message['Headers']['subject:'];
+ }
+ if(IsSet($message['Headers']['date:']))
+ {
+ if(IsSet($message['DecodedHeaders']['date:'])
+ && count($message['DecodedHeaders']['date:']) == 1
+ && count($message['DecodedHeaders']['date:'][0]) == 1)
+ $results['Date'] = $message['DecodedHeaders']['date:'][0][0]['Value'];
+ else
+ $results['Date'] = $message['Headers']['date:'];
+ }
+ $l = count($this->address_headers);
+ for(Reset($this->address_headers), $h = 0; $h<$l; Next($this->address_headers), ++$h)
+ $this->CopyAddresses($message, $results, Key($this->address_headers));
+ if($copy_body)
+ {
+ if(IsSet($message['Body']))
+ $results['Data'] = $message['Body'];
+ elseif(IsSet($message['BodyFile']))
+ $results['DataFile'] = $message['BodyFile'];
+ elseif(IsSet($message['BodyLength']))
+ $results['DataLength'] = $message['BodyLength'];
+ if(IsSet($message['FileName']))
+ $results['FileName'] = $message['FileName'];
+ if(IsSet($message['FileDisposition']))
+ $results['FileDisposition'] = $message['FileDisposition'];
+ if(IsSet($message['Headers']['content-id:']))
+ {
+ $content_id = trim($message['Headers']['content-id:']);
+ $l = strlen($content_id);
+ if(!strcmp($content_id[0], '<')
+ && !strcmp($content_id[$l - 1], '>'))
+ $results['ContentID'] = substr($content_id, 1, $l - 2);
+ }
+ }
+ return(1);
+ }
+/*
+{metadocument}
+
+
+{/metadocument}
+*/
+
+/*
+{metadocument}
+
+ GetPositionLine
+ BOOLEAN
+
+ Get the line number of the document that corresponds to a
+ given position.
+ Pass the document offset number as the position to be
+ located. Make sure the track_lines
+ variable is set to 1 before parsing
+ the document.
+ This function returns 1 if
+ the track_lines variable is set to
+ 1 and it was given a valid positive
+ position number that does not exceed the position of the last
+ parsed document line.
+
+
+ position
+ INTEGER
+
+ Position of the line to be located.
+
+
+
+ line
+ INTEGER
+
+
+ Returns the number of the line that corresponds to the
+ given document position.
+
+
+
+ column
+ INTEGER
+
+
+ Returns the number of the column of the line that
+ corresponds to the given document position.
+
+
+
+{/metadocument}
+*/
+ Function GetPositionLine($position, &$line, &$column)
+ {
+ if(!$this->track_lines)
+ return($this->SetPositionedError('line positions are not being tracked', $position));
+ $bottom = 0;
+ $top = count($this->lines) - 1;
+ if($position < 0)
+ return($this->SetPositionedError('it was not specified a valid position', $position));
+ for(;;)
+ {
+ $line = intval(($bottom + $top) / 2);
+ $current = $this->lines[$line];
+ if($current < $position)
+ $bottom = $line + 1;
+ elseif($current > $position)
+ $top = $line - 1;
+ else
+ break;
+ if($top < $bottom)
+ {
+ $line = $top;
+ break;
+ }
+ }
+ $column = $position - $this->lines[$line] + 1;
+ ++$line;
+ return(1);
+ }
+/*
+{metadocument}
+
+
+{/metadocument}
+*/
+};
+
+/*
+
+{metadocument}
+
+{/metadocument}
+
+*/
+
+?>
diff --git a/class/payment/2checkout/LICENSE b/class/payment/2checkout/LICENSE
new file mode 100644
index 0000000..5e363c2
--- /dev/null
+++ b/class/payment/2checkout/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2012 - 2Checkout.com, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/class/payment/2checkout/README.md b/class/payment/2checkout/README.md
new file mode 100644
index 0000000..ddb5e6d
--- /dev/null
+++ b/class/payment/2checkout/README.md
@@ -0,0 +1,310 @@
+2Checkout PHP Library
+=====================
+
+This library provides developers with a simple set of bindings to the 2Checkout Payment API, Hosted Checkout, Instant Notification Service and Admin API.
+
+To use, download or clone the repository.
+
+```shell
+git clone https://github.com/2Checkout/2checkout-php.git
+```
+
+Require in your php script.
+
+```php
+require_once("/path/to/2checkout-php/lib/Twocheckout.php");
+```
+
+All methods return an Array by default or you can set the format to 'json' to get a JSON response.
+**Example:**
+```php
+ "901248204",
+ "merchantOrderId" => "123",
+ "token" => 'MjFiYzIzYjAtYjE4YS00ZmI0LTg4YzYtNDIzMTBlMjc0MDlk',
+ "currency" => 'USD',
+ "total" => '10.00',
+ "billingAddr" => array(
+ "name" => 'Testing Tester',
+ "addrLine1" => '123 Test St',
+ "city" => 'Columbus',
+ "state" => 'OH',
+ "zipCode" => '43123',
+ "country" => 'USA',
+ "email" => 'testingtester@2co.com',
+ "phoneNumber" => '555-555-5555'
+ ),
+ "shippingAddr" => array(
+ "name" => 'Testing Tester',
+ "addrLine1" => '123 Test St',
+ "city" => 'Columbus',
+ "state" => 'OH',
+ "zipCode" => '43123',
+ "country" => 'USA',
+ "email" => 'testingtester@2co.com',
+ "phoneNumber" => '555-555-5555'
+ )
+ ));
+ $this->assertEquals('APPROVED', $charge['response']['responseCode']);
+} catch (Twocheckout_Error $e) {
+ $this->assertEquals('Unauthorized', $e->getMessage());
+}
+```
+
+*Example Response:*
+
+```php
+Array
+(
+ [validationErrors] =>
+ [exception] =>
+ [response] => Array
+ (
+ [type] => AuthResponse
+ [lineItems] => Array
+ (
+ [0] => Array
+ (
+ [options] => Array
+ (
+ )
+
+ [price] => 10.00
+ [quantity] => 1
+ [recurrence] =>
+ [startupFee] =>
+ [productId] =>
+ [tangible] => N
+ [name] => 123
+ [type] => product
+ [description] =>
+ [duration] =>
+ )
+
+ )
+
+ [transactionId] => 205181140830
+ [billingAddr] => Array
+ (
+ [addrLine1] => 123 Test St
+ [addrLine2] =>
+ [city] => Columbus
+ [zipCode] => 43123
+ [phoneNumber] => 555-555-5555
+ [phoneExtension] =>
+ [email] => testingtester@2co.com
+ [name] => Testing Tester
+ [state] => OH
+ [country] => USA
+ )
+
+ [shippingAddr] => Array
+ (
+ [addrLine1] => 123 Test St
+ [addrLine2] =>
+ [city] => Columbus
+ [zipCode] => 43123
+ [phoneNumber] =>
+ [phoneExtension] =>
+ [email] =>
+ [name] => Testing Tester
+ [state] => OH
+ [country] => USA
+ )
+
+ [merchantOrderId] => 123
+ [orderNumber] => 205181140821
+ [recurrentInstallmentId] =>
+ [responseMsg] => Successfully authorized the provided credit card
+ [responseCode] => APPROVED
+ [total] => 10.00
+ [currencyCode] => USD
+ [errors] =>
+ )
+
+)
+```
+
+Example Admin API Usage
+-----------------
+
+*Example Request:*
+
+```php
+ 4834917619
+);
+try {
+ $result = Twocheckout_Sale::stop($args);
+} catch (Twocheckout_Error $e) {
+ $e->getMessage();
+}
+```
+
+*Example Response:*
+
+```php
+ OK
+[response_message] => Array
+ (
+ [0] => 4834917634
+ [1] => 4834917646
+ [2] => 4834917658
+ )
+```
+
+Example Checkout Usage:
+-----------------------
+
+*Example Request:*
+
+```php
+ '1817037',
+ 'mode' => '2CO',
+ 'li_0_name' => 'Test Product',
+ 'li_0_price' => '0.01'
+);
+Twocheckout_Charge::form($params, 'auto');
+```
+
+*Example Response:*
+```php
+
+
+```
+
+Example Return Usage:
+---------------------
+
+*Example Request:*
+
+```php
+ $v) {
+ $params[$k] = $v;
+}
+$passback = Twocheckout_Return::check($params, "tango");
+```
+
+*Example Response:*
+
+```php
+ Success
+[response_message] => Hash Matched
+```
+
+Example INS Usage:
+------------------
+
+*Example Request:*
+
+```php
+ $v) {
+ $params[$k] = $v;
+}
+$passback = Twocheckout_Notification::check($params, "tango");
+```
+
+*Example Response:*
+
+```php
+ Success
+[response_message] => Hash Matched
+```
+
+Exceptions:
+-----------
+Twocheckout_Error exceptions are thrown by if an error has returned. It is best to catch these exceptions so that they can be gracefully handled in your application.
+
+*Example Usage*
+
+```php
+ 4774380224,
+ 'category' => 1,
+ 'comment' => 'Order never sent.'
+);
+try {
+ $sale = Twocheckout_Sale::refund($params);
+} catch (Twocheckout_Error $e) {
+ $e->getMessage();
+}
+```
+
+Full documentation for each binding is provided in the **[wiki](https://github.com/2Checkout/2checkout-php/wiki)**.
diff --git a/class/payment/2checkout/lib/Twocheckout.php b/class/payment/2checkout/lib/Twocheckout.php
new file mode 100644
index 0000000..a67b67d
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout.php
@@ -0,0 +1,54 @@
+doCall($urlSuffix);
+ return Twocheckout_Util::returnResponse($result);
+ }
+}
+
+class Twocheckout_Contact extends Twocheckout
+{
+
+ public static function retrieve()
+ {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix = '/api/acct/detail_contact_info';
+ $result = $request->doCall($urlSuffix);
+ return Twocheckout_Util::returnResponse($result);
+ }
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutApi.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutApi.php
new file mode 100644
index 0000000..b8c77a0
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutApi.php
@@ -0,0 +1,55 @@
+user = Twocheckout::$username;
+ $this->pass = Twocheckout::$password;
+ $this->sid = Twocheckout::$sid;
+ $this->baseUrl = Twocheckout::$baseUrl;
+ $this->verifySSL = Twocheckout::$verifySSL;
+ $this->privateKey = Twocheckout::$privateKey;
+ }
+
+ function doCall($urlSuffix, $data=array())
+ {
+ $url = $this->baseUrl . $urlSuffix;
+ $ch = curl_init($url);
+ if (isset($data['api'])) {
+ unset( $data['api'] );
+ $data['privateKey'] = $this->privateKey;
+ $data['sellerId'] = $this->sid;
+ $data = json_encode($data);
+ $header = array("content-type:application/json","content-length:".strlen($data));
+ curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
+ } else {
+ $header = array("Accept: application/json");
+ curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_POST, 0);
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ curl_setopt($ch, CURLOPT_USERPWD, "{$this->user}:{$this->pass}");
+ }
+ if ($this->verifySSL == false) {
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+ }
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+ curl_setopt($ch, CURLOPT_USERAGENT, "2Checkout PHP/0.1.0%s");
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+ $resp = curl_exec($ch);
+ curl_close($ch);
+ if ($resp === FALSE) {
+ throw new Twocheckout_Error("cURL call failed", "403");
+ } else {
+ return utf8_encode($resp);
+ }
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutError.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutError.php
new file mode 100644
index 0000000..83503bb
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutError.php
@@ -0,0 +1,14 @@
+code}]: {$this->message}\n";
+ }
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutPayment.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutPayment.php
new file mode 100644
index 0000000..8a841f4
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutPayment.php
@@ -0,0 +1,24 @@
+doCall($urlSuffix);
+ $response = Twocheckout_Util::returnResponse($result);
+ return $response;
+ }
+
+ public static function pending()
+ {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix = '/api/acct/detail_pending_payment';
+ $result = $request->doCall($urlSuffix);
+ $response = Twocheckout_Util::returnResponse($result);
+ return $response;
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutProduct.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutProduct.php
new file mode 100644
index 0000000..5f631b1
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutProduct.php
@@ -0,0 +1,42 @@
+doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function retrieve($params=array())
+ {
+ $request = new Twocheckout_Api_Requester();
+ if(array_key_exists("product_id",$params)) {
+ $urlSuffix = '/api/products/detail_product';
+ } else {
+ $urlSuffix = '/api/products/list_products';
+ }
+ $result = $request->doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function update($params=array())
+ {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix = '/api/products/update_product';
+ $result = $request->doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function delete($params=array())
+ {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix = '/api/products/delete_product';
+ $result = $request->doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutSale.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutSale.php
new file mode 100644
index 0000000..9c042fe
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutSale.php
@@ -0,0 +1,96 @@
+doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function refund($params=array()) {
+ $request = new Twocheckout_Api_Requester();
+ if(array_key_exists("lineitem_id",$params)) {
+ $urlSuffix ='/api/sales/refund_lineitem';
+ $result = $request->doCall($urlSuffix, $params);
+ } elseif(array_key_exists("invoice_id",$params) || array_key_exists("sale_id",$params)) {
+ $urlSuffix ='/api/sales/refund_invoice';
+ $result = $request->doCall($urlSuffix, $params);
+ } else {
+ $result = Twocheckout_Message::message('Error', 'You must pass a sale_id, invoice_id or lineitem_id to use this method.');
+ }
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function stop($params=array()) {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix ='/api/sales/stop_lineitem_recurring';
+ if(array_key_exists("lineitem_id",$params)) {
+ $result = $request->doCall($urlSuffix, $params);
+ } elseif(array_key_exists("sale_id",$params)) {
+ $result = Twocheckout_Sale::retrieve($params);
+ if (!is_array($result)) {
+ $result = Twocheckout_Util::returnResponse($result, 'array');
+ }
+ $lineitemData = Twocheckout_Util::getRecurringLineitems($result);
+ if (isset($lineitemData[0])) {
+ $stoppedLineitems = array();
+ foreach( $lineitemData as $value )
+ {
+ $params = array('lineitem_id' => $value);
+ $result = $request->doCall($urlSuffix, $params);
+ $result = json_decode($result, true);
+ if ($result['response_code'] == "OK") {
+ $stoppedLineitems[] = $value;
+ }
+ }
+ $result = Twocheckout_Message::message('OK', $stoppedLineitems);
+ } else {
+ throw new Twocheckout_Error("No recurring lineitems to stop.");
+ }
+ } else {
+ throw new Twocheckout_Error('You must pass a sale_id or lineitem_id to use this method.');
+ }
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function active($params=array()) {
+ if(array_key_exists("sale_id",$params)) {
+ $result = Twocheckout_Sale::retrieve($params);
+ if (!is_array($result)) {
+ $result = Twocheckout_Util::returnResponse($result, 'array');
+ }
+ $lineitemData = Twocheckout_Util::getRecurringLineitems($result);
+ if (isset($lineitemData[0])) {
+ $result = Twocheckout_Message::message('OK', $lineitemData);
+ return Twocheckout_Util::returnResponse($result);
+ } else {
+ throw new Twocheckout_Error("No active recurring lineitems.");
+ }
+ } else {
+ throw new Twocheckout_Error("You must pass a sale_id to use this method.");
+ }
+ }
+
+ public static function comment($params=array()) {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix ='/api/sales/create_comment';
+ $result = $request->doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+ public static function ship($params=array()) {
+ $request = new Twocheckout_Api_Requester();
+ $urlSuffix ='/api/sales/mark_shipped';
+ $result = $request->doCall($urlSuffix, $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutUtil.php b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutUtil.php
new file mode 100644
index 0000000..a5c2851
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/Api/TwocheckoutUtil.php
@@ -0,0 +1,74 @@
+$data)
+ {
+ $array[$member]=$data;
+ }
+ return $array;
+ }
+
+ public static function objectToJson($object)
+ {
+ return json_encode($object);
+ }
+
+ public static function getRecurringLineitems($saleDetail) {
+ $i = 0;
+ $invoiceData = array();
+
+ while (isset($saleDetail['sale']['invoices'][$i])) {
+ $invoiceData[$i] = $saleDetail['sale']['invoices'][$i];
+ $i++;
+ }
+
+ $invoice = max($invoiceData);
+ $i = 0;
+ $lineitemData = array();
+
+ while (isset($invoice['lineitems'][$i])) {
+ if ($invoice['lineitems'][$i]['billing']['recurring_status'] == "active") {
+ $lineitemData[] = $invoice['lineitems'][$i]['billing']['lineitem_id'];
+ }
+ $i++;
+ };
+
+ return $lineitemData;
+
+ }
+
+ public static function checkError($contents)
+ {
+ if (isset($contents['errors'])) {
+ throw new Twocheckout_Error($contents['errors'][0]['message']);
+ } elseif (isset($contents['exception'])) {
+ throw new Twocheckout_Error($contents['exception']['errorMsg'], $contents['exception']['errorCode']);
+ }
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/TwocheckoutCharge.php b/class/payment/2checkout/lib/Twocheckout/TwocheckoutCharge.php
new file mode 100644
index 0000000..a84c9b4
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/TwocheckoutCharge.php
@@ -0,0 +1,69 @@
+';
+
+ foreach ($params as $key => $value)
+ {
+ echo '';
+ }
+ if ($type == 'auto') {
+ echo '';
+ echo '';
+ } else {
+ echo '';
+ echo '';
+ }
+ }
+
+ public static function direct($params, $type='Checkout')
+ {
+ echo '';
+ echo '';
+ } else {
+ echo '';
+ echo '';
+ }
+
+ echo '';
+ }
+
+ public static function link($params)
+ {
+ $url = Twocheckout::$baseUrl.'/checkout/purchase?'.http_build_query($params, '', '&');
+ return $url;
+ }
+
+ public static function redirect($params)
+ {
+ $url = Twocheckout::$baseUrl.'/checkout/purchase?'.http_build_query($params, '', '&');
+ header("Location: $url");
+ }
+
+ public static function auth($params=array())
+ {
+ $params['api'] = 'checkout';
+ $request = new Twocheckout_Api_Requester();
+ $result = $request->doCall('/checkout/api/1/'.self::$sid.'/rs/authService', $params);
+ return Twocheckout_Util::returnResponse($result);
+ }
+
+}
diff --git a/class/payment/2checkout/lib/Twocheckout/TwocheckoutMessage.php b/class/payment/2checkout/lib/Twocheckout/TwocheckoutMessage.php
new file mode 100644
index 0000000..99bd3d0
--- /dev/null
+++ b/class/payment/2checkout/lib/Twocheckout/TwocheckoutMessage.php
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allowed values for settingName are: emailCustomer, merchantEmail, allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling, duplicateWindow, testRequest.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true/false. Used by createTransaction method.
+
+
+
+
+ string. Used by createTransaction method.
+
+
+
+
+ true/false. Used by createTransaction method.
+
+
+
+
+ string. Used by createTransaction method.
+
+
+
+
+ string. Used by createTransaction method.
+
+
+
+
+ true/false. Used by createTransaction method.
+
+
+
+
+ number. Used by createTransaction method.
+
+
+
+
+ true/false. Used by createTransaction method.
+
+
+
+
+ string. Used by getHostedProfilePage method.
+
+
+
+
+ string. Used by getHostedProfilePage method.
+
+
+
+
+ true/false. Used by getHostedProfilePage method.
+
+
+
+
+ string. Used by getHostedProfilePage method.
+
+
+
+
+ #e0e0e0. Used by getHostedProfilePage method.
+
+
+
+
+
+ liveMode/testMode
+ liveMode: generates a transaction to the processor in the amount of 0.01 or 0.00. is immediately voided, if successful.
+ testMode: performs field validation only, all fields are validated except unrestricted field definitions (viz. telephone number) do not generate errors.
+ If a validation transaction is unsuccessful, the profile is not created, and the merchant receives an error.
+
+
+
+
+
+ true/false. If true, sets First Name, Last Name, Address, City, State, and Zip Code as required fields in order for a payment profile to be created or updated within a hosted CIM form.
+
+
+
+
+ true/false. If true, sets the Card Code field as required in order for a payment profile to be created or updated within a hosted CIM form.
+
+
+
+
+
+ showBillingAddress/showNone
+ showBillingAddress: Allow merchant to show billing address.
+ showNone : Hide billing address and billing name.
+
+
+
+
+
+
+ showAll/showPayment/ShowShipping
+ showAll: Shipping and Payment profiles are shown on the manage page, this is the default.
+ showPayment : Only Payment profiles are shown on the manage page.
+ showShipping : Only Shippiung profiles are shown on the manage page.
+
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method.
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method.
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by getHostedPaymentPage method
+
+
+
+
+ JSON string. Used by sendCustomerTransactionReceipt method
+
+
+
+
+
+ showAll/showCreditCard/showBankAccount
+ showAll: both CreditCard and BankAccount sections will be shown on Add payment page, this is the default.
+ showCreditCard :only CreditCard payment form will be shown on Add payment page.
+ showBankAccount :only BankAccount payment form will be shown on Add payment page.
+
+
+
+
+
+ string. Used by getHostedProfilePage method to accept button text configuration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allowed values for settingName are: headerEmailReceipt and footerEmailReceipt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allowed values for settingName are: hostedProfileReturnUrl, hostedProfileReturnUrlText, hostedProfilePageBorderVisible, hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor, hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired, hostedProfileBillingAddressOptions, hostedProfileManageOptions, hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl, hostedPaymentButtonOptions, hostedPaymentReturnOptions, hostedPaymentOrderOptions, hostedPaymentPaymentOptions, hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions, hostedPaymentSecurityOptions, hostedPaymentCustomerOptions, hostedPaymentStyleOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/class/payment/authorize/CONTRIBUTING.md b/class/payment/authorize/CONTRIBUTING.md
new file mode 100644
index 0000000..c28b27e
--- /dev/null
+++ b/class/payment/authorize/CONTRIBUTING.md
@@ -0,0 +1,9 @@
+Thanks for contributing to the Authorize.Net PHP SDK.
+
+Before you submit a pull request, we ask that you consider the following:
+
+- Submit an issue to state the problem your pull request solves or the funtionality that it adds. We can then advise on the feasability of the pull request, and let you know if there are other possible solutions.
+- Part of the SDK is auto-generated based on the XML schema. Due to this auto-generation, we cannot merge contributions for request or response classes. You are welcome to open an issue to report problems or suggest improvements. Auto-generated classes include all files inside [contract/v1](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/contract/v1) and [controller](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/controller) folders, except [controller/base](https://github.com/AuthorizeNet/sdk-php/tree/master/lib/net/authorize/api/controller/base).
+- Files marked as deprecated are no longer supported. Issues and pull requests for changes to these deprecated files will be closed.
+- Recent changes will be in future branch. Check the code in *future* branch first to see if a fix has already been merged, before suggesting changes to a file.
+- **Always create pull request to the future branch.** The pull request will be merged to future, and later pushed to master as part of the next release.
diff --git a/class/payment/authorize/LICENSE.txt b/class/payment/authorize/LICENSE.txt
new file mode 100644
index 0000000..ed22ffe
--- /dev/null
+++ b/class/payment/authorize/LICENSE.txt
@@ -0,0 +1,41 @@
+SDK LICENSE AGREEMENT
+This Software Development Kit (“SDKâ€) License Agreement (“Agreementâ€) is between you (both the individual downloading the SDK and any legal entity on behalf of which such individual is acting) (“You†or “Yourâ€) and Authorize.Net LLC (“Authorize.Net’).
+IT IS IMPORTANT THAT YOU READ CAREFULLY AND UNDERSTAND THIS AGREEMENT. BY CLICKING THE “I ACCEPT†BUTTON OR AN EQUIVALENT INDICATOR OR BY DOWNLOADING, INSTALLING OR USING THE SDK OR THE DOCUMENTATION, YOU AGREE TO BE BOUND BY THIS AGREEMENT.
+
+1. DEFINITIONS
+ 1.1 “Application(s)†means software programs that You develop to operate with the Gateway using components of the Software.
+ 1.2 “Documentation†means the materials made available to You in connection with the Software by or on behalf of Authorize.Net pursuant to this Agreement.
+ 1.3 “Gateway†means any electronic payment platform maintained and operated by Authorize.Net and any of its affiliates.
+ 1.4 “Software†means all of the software included in the software development kit made available to You by or on behalf of Authorize.Net pursuant to this Agreement, including but not limited to sample source code, code snippets, software tools, code libraries, sample applications, Documentation and any upgrades, modified versions, updates, and/or additions thereto, if any, made available to You by or on behalf of Authorize.Net pursuant to this Agreement.
+2. GRANT OF LICENSE; RESTRICTIONS
+ 2.1 Limited License. Subject to and conditioned upon Your compliance with the terms of this Agreement, Authorize.Net hereby grants to You a limited, revocable, non-exclusive, non-transferable, royalty-free license during the term of this Agreement to: (a) in any country worldwide, use, reproduce, modify, and create derivative works of the components of the Software solely for the purpose of developing, testing and manufacturing Applications; (b) distribute, sell or otherwise provide Your Applications that include components of the Software to Your end users; and (c) use the Documentation in connection with the foregoing activities. The license to distribute Applications that include components of the Software as set forth in subsection (b) above includes the right to grant sublicenses to Your end users to use such components of the Software as incorporated into such Applications, subject to the limitations and restrictions set forth in this Agreement.
+ 2.2 Restrictions. You shall not (and shall have no right to): (a) make or distribute copies of the Software or the Documentation, in whole or in part, except as expressly permitted pursuant to Section 2.1; (b) alter or remove any copyright, trademark, trade name or other proprietary notices, legends, symbols or labels appearing on or in the Software or Documentation; (c) sublicense (or purport to sublicense) the Software or the Documentation, in whole or in part, to any third party except as expressly permitted pursuant to Section 2.1; (d) engage in any activity with the Software, including the development or distribution of an Application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the Gateway or platform, servers, or systems of Authorize.Net, any of its affiliates, or any third party; (e) make any statements that Your Application is “certified†or otherwise endorsed, or that its performance is guaranteed, by Authorize.Net or any of its affiliates; or (f) otherwise use or exploit the Software or the Documentation for any purpose other than to develop and distribute Applications as expressly permitted by this Agreement.
+ 2.3 Ownership. You shall retain ownership of Your Applications developed in accordance with this Agreement, subject to Authorize.Net’s ownership of the Software and Documentation (including Authorize.Net’s ownership of any portion of the Software or Documentation incorporated in Your Applications). You acknowledge and agree that all right, title and interest in and to the Software and Documentation shall, at all times, be and remain the exclusive property of Authorize.Net and that You do not have or acquire any rights, express or implied, in the Software or Documentation except those rights expressly granted under this Agreement.
+ 2.4 No Support. Authorize.Net has no obligation to provide support, maintenance, upgrades, modifications or new releases of the Software.
+ 2.5 Open Source Software. You hereby acknowledge that the Software may contain software that is distributed under “open source†license terms (“Open Source Softwareâ€). You shall review the Documentation in order to determine which portions of the Software are Open Source Software and are licensed under such Open Source Software license terms. To the extent any such license requires that Authorize.Net provide You any rights with respect to such Open Source Software that are inconsistent with the limited rights granted to You in this Agreement, then such rights in the applicable Open Source Software license shall take precedence over the rights and restrictions granted in this Agreement, but solely with respect to such Open Source Software. You acknowledge that the Open Source Software license is solely between You and the applicable licensor of the Open Source Software and that Your use, reproduction and distribution of Open Source Software shall be in compliance with applicable Open Source Software license. You understand and agree that Authorize.Net is not liable for any loss or damage that You may experience as a result of Your use of Open Source Software and that You will look solely to the licensor of the Open Source Software in the event of any such loss or damage.
+ 2.6 License to Authorize.Net. In the event You choose to submit any suggestions, feedback or other information or materials related to the Software or Documentation or Your use thereof (collectively, “Feedbackâ€) to Authorize.Net, You hereby grant to Authorize.Net a worldwide, non-exclusive, royalty-free, transferable, sublicensable, perpetual and irrevocable license to use and otherwise exploit such Feedback in connection with the Software, Documentation, and other products and services.
+ 2.7 Use.
+ (a) You represent, warrant and agree to use the Software and write Applications only for purposes permitted by (i) this Agreement; (ii) applicable law and regulation, including, without limitation, the Payment Card Industry Data Security Standard (PCI DSS); and (iii) generally accepted practices or guidelines in the relevant jurisdictions. You represent, warrant and agree that if You use the Software to develop Applications for general public end users, that You will protect the privacy and legal rights of those users. If the Application receives or stores personal or sensitive information provided by end users, it must do so securely and in compliance with all applicable laws and regulations, including card association regulations. If the Application receives Authorize.Net account information, the Application may only use that information to access the end user's Authorize.Net account. You represent, warrant and agree that You are solely responsible for (and that neither Authorize.Net nor its affiliates have any responsibility to You or to any third party for): (i) any data, content, or resources that You obtain, transmit or display through the Application; and (ii) any breach of Your obligations under this Agreement, any applicable third party license, or any applicable law or regulation, and for the consequences of any such breach.
+ 3. WARRANTY DISCLAIMER; LIMITATION OF LIABILITY
+ 3.1 Disclaimer. THE SOFTWARE AND THE DOCUMENTATION ARE PROVIDED ON AN “AS IS†AND “AS AVAILABLE†BASIS WITH NO WARRANTY. YOU AGREE THAT YOUR USE OF THE SOFTWARE AND THE DOCUMENTATION IS AT YOUR SOLE RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE. TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, AUTHORIZE.NET AND ITS AFFILIATES EXPRESSLY DISCLAIM ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE AND THE DOCUMENTATION, INCLUDING ALL WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, SATISFACTORY QUALITY, ACCURACY, TITLE AND NON-INFRINGEMENT, AND ANY WARRANTIES THAT MAY ARISE OUT OF COURSE OF PERFORMANCE, COURSE OF DEALING OR USAGE OF TRADE. NEITHER AUTHORIZE.NET NOR ITS AFFILIATES WARRANT THAT THE FUNCTIONS OR INFORMATION CONTAINED IN THE SOFTWARE OR THE DOCUMENTATION WILL MEET ANY REQUIREMENTS OR NEEDS YOU MAY HAVE, OR THAT THE SOFTWARE OR DOCUMENTATION WILL OPERATE ERROR FREE, OR THAT THE SOFTWARE OR DOCUMENTATION IS COMPATIBLE WITH ANY PARTICULAR OPERATING SYSTEM.Â
+ 3.2 Limitation of Liability. IN NO EVENT SHALL AUTHORIZE.NET AND ITS AFFILIATES BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, BUSINESS, SAVINGS, DATA, USE OR COST OF SUBSTITUTE PROCUREMENT, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF AUTHORIZE.NET HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR IF SUCH DAMAGES ARE FORESEEABLE. IN NO EVENT SHALL THE ENTIRE LIABILITY OF AUTHORIZE.NET AND AFFILIATES ARISING FROM OR RELATING TO THIS AGREEMENT OR THE SUBJECT MATTER HEREOF EXCEED ONE HUNDRED U.S. DOLLARS ($100). THE PARTIES ACKNOWLEDGE THAT THE LIMITATIONS OF LIABILITY IN THIS SECTION 3.2 AND IN THE OTHER PROVISIONS OF THIS AGREEMENT AND THE ALLOCATION OF RISK HEREIN ARE AN ESSENTIAL ELEMENT OF THE BARGAIN BETWEEN THE PARTIES, WITHOUT WHICH AUTHORIZE.NET WOULD NOT HAVE ENTERED INTO THIS AGREEMENT.
+ 4. INDEMNIFICATION. You shall indemnify, hold harmless and, at Authorize.Net’s request, defend Authorize.Net and its affiliates and their officers, directors, employees, and agents from and against any claim, suit or proceeding, and any associated liabilities, costs, damages and expenses, including reasonable attorneys’ fees, that arise out of relate to: (i) Your Applications or the use or distribution thereof and Your use or distribution of the Software or the Documentation (or any portion thereof including Open Source Software), including, but not limited to, any allegation that any such Application or any such use or distribution infringes, misappropriates or otherwise violates any intellectual property (including, without limitation, copyright, patent, and trademark), privacy, publicity or other rights of any third party, or has caused the death or injury of any person or damage to any property; (ii) Your alleged or actual breach of this Agreement; (iii) the alleged or actual breach of this Agreement by any party to whom you have provided Your Applications, the Software or the Documentation or (iii) Your alleged or actual violation of or non-compliance with any applicable laws, legislation, policies, rules, regulations or governmental requirements (including, without limitation, any laws, legislation, policies, rules, regulations or governmental requirements related to privacy and data collection).
+ 5. TERMINATION. This Agreement and the licenses granted to you herein are effective until terminated. Authorize.Net may terminate this Agreement and the licenses granted to You at any time. Upon termination of this Agreement, You shall cease all use of the Software and the Documentation, return to Authorize.Net or destroy all copies of the Software and Documentation and related materials in Your possession, and so certify to Authorize.Net. Except for the license to You granted herein, the terms of this Agreement shall survive termination.
+ 6. CONFIDENTIAL INFORMATION
+ a. You hereby agree (i) to hold Authorize.Net’s Confidential Information in strict confidence and to take reasonable precautions to protect such Confidential Information (including, without limitation, all precautions You employ with respect to Your own confidential materials), (ii) not to divulge any such Confidential Information to any third person; (iii) not to make any use whatsoever at any time of such Confidential Information except as strictly licensed hereunder, (iv) not to remove or export from the United States or re-export any such Confidential Information or any direct product thereof, except in compliance with, and with all licenses and approvals required under applicable U.S. and foreign export laws and regulations, including, without limitation, those of the U.S. Department of Commerce.
+ b. “Confidential Information†shall mean any data or information, oral or written, treated as confidential that relates to Authorize.Net’s past, present, or future research, development or business activities, including without limitation any unannounced products and services, any information relating to services, developments, inventions, processes, plans, financial information, customer data, revenue, transaction volume, forecasts, projections, application programming interfaces, Software and Documentation.
+ 7. General Terms
+ 7.1 Law. This Agreement and all matters arising out of or relating to this Agreement shall be governed by the internal laws of the State of California without giving effect to any choice of law rule. This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sales of Goods, the application of which is expressly excluded. In the event of any controversy, claim or dispute between the parties arising out of or relating to this Agreement, such controversy, claim or dispute shall be resolved in the state or federal courts in Santa Clara County, California, and the parties hereby irrevocably consent to the jurisdiction and venue of such courts.
+ 7.2 Logo License. Authorize.Net hereby grants to You the right to use, reproduce, publish, perform and display Authorize.Net logo solely in accordance with the current Authorize.Net brand guidelines.
+ 7.3 Severability and Waiver. If any provision of this Agreement is held to be illegal, invalid or otherwise unenforceable, such provision shall be enforced to the extent possible consistent with the stated intention of the parties, or, if incapable of such enforcement, shall be deemed to be severed and deleted from this Agreement, while the remainder of this Agreement shall continue in full force and effect. The waiver by either party of any default or breach of this Agreement shall not constitute a waiver of any other or subsequent default or breach.
+ 7.4 No Assignment. You may not assign, sell, transfer, delegate or otherwise dispose of, whether voluntarily or involuntarily, by operation of law or otherwise, this Agreement or any rights or obligations under this Agreement without the prior written consent of Authorize.Net, which may be withheld in Authorize.Net’s sole discretion. Any purported assignment, transfer or delegation by You shall be null and void. Subject to the foregoing, this Agreement shall be binding upon and shall inure to the benefit of the parties and their respective successors and assigns.
+ 7.5 Government Rights. If You (or any person or entity to whom you provide the Software or Documentation) are an agency or instrumentality of the United States Government, the Software and Documentation are “commercial computer software†and “commercial computer software documentation,†and pursuant to FAR 12.212 or DFARS 227.7202, and their successors, as applicable, use, reproduction and disclosure of the Software and Documentation are governed by the terms of this Agreement.
+ 7.6 Export Administration. You shall comply fully with all relevant export laws and regulations of the United States, including, without limitation, the U.S. Export Administration Regulations (collectively “Export Controlsâ€). Without limiting the generality of the foregoing, You shall not, and You shall require Your representatives not to, export, direct or transfer the Software or the Documentation, or any direct product thereof, to any destination, person or entity restricted or prohibited by the Export Controls.
+ 7.7 Privacy. In order to continually innovate and improve the Software, Licensee understands and agrees that Authorize.Net may collect certain usage statistics including but not limited to a unique identifier, associated IP address, version number of software, and information on which tools and/or services in the Software are being used and how they are being used.
+ 7.8 Entire Agreement; Amendments. This Agreement constitutes the entire agreement between the parties and supersedes all prior or contemporaneous agreements or representations, written or oral, concerning the subject matter of this Agreement. Authorize.Net may make changes to this Agreement, Software or Documentation in its sole discretion. When these changes are made, Authorize.Net will make a new version of the Agreement, Software or Documentation available on the website where the Software is available. This Agreement may not be modified or amended by You except in a writing signed by a duly authorized representative of each party. You acknowledge and agree that
+Authorize.Net has not made any representations, warranties or agreements of any kind, except as expressly set forth herein.
+
+
+Authorize.Net Software Development Kit (SDK) License Agreement
+v. February 1, 2017
+1
diff --git a/class/payment/authorize/MIGRATING.md b/class/payment/authorize/MIGRATING.md
new file mode 100644
index 0000000..c35b01d
--- /dev/null
+++ b/class/payment/authorize/MIGRATING.md
@@ -0,0 +1,85 @@
+# Migrating from Legacy Authorize.Net Classes
+
+Authorize.Net no longer supports several legacy classes, including AuthorizeNetAIM.php, AuthorizenetSIM.php, and others listed below, as part of PHP-SDK. If you are using any of these, we recommend that you update your code to use the new Authorize.Net API classes.
+
+**For details on the deprecation and replacement of legacy Authorize.Net APIs, visit https://developer.authorize.net/api/upgrade_guide/.**
+
+## Full list of classes that are no longer supported
+| Class | New Feature | Sample Codes directory/repository |
+|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
+| AuthorizeNetAIM.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) |
+| AuthorizeNetARB.php | [RecurringBilling](https://developer.authorize.net/api/reference/index.html#recurring-billing) | [sample-code-php/RecurringBilling](https://github.com/AuthorizeNet/sample-code-php/tree/master/RecurringBilling) |
+| AuthorizeNetCIM.php | [CustomerProfiles](https://developer.authorize.net/api/reference/index.html#customer-profiles) | [sample-code-php/CustomerProfiles](https://github.com/AuthorizeNet/sample-code-php/tree/master/CustomerProfiles) |
+| Hosted CIM | [Accept Customer](https://developer.authorize.net/content/developer/en_us/api/reference/features/customer_profiles.html#Using_the_Accept_Customer_Hosted_Form) | Not available |
+| AuthorizeNetCP.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) |
+| AuthorizeNetDPM.php | [Accept.JS](https://developer.authorize.net/api/reference/features/acceptjs.html) | [Sample Accept Application](https://github.com/AuthorizeNet/accept-sample-app) |
+| AuthorizeNetSIM.php | [Accept Hosted](https://developer.authorize.net/content/developer/en_us/api/reference/features/accept_hosted.html) | Not available |
+| AuthorizeNetSOAP.php | [PaymentTransactions](https://developer.authorize.net/api/reference/index.html#payment-transactions) | [sample-code-php/PaymentTransactions](https://github.com/AuthorizeNet/sample-code-php/tree/master/PaymentTransactions) |
+| AuthorizeNetTD.php | [TransactionReporting](https://developer.authorize.net/api/reference/index.html#transaction-reporting) | [sample-code-php/TransactionReporting/](https://github.com/AuthorizeNet/sample-code-php/tree/master/TransactionReporting) |
+
+## Example
+#### Old AuthorizeNetAIM example:
+ ```php
+define("AUTHORIZENET_API_LOGIN_ID", "YOURLOGIN");
+define("AUTHORIZENET_TRANSACTION_KEY", "YOURKEY");
+define("AUTHORIZENET_SANDBOX", true);
+$sale = new AuthorizeNetAIM;
+$sale->amount = "5.99";
+$sale->card_num = '6011000000000012';
+$sale->exp_date = '04/15';
+$response = $sale->authorizeAndCapture();
+if ($response->approved) {
+ $transaction_id = $response->transaction_id;
+}
+```
+#### Corresponding new model code (charge-credit-card):
+ ```php
+require 'vendor/autoload.php';
+use net\authorize\api\contract\v1 as AnetAPI;
+use net\authorize\api\controller as AnetController;
+
+define("AUTHORIZENET_LOG_FILE", "phplog");
+$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+$merchantAuthentication->setName("YOURLOGIN");
+$merchantAuthentication->setTransactionKey("YOURKEY");
+// Create the payment data for a credit card
+$creditCard = new AnetAPI\CreditCardType();
+$creditCard->setCardNumber("6011000000000012");
+$creditCard->setExpirationDate("2015-04");
+$creditCard->setCardCode("123");
+
+// Add the payment data to a paymentType object
+$paymentOne = new AnetAPI\PaymentType();
+$paymentOne->setCreditCard($creditCard);
+
+$transactionRequestType = new AnetAPI\TransactionRequestType();
+$transactionRequestType->setTransactionType("authCaptureTransaction");
+$transactionRequestType->setAmount("5.99");
+$transactionRequestType->setPayment($paymentOne);
+
+// Assemble the complete transaction request
+$request = new AnetAPI\CreateTransactionRequest();
+$request->setMerchantAuthentication($merchantAuthentication);
+$request->setTransactionRequest($transactionRequestType);
+
+// Create the controller and get the response
+$controller = new AnetController\CreateTransactionController($request);
+$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
+
+if ($response != null) {
+// Check to see if the API request was successfully received and acted upon
+if ($response->getMessages()->getResultCode() == "Ok") {
+ // Since the API request was successful, look for a transaction response
+ // and parse it to display the results of authorizing the card
+ $tresponse = $response->getTransactionResponse();
+
+ if ($tresponse != null && $tresponse->getMessages() != null) {
+ echo " Successfully created transaction with Transaction ID: " . $tresponse->getTransId() . "\n";
+ echo " Transaction Response Code: " . $tresponse->getResponseCode() . "\n";
+ echo " Message Code: " . $tresponse->getMessages()[0]->getCode() . "\n";
+ echo " Auth Code: " . $tresponse->getAuthCode() . "\n";
+ echo " Description: " . $tresponse->getMessages()[0]->getDescription() . "\n";
+ }
+ }
+}
+```
diff --git a/class/payment/authorize/README.md b/class/payment/authorize/README.md
new file mode 100644
index 0000000..4160aaa
--- /dev/null
+++ b/class/payment/authorize/README.md
@@ -0,0 +1,178 @@
+# Authorize.Net PHP SDK
+
+[](https://travis-ci.org/AuthorizeNet/sdk-php)
+[](https://scrutinizer-ci.com/g/AuthorizeNet/sdk-php/?branch=master)
+[](https://packagist.org/packages/authorizenet/authorizenet)
+
+## Requirements
+* PHP 5.6+
+* cURL PHP Extension
+* JSON PHP Extension
+* An Authorize.Net account (see _Registration & Configuration_ section below)
+* TLS 1.2 capable versions of libcurl and OpenSSL (or its equivalent)
+
+### Migrating from older versions
+Since August 2018, the Authorize.Net API has been reorganized to be more merchant focused. Authorize.Net AIM, ARB, CIM, Transaction Reporting, and SIM classes have been deprecated in favor of net\authorize\api. To see the full list of mapping of new features corresponding to the deprecated features, see [MIGRATING.md](MIGRATING.md).
+
+### Contribution
+ - If you need information or clarification about Authorize.Net features, create an issue with your question. You can also search the [Authorize.Net developer community](https://community.developer.authorize.net/)for discussions related to your question.
+ - Before creating pull requests, read [the contributors guide](CONTRIBUTING.md)
+
+### TLS 1.2
+The Authorize.Net APIs only support connections using the TLS 1.2 security protocol. Make sure to upgrade all required components to support TLS 1.2. Keep these components up to date to mitigate the risk of new security flaws.
+
+To test whether your current installation is capable of communicating to our servers using TLS 1.2, run the following PHP code and examine the output for the TLS version:
+```php
+tls_version ."\n";
+```
+
+
+## Installation
+
+### Composer
+We recommend using [`Composer`](http://getcomposer.org). *(Note: we never recommend you
+override the new secure-http default setting)*.
+*Update your composer.json file as per the example below and then run for this specific release
+`composer update`.*
+
+```json
+{
+ "require": {
+ "php": ">=5.6",
+ "authorizenet/authorizenet": "2.0.1"
+ }
+}
+```
+
+After installation through Composer,
+don't forget to require its autoloader in your script or bootstrap file:
+```php
+require 'vendor/autoload.php';
+```
+
+### Custom SPL Autoloader
+Alternatively, we provide a custom `SPL` autoloader for you to reference from within your PHP file:
+```php
+require 'path/to/anet_php_sdk/autoload.php';
+```
+This autoloader still requires the `vendor` directory and all of its dependencies to exist.
+However, this is a possible solution for cases where composer can't be run on a given system.
+You can run composer locally or on another system to build the directory, then copy the
+`vendor` directory to the desired system.
+
+
+## Registration & Configuration
+Use of this SDK and the Authorize.Net APIs requires having an account on the Authorize.Net system. You can find these details in the Settings section. If you don't currently have a production Authorize.Net account, [sign up for a sandbox account](https://developer.authorize.net/sandbox/).
+
+### Authentication
+To authenticate with the Authorize.Net API, use your account's API Login ID and Transaction Key. If you don't have these credentials, obtain them from the Merchant Interface. For production accounts, the Merchant Interface is located at (https://account.authorize.net/), and for sandbox accounts, at (https://sandbox.authorize.net).
+
+After you have your credentials, load them into the appropriate variables in your code. The below sample code shows how to set the credentials as part of the API request.
+
+#### To set your API credentials for an API request:
+...
+```php
+use net\authorize\api\contract\v1 as AnetAPI;
+```
+...
+
+```php
+$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
+$merchantAuthentication->setName("YOURLOGIN");
+$merchantAuthentication->setTransactionKey("YOURKEY");
+```
+...
+
+```php
+$request = new AnetAPI\CreateTransactionRequest();
+$request->setMerchantAuthentication($merchantAuthentication);
+```
+...
+
+You should never include your Login ID and Transaction Key directly in a PHP file that's in a publically accessible portion of your website. A better practice would be to define these in a constants file, and then reference those constants in the appropriate place in your code.
+
+### Switching between the sandbox environment and the production environment
+Authorize.Net maintains a complete sandbox environment for testing and development purposes. The sandbox environment is an exact replica of our production environment, with simulated transaction authorization and settlement. By default, this SDK is configured to use the sandbox environment. To switch to the production environment, replace the environment constant in the execute method. For example:
+```php
+// For PRODUCTION use
+$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION);
+```
+
+API credentials are different for each environment, so be sure to switch to the appropriate credentials when switching environments.
+
+
+## SDK Usage Examples and Sample Code
+To get started using this SDK, it's highly recommended to download our sample code repository:
+* [Authorize.Net PHP Sample Code Repository (on GitHub)](https://github.com/AuthorizeNet/sample-code-php)
+
+In that respository, we have comprehensive sample code for all common uses of our API:
+
+Additionally, you can find details and examples of how our API is structured in our API Reference Guide:
+* [Developer Center API Reference](http://developer.authorize.net/api/reference/index.html)
+
+The API Reference Guide provides examples of what information is needed for a particular request and how that information would be formatted. Using those examples, you can easily determine what methods would be necessary to include that information in a request using this SDK.
+
+
+## Building & Testing the SDK
+Integration tests for the AuthorizeNet SDK are in the `tests` directory. These tests
+are mainly for SDK development. However, you can also browse through them to find
+more usage examples for the various APIs.
+
+- Run `composer update --dev` to load the `PHPUnit` test library.
+- Copy the `phpunit.xml.dist` file to `phpunit.xml` and enter your merchant
+ credentials in the constant fields.
+- Run `vendor/bin/phpunit` to run the test suite.
+
+*You'll probably want to disable emails on your sandbox account.*
+
+### Testing Guide
+For additional help in testing your own code, Authorize.Net maintains a [comprehensive testing guide](http://developer.authorize.net/hello_world/testing_guide/) that includes test credit card numbers to use and special triggers to generate certain responses from the sandbox environment.
+
+
+## Logging
+The SDK generates a log with masking for sensitive data like credit card, expiration dates. The provided levels for logging are
+ `debug`, `info`, `warn`, `error`. Add ````use \net\authorize\util\LogFactory;````. Logger can be initialized using `$logger = LogFactory::getLog(get_class($this));`
+The default log file `phplog` gets generated in the current folder. The subsequent logs are appended to the same file, unless the execution folder is changed, and a new log file is generated.
+
+### Usage Examples
+- Logging a string message `$logger->debug("Sending 'XML' Request type");`
+- Logging xml strings `$logger->debug($xmlRequest);`
+- Logging using formatting `$logger->debugFormat("Integer: %d, Float: %f, Xml-Request: %s\n", array(100, 1.29f, $xmlRequest));`
+
+### Customizing Sensitive Tags
+A local copy of [AuthorizedNetSensitiveTagsConfig.json](/lib/net/authorize/util/ANetSensitiveFields.php) gets generated when code invoking the logger first gets executed. The local file can later be edited by developer to re-configure what is masked and what is visible. (*Do not edit the JSON in the SDK*).
+- For each element of the `sensitiveTags` array,
+ - `tagName` field corresponds to the name of the property in object, or xml-tag that should be hidden entirely ( *XXXX* shown if no replacement specified ) or masked (e.g. showing the last 4 digits of credit card number).
+ - `pattern`[[Note]](#regex-note) and `replacement`[[Note]](#regex-note) can be left `""`, if the default is to be used (as defined in [Log.php](/lib/net/authorize/util/Log.php)). `pattern` gives the regex to identify, while `replacement` defines the visible part.
+ - `disableMask` can be set to *true* to allow the log to fully display that property in an object, or tag in a xml string.
+- `sensitiveStringRegexes`[[Note]](#regex-note) has list of credit-card regexes. So if credit-card number is not already masked, it would get entirely masked.
+- Take care of non-ascii characters (refer [manual](http://php.net/manual/en/regexp.reference.unicode.php)) while defining the regex, e.g. use
+`"pattern": "(\\p{N}+)(\\p{N}{4})"` instead of `"pattern": "(\\d+)(\\d{4})"`. Also note `\\` escape sequence is used.
+
+**Note:**
+**For any regex, no starting or ending '/' or any other delimiter should be defined. The '/' delimiter and unicode flag is added in the code.**
+
+
+ ### Transaction Hash Upgrade
+Authorize.Net is phasing out the MD5 based `transHash` element in favor of the SHA-512 based `transHashSHA2`. The setting in the Merchant Interface which controlled the MD5 Hash option is no longer available, and the `transHash` element will stop returning values at a later date to be determined. For information on how to use `transHashSHA2`, see the [Transaction Hash Upgrade Guide] (https://developer.authorize.net/support/hash_upgrade/).
+
+
+## License
+This repository is distributed under a proprietary license. See the provided [`LICENSE.txt`](/LICENSE.txt) file.
diff --git a/class/payment/authorize/autoload.php b/class/payment/authorize/autoload.php
new file mode 100644
index 0000000..fbecbc5
--- /dev/null
+++ b/class/payment/authorize/autoload.php
@@ -0,0 +1,18 @@
+ filename for SPL autoloading.
+ *
+ * @package AuthorizeNet
+ */
+
+$baseDir = __DIR__ ;
+$libDir = $baseDir . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR;
+$vendorDir = $baseDir . '/vendor';
+
+return array(
+
+ // Following section contains the new controller model classes needed
+ //Utils
+ //'net\authorize\util\ObjectToXml' => $libDir . 'net/authorize/util/ObjectToXml.php',
+ 'net\authorize\util\HttpClient' => $libDir . 'net/authorize/util/HttpClient.php',
+ 'net\authorize\util\Helpers' => $libDir . 'net/authorize/util/Helpers.php',
+ 'net\authorize\util\Log' => $libDir . 'net/authorize/util/Log.php',
+ 'net\authorize\util\LogFactory' => $libDir . 'net/authorize/util/LogFactory.php',
+ 'net\authorize\util\ANetSensitiveFields' => $libDir . 'net/authorize/util/ANetSensitiveFields.php',
+ 'net\authorize\util\SensitiveTag' => $libDir . 'net/authorize/util/SensitiveTag.php',
+ 'net\authorize\util\SensitiveDataConfigType' => $libDir . 'net/authorize/util/SensitiveDataConfigType.php',
+ 'net\authorize\util\Mapper' => $libDir . 'net/authorize/util/Mapper.php',
+ 'net\authorize\util\MapperObj' => $libDir . 'net/authorize/util/MapperObj.php',
+
+ //constants
+ 'net\authorize\api\constants\ANetEnvironment' => $libDir . 'net/authorize/api/constants/ANetEnvironment.php',
+
+ //base classes
+ 'net\authorize\api\controller\base\IApiOperation' => $libDir . 'net/authorize/api/controller/base/IApiOperation.php',
+ 'net\authorize\api\controller\base\ApiOperationBase' => $libDir . 'net/authorize/api/controller/base/ApiOperationBase.php',
+
+ //following are generated class mappings
+ 'net\authorize\api\contract\v1\ANetApiRequestType' => $libDir . 'net/authorize/api/contract/v1/ANetApiRequestType.php',
+ 'net\authorize\api\contract\v1\ANetApiResponseType' => $libDir . 'net/authorize/api/contract/v1/ANetApiResponseType.php',
+ 'net\authorize\api\contract\v1\ARBCancelSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBCancelSubscriptionRequest.php',
+ 'net\authorize\api\contract\v1\ARBCancelSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBCancelSubscriptionResponse.php',
+ 'net\authorize\api\contract\v1\ARBCreateSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBCreateSubscriptionRequest.php',
+ 'net\authorize\api\contract\v1\ARBCreateSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBCreateSubscriptionResponse.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionListRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListRequest.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionListResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListResponse.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionListSortingType.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionResponse.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionStatusRequest' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionStatusRequest.php',
+ 'net\authorize\api\contract\v1\ARBGetSubscriptionStatusResponse' => $libDir . 'net/authorize/api/contract/v1/ARBGetSubscriptionStatusResponse.php',
+ 'net\authorize\api\contract\v1\ARBSubscriptionMaskedType' => $libDir . 'net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php',
+ 'net\authorize\api\contract\v1\ARBSubscriptionType' => $libDir . 'net/authorize/api/contract/v1/ARBSubscriptionType.php',
+ 'net\authorize\api\contract\v1\ArbTransactionType' => $libDir . 'net/authorize/api/contract/v1/ArbTransactionType.php',
+ 'net\authorize\api\contract\v1\ARBUpdateSubscriptionRequest' => $libDir . 'net/authorize/api/contract/v1/ARBUpdateSubscriptionRequest.php',
+ 'net\authorize\api\contract\v1\ARBUpdateSubscriptionResponse' => $libDir . 'net/authorize/api/contract/v1/ARBUpdateSubscriptionResponse.php',
+ 'net\authorize\api\contract\v1\ArrayOfSettingType' => $libDir . 'net/authorize/api/contract/v1/ArrayOfSettingType.php',
+ 'net\authorize\api\contract\v1\AuthenticateTestRequest' => $libDir . 'net/authorize/api/contract/v1/AuthenticateTestRequest.php',
+ 'net\authorize\api\contract\v1\AuthenticateTestResponse' => $libDir . 'net/authorize/api/contract/v1/AuthenticateTestResponse.php',
+ 'net\authorize\api\contract\v1\BankAccountMaskedType' => $libDir . 'net/authorize/api/contract/v1/BankAccountMaskedType.php',
+ 'net\authorize\api\contract\v1\BankAccountType' => $libDir . 'net/authorize/api/contract/v1/BankAccountType.php',
+ 'net\authorize\api\contract\v1\BatchDetailsType' => $libDir . 'net/authorize/api/contract/v1/BatchDetailsType.php',
+ 'net\authorize\api\contract\v1\BatchStatisticType' => $libDir . 'net/authorize/api/contract/v1/BatchStatisticType.php',
+ 'net\authorize\api\contract\v1\CardArtType' => $libDir . 'net/authorize/api/contract/v1/CardArtType.php',
+ 'net\authorize\api\contract\v1\CcAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/CcAuthenticationType.php',
+ 'net\authorize\api\contract\v1\CreateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerPaymentProfileRequest.php',
+ 'net\authorize\api\contract\v1\CreateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerPaymentProfileResponse.php',
+ 'net\authorize\api\contract\v1\CreateCustomerProfileFromTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileFromTransactionRequest.php',
+ 'net\authorize\api\contract\v1\CreateCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileRequest.php',
+ 'net\authorize\api\contract\v1\CreateCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileResponse.php',
+ 'net\authorize\api\contract\v1\CreateCustomerProfileTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileTransactionRequest.php',
+ 'net\authorize\api\contract\v1\CreateCustomerProfileTransactionResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerProfileTransactionResponse.php',
+ 'net\authorize\api\contract\v1\CreateCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerShippingAddressRequest.php',
+ 'net\authorize\api\contract\v1\CreateCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/CreateCustomerShippingAddressResponse.php',
+ 'net\authorize\api\contract\v1\CreateProfileResponseType' => $libDir . 'net/authorize/api/contract/v1/CreateProfileResponseType.php',
+ 'net\authorize\api\contract\v1\CreateTransactionRequest' => $libDir . 'net/authorize/api/contract/v1/CreateTransactionRequest.php',
+ 'net\authorize\api\contract\v1\CreateTransactionResponse' => $libDir . 'net/authorize/api/contract/v1/CreateTransactionResponse.php',
+ 'net\authorize\api\contract\v1\CreditCardMaskedType' => $libDir . 'net/authorize/api/contract/v1/CreditCardMaskedType.php',
+ 'net\authorize\api\contract\v1\CreditCardSimpleType' => $libDir . 'net/authorize/api/contract/v1/CreditCardSimpleType.php',
+ 'net\authorize\api\contract\v1\CreditCardTrackType' => $libDir . 'net/authorize/api/contract/v1/CreditCardTrackType.php',
+ 'net\authorize\api\contract\v1\CreditCardType' => $libDir . 'net/authorize/api/contract/v1/CreditCardType.php',
+ 'net\authorize\api\contract\v1\CustomerAddressExType' => $libDir . 'net/authorize/api/contract/v1/CustomerAddressExType.php',
+ 'net\authorize\api\contract\v1\CustomerAddressType' => $libDir . 'net/authorize/api/contract/v1/CustomerAddressType.php',
+ 'net\authorize\api\contract\v1\CustomerDataType' => $libDir . 'net/authorize/api/contract/v1/CustomerDataType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileIdType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileIdType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileBaseType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileBaseType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileExType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileExType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileListItemType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileListItemType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileMaskedType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileSortingType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileSortingType.php',
+ 'net\authorize\api\contract\v1\CustomerPaymentProfileType' => $libDir . 'net/authorize/api/contract/v1/CustomerPaymentProfileType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileBaseType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileBaseType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileExType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileExType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileMaskedType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileMaskedType.php',
+ 'net\authorize\api\contract\v1\CustomerProfilePaymentType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfilePaymentType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileSummaryType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileSummaryType.php',
+ 'net\authorize\api\contract\v1\CustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/CustomerProfileType.php',
+ 'net\authorize\api\contract\v1\CustomerType' => $libDir . 'net/authorize/api/contract/v1/CustomerType.php',
+ 'net\authorize\api\contract\v1\DecryptPaymentDataRequest' => $libDir . 'net/authorize/api/contract/v1/DecryptPaymentDataRequest.php',
+ 'net\authorize\api\contract\v1\DecryptPaymentDataResponse' => $libDir . 'net/authorize/api/contract/v1/DecryptPaymentDataResponse.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerPaymentProfileRequest.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerPaymentProfileResponse.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerProfileRequest.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerProfileResponse.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerShippingAddressRequest.php',
+ 'net\authorize\api\contract\v1\DeleteCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/DeleteCustomerShippingAddressResponse.php',
+ 'net\authorize\api\contract\v1\DriversLicenseMaskedType' => $libDir . 'net/authorize/api/contract/v1/DriversLicenseMaskedType.php',
+ 'net\authorize\api\contract\v1\DriversLicenseType' => $libDir . 'net/authorize/api/contract/v1/DriversLicenseType.php',
+ 'net\authorize\api\contract\v1\EmailSettingsType' => $libDir . 'net/authorize/api/contract/v1/EmailSettingsType.php',
+ 'net\authorize\api\contract\v1\EncryptedTrackDataType' => $libDir . 'net/authorize/api/contract/v1/EncryptedTrackDataType.php',
+ 'net\authorize\api\contract\v1\EnumCollection' => $libDir . 'net/authorize/api/contract/v1/EnumCollection.php',
+ 'net\authorize\api\contract\v1\ErrorResponse' => $libDir . 'net/authorize/api/contract/v1/ErrorResponse.php',
+ 'net\authorize\api\contract\v1\ExtendedAmountType' => $libDir . 'net/authorize/api/contract/v1/ExtendedAmountType.php',
+ 'net\authorize\api\contract\v1\FDSFilterType' => $libDir . 'net/authorize/api/contract/v1/FDSFilterType.php',
+ 'net\authorize\api\contract\v1\FingerPrintType' => $libDir . 'net/authorize/api/contract/v1/FingerPrintType.php',
+ 'net\authorize\api\contract\v1\FraudInformationType'=> $libDir . 'net/authorize/api/contract/v1/FraudInformationType.php',
+ 'net\authorize\api\contract\v1\GetBatchStatisticsRequest' => $libDir . 'net/authorize/api/contract/v1/GetBatchStatisticsRequest.php',
+ 'net\authorize\api\contract\v1\GetBatchStatisticsResponse' => $libDir . 'net/authorize/api/contract/v1/GetBatchStatisticsResponse.php',
+ 'net\authorize\api\contract\v1\GetCustomerPaymentProfileListRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileListRequest.php',
+ 'net\authorize\api\contract\v1\GetCustomerPaymentProfileListResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileListResponse.php',
+ 'net\authorize\api\contract\v1\GetCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileRequest.php',
+ 'net\authorize\api\contract\v1\GetCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerPaymentProfileResponse.php',
+ 'net\authorize\api\contract\v1\GetCustomerProfileIdsRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileIdsRequest.php',
+ 'net\authorize\api\contract\v1\GetCustomerProfileIdsResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileIdsResponse.php',
+ 'net\authorize\api\contract\v1\GetCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileRequest.php',
+ 'net\authorize\api\contract\v1\GetCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerProfileResponse.php',
+ 'net\authorize\api\contract\v1\GetCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/GetCustomerShippingAddressRequest.php',
+ 'net\authorize\api\contract\v1\GetCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/GetCustomerShippingAddressResponse.php',
+ 'net\authorize\api\contract\v1\GetHostedPaymentPageRequest'=> $libDir . 'net/authorize/api/contract/v1/GetHostedPaymentPageRequest.php',
+ 'net\authorize\api\contract\v1\GetHostedPaymentPageResponse'=> $libDir . 'net/authorize/api/contract/v1/GetHostedPaymentPageResponse.php',
+ 'net\authorize\api\contract\v1\GetHostedProfilePageRequest' => $libDir . 'net/authorize/api/contract/v1/GetHostedProfilePageRequest.php',
+ 'net\authorize\api\contract\v1\GetHostedProfilePageResponse' => $libDir . 'net/authorize/api/contract/v1/GetHostedProfilePageResponse.php',
+ 'net\authorize\api\contract\v1\GetMerchantDetailsRequest'=> $libDir . 'net/authorize/api/contract/v1/GetMerchantDetailsRequest.php',
+ 'net\authorize\api\contract\v1\GetMerchantDetailsResponse'=> $libDir . 'net/authorize/api/contract/v1/GetMerchantDetailsResponse.php',
+ 'net\authorize\api\contract\v1\GetSettledBatchListRequest' => $libDir . 'net/authorize/api/contract/v1/GetSettledBatchListRequest.php',
+ 'net\authorize\api\contract\v1\GetSettledBatchListResponse' => $libDir . 'net/authorize/api/contract/v1/GetSettledBatchListResponse.php',
+ 'net\authorize\api\contract\v1\GetTransactionDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionDetailsRequest.php',
+ 'net\authorize\api\contract\v1\GetTransactionDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/GetTransactionDetailsResponse.php',
+ 'net\authorize\api\contract\v1\GetTransactionListRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListRequest.php',
+ 'net\authorize\api\contract\v1\GetTransactionListResponse' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListResponse.php',
+ 'net\authorize\api\contract\v1\GetUnsettledTransactionListRequest' => $libDir . 'net/authorize/api/contract/v1/GetUnsettledTransactionListRequest.php',
+ 'net\authorize\api\contract\v1\GetUnsettledTransactionListResponse' => $libDir . 'net/authorize/api/contract/v1/GetUnsettledTransactionListResponse.php',
+ 'net\authorize\api\contract\v1\HeldTransactionRequestType'=> $libDir . 'net/authorize/api/contract/v1/HeldTransactionRequestType.php',
+ 'net\authorize\api\contract\v1\ImpersonationAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/ImpersonationAuthenticationType.php',
+ 'net\authorize\api\contract\v1\IsAliveRequest' => $libDir . 'net/authorize/api/contract/v1/IsAliveRequest.php',
+ 'net\authorize\api\contract\v1\IsAliveResponse' => $libDir . 'net/authorize/api/contract/v1/IsAliveResponse.php',
+ 'net\authorize\api\contract\v1\KeyBlockType' => $libDir . 'net/authorize/api/contract/v1/KeyBlockType.php',
+ 'net\authorize\api\contract\v1\KeyManagementSchemeType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType.php',
+ 'net\authorize\api\contract\v1\KeyValueType' => $libDir . 'net/authorize/api/contract/v1/KeyValueType.php',
+ 'net\authorize\api\contract\v1\LineItemType' => $libDir . 'net/authorize/api/contract/v1/LineItemType.php',
+ 'net\authorize\api\contract\v1\LogoutRequest' => $libDir . 'net/authorize/api/contract/v1/LogoutRequest.php',
+ 'net\authorize\api\contract\v1\LogoutResponse' => $libDir . 'net/authorize/api/contract/v1/LogoutResponse.php',
+ 'net\authorize\api\contract\v1\MerchantAuthenticationType' => $libDir . 'net/authorize/api/contract/v1/MerchantAuthenticationType.php',
+ 'net\authorize\api\contract\v1\MerchantContactType' => $libDir . 'net/authorize/api/contract/v1/MerchantContactType.php',
+ 'net\authorize\api\contract\v1\MessagesType' => $libDir . 'net/authorize/api/contract/v1/MessagesType.php',
+ 'net\authorize\api\contract\v1\MobileDeviceLoginRequest' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceLoginRequest.php',
+ 'net\authorize\api\contract\v1\MobileDeviceLoginResponse' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceLoginResponse.php',
+ 'net\authorize\api\contract\v1\MobileDeviceRegistrationRequest' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceRegistrationRequest.php',
+ 'net\authorize\api\contract\v1\MobileDeviceRegistrationResponse' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceRegistrationResponse.php',
+ 'net\authorize\api\contract\v1\MobileDeviceType' => $libDir . 'net/authorize/api/contract/v1/MobileDeviceType.php',
+ 'net\authorize\api\contract\v1\NameAndAddressType' => $libDir . 'net/authorize/api/contract/v1/NameAndAddressType.php',
+ 'net\authorize\api\contract\v1\OpaqueDataType' => $libDir . 'net/authorize/api/contract/v1/OpaqueDataType.php',
+ 'net\authorize\api\contract\v1\OrderExType' => $libDir . 'net/authorize/api/contract/v1/OrderExType.php',
+ 'net\authorize\api\contract\v1\OrderType' => $libDir . 'net/authorize/api/contract/v1/OrderType.php',
+ 'net\authorize\api\contract\v1\PagingType' => $libDir . 'net/authorize/api/contract/v1/PagingType.php',
+ 'net\authorize\api\contract\v1\PaymentDetailsType' => $libDir . 'net/authorize/api/contract/v1/PaymentDetailsType.php',
+ 'net\authorize\api\contract\v1\PaymentMaskedType' => $libDir . 'net/authorize/api/contract/v1/PaymentMaskedType.php',
+ 'net\authorize\api\contract\v1\PaymentProfileType' => $libDir . 'net/authorize/api/contract/v1/PaymentProfileType.php',
+ 'net\authorize\api\contract\v1\PaymentScheduleType' => $libDir . 'net/authorize/api/contract/v1/PaymentScheduleType.php',
+ 'net\authorize\api\contract\v1\PaymentSimpleType' => $libDir . 'net/authorize/api/contract/v1/PaymentSimpleType.php',
+ 'net\authorize\api\contract\v1\PaymentType' => $libDir . 'net/authorize/api/contract/v1/PaymentType.php',
+ 'net\authorize\api\contract\v1\PayPalType' => $libDir . 'net/authorize/api/contract/v1/PayPalType.php',
+ 'net\authorize\api\contract\v1\PermissionType' => $libDir . 'net/authorize/api/contract/v1/PermissionType.php',
+ 'net\authorize\api\contract\v1\ProcessorType'=> $libDir . 'net/authorize/api/contract/v1/ProcessorType.php',
+ 'net\authorize\api\contract\v1\ProfileTransactionType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransactionType.php',
+ 'net\authorize\api\contract\v1\ProfileTransAmountType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAmountType.php',
+ 'net\authorize\api\contract\v1\ProfileTransAuthCaptureType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAuthCaptureType.php',
+ 'net\authorize\api\contract\v1\ProfileTransAuthOnlyType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransAuthOnlyType.php',
+ 'net\authorize\api\contract\v1\ProfileTransCaptureOnlyType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransCaptureOnlyType.php',
+ 'net\authorize\api\contract\v1\ProfileTransOrderType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransOrderType.php',
+ 'net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransPriorAuthCaptureType.php',
+ 'net\authorize\api\contract\v1\ProfileTransRefundType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransRefundType.php',
+ 'net\authorize\api\contract\v1\ProfileTransVoidType' => $libDir . 'net/authorize/api/contract/v1/ProfileTransVoidType.php',
+ 'net\authorize\api\contract\v1\ReturnedItemType' => $libDir . 'net/authorize/api/contract/v1/ReturnedItemType.php',
+ 'net\authorize\api\contract\v1\SearchCriteriaCustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/SearchCriteriaCustomerProfileType.php',
+ 'net\authorize\api\contract\v1\SecurePaymentContainerErrorType' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerErrorType.php',
+ 'net\authorize\api\contract\v1\SecurePaymentContainerRequest' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerRequest.php',
+ 'net\authorize\api\contract\v1\SecurePaymentContainerResponse' => $libDir . 'net/authorize/api/contract/v1/SecurePaymentContainerResponse.php',
+ 'net\authorize\api\contract\v1\SendCustomerTransactionReceiptRequest' => $libDir . 'net/authorize/api/contract/v1/SendCustomerTransactionReceiptRequest.php',
+ 'net\authorize\api\contract\v1\SendCustomerTransactionReceiptResponse' => $libDir . 'net/authorize/api/contract/v1/SendCustomerTransactionReceiptResponse.php',
+ 'net\authorize\api\contract\v1\SettingType' => $libDir . 'net/authorize/api/contract/v1/SettingType.php',
+ 'net\authorize\api\contract\v1\SolutionType' => $libDir . 'net/authorize/api/contract/v1/SolutionType.php',
+ 'net\authorize\api\contract\v1\SubMerchantType' => $libDir . 'net/authorize/api/contract/v1/SubMerchantType.php',
+ 'net\authorize\api\contract\v1\SubscriptionCustomerProfileType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionCustomerProfileType.php',
+ 'net\authorize\api\contract\v1\SubscriptionDetailType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionDetailType.php',
+ 'net\authorize\api\contract\v1\SubscriptionPaymentType' => $libDir . 'net/authorize/api/contract/v1/SubscriptionPaymentType.php',
+ 'net\authorize\api\contract\v1\TokenMaskedType' => $libDir . 'net/authorize/api/contract/v1/TokenMaskedType.php',
+ 'net\authorize\api\contract\v1\TransactionDetailsType' => $libDir . 'net/authorize/api/contract/v1/TransactionDetailsType.php',
+ 'net\authorize\api\contract\v1\TransactionListSortingType'=> $libDir . 'net/authorize/api/contract/v1/TransactionListSortingType.php',
+ 'net\authorize\api\contract\v1\TransactionRequestType' => $libDir . 'net/authorize/api/contract/v1/TransactionRequestType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType.php',
+ 'net\authorize\api\contract\v1\TransactionSummaryType' => $libDir . 'net/authorize/api/contract/v1/TransactionSummaryType.php',
+ 'net\authorize\api\contract\v1\TransRetailInfoType' => $libDir . 'net/authorize/api/contract/v1/TransRetailInfoType.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerPaymentProfileRequest.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerPaymentProfileResponse.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerProfileRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerProfileRequest.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerProfileResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerProfileResponse.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerShippingAddressRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerShippingAddressRequest.php',
+ 'net\authorize\api\contract\v1\UpdateCustomerShippingAddressResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateCustomerShippingAddressResponse.php',
+ 'net\authorize\api\contract\v1\UpdateHeldTransactionRequest'=> $libDir . 'net/authorize/api/contract/v1/UpdateHeldTransactionRequest.php',
+ 'net\authorize\api\contract\v1\UpdateHeldTransactionResponse'=> $libDir . 'net/authorize/api/contract/v1/UpdateHeldTransactionResponse.php',
+ 'net\authorize\api\contract\v1\UpdateSplitTenderGroupRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateSplitTenderGroupRequest.php',
+ 'net\authorize\api\contract\v1\UpdateSplitTenderGroupResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateSplitTenderGroupResponse.php',
+ 'net\authorize\api\contract\v1\UserFieldType' => $libDir . 'net/authorize/api/contract/v1/UserFieldType.php',
+ 'net\authorize\api\contract\v1\ValidateCustomerPaymentProfileRequest' => $libDir . 'net/authorize/api/contract/v1/ValidateCustomerPaymentProfileRequest.php',
+ 'net\authorize\api\contract\v1\ValidateCustomerPaymentProfileResponse' => $libDir . 'net/authorize/api/contract/v1/ValidateCustomerPaymentProfileResponse.php',
+ 'net\authorize\api\contract\v1\WebCheckOutDataType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataType.php',
+ 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType.php',
+ 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/DeviceInfoAType.php',
+ 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/EncryptedDataAType.php',
+ 'net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType' => $libDir . 'net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/ModeAType.php',
+ 'net\authorize\api\contract\v1\MessagesType\MessageAType' => $libDir . 'net/authorize/api/contract/v1/MessagesType/MessageAType.php',
+ 'net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType' => $libDir . 'net/authorize/api/contract/v1/PaymentScheduleType/IntervalAType.php',
+ 'net\authorize\api\contract\v1\TransactionRequestType\UserFieldsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionRequestType/UserFieldsAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\MessagesAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/MessagesAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/PrePaidCardAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SecureAcceptanceAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\UserFieldsAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/UserFieldsAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType/ErrorAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/MessagesAType/MessageAType.php',
+ 'net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType' => $libDir . 'net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType/SplitTenderPaymentAType.php',
+ 'net\authorize\api\contract\v1\WebCheckOutDataType\TokenAType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataType/TokenAType.php',
+ 'net\authorize\api\contract\v1\GetTransactionListForCustomerRequest' => $libDir . 'net/authorize/api/contract/v1/GetTransactionListForCustomerRequest.php',
+
+ 'net\authorize\api\contract\v1\GetAUJobSummaryRequest' => $libDir . 'net/authorize/api/contract/v1/getAUJobSummaryRequest.php',
+ 'net\authorize\api\contract\v1\GetAUJobSummaryResponse' => $libDir . 'net/authorize/api/contract/v1/GetAUJobSummaryResponse.php',
+ 'net\authorize\api\contract\v1\GetAUJobDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/GetAUJobDetailsRequest.php',
+ 'net\authorize\api\contract\v1\GetAUJobDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/GetAUJobDetailsResponse.php',
+
+ 'net\authorize\api\contract\v1\AuDeleteType' => $libDir . 'net/authorize/api/contract/v1/AuDeleteType.php',
+ 'net\authorize\api\contract\v1\AuDetailsType' => $libDir . 'net/authorize/api/contract/v1/AuDetailsType.php',
+ 'net\authorize\api\contract\v1\AuResponseType' => $libDir . 'net/authorize/api/contract/v1/AuResponseType.php',
+ 'net\authorize\api\contract\v1\AuUpdateType' => $libDir . 'net/authorize/api/contract/v1/AuUpdateType.php',
+
+ 'net\authorize\api\contract\v1\ListOfAUDetailsType' => $libDir . 'net/authorize/api/contract/v1/ListOfAUDetailsType.php',
+ 'net\authorize\api\contract\v1\EmvTagType' => $libDir . 'net/authorize/api/contract/v1/EmvTagType.php',
+ 'net\authorize\api\contract\v1\PaymentEmvType' => $libDir . 'net/authorize/api/contract/v1/PaymentEmvType.php',
+ 'net\authorize\api\contract\v1\OtherTaxType' => $libDir . 'net/authorize/api/contract/v1/OtherTaxType.php',
+ 'net\authorize\api\contract\v1\UpdateMerchantDetailsRequest' => $libDir . 'net/authorize/api/contract/v1/UpdateMerchantDetailsRequest.php',
+ 'net\authorize\api\contract\v1\UpdateMerchantDetailsResponse' => $libDir . 'net/authorize/api/contract/v1/UpdateMerchantDetailsResponse.php',
+ 'net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType' => $libDir . 'net/authorize/api/contract/v1/WebCheckOutDataTypeTokenType.php',
+
+ //Controllers
+ 'net\authorize\api\controller\ARBCancelSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBCancelSubscriptionController.php',
+ 'net\authorize\api\controller\ARBCreateSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBCreateSubscriptionController.php',
+ 'net\authorize\api\controller\ARBGetSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionController.php',
+ 'net\authorize\api\controller\ARBGetSubscriptionListController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionListController.php',
+ 'net\authorize\api\controller\ARBGetSubscriptionStatusController' => $libDir . 'net/authorize/api/controller/ARBGetSubscriptionStatusController.php',
+ 'net\authorize\api\controller\ARBUpdateSubscriptionController' => $libDir . 'net/authorize/api/controller/ARBUpdateSubscriptionController.php',
+ 'net\authorize\api\controller\AuthenticateTestController' => $libDir . 'net/authorize/api/controller/AuthenticateTestController.php',
+ 'net\authorize\api\controller\CreateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/CreateCustomerPaymentProfileController.php',
+ 'net\authorize\api\controller\CreateCustomerProfileController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileController.php',
+ 'net\authorize\api\controller\CreateCustomerProfileFromTransactionController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileFromTransactionController.php',
+ 'net\authorize\api\controller\CreateCustomerProfileTransactionController' => $libDir . 'net/authorize/api/controller/CreateCustomerProfileTransactionController.php',
+ 'net\authorize\api\controller\CreateCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/CreateCustomerShippingAddressController.php',
+ 'net\authorize\api\controller\CreateTransactionController' => $libDir . 'net/authorize/api/controller/CreateTransactionController.php',
+ 'net\authorize\api\controller\DecryptPaymentDataController' => $libDir . 'net/authorize/api/controller/DecryptPaymentDataController.php',
+ 'net\authorize\api\controller\DeleteCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/DeleteCustomerPaymentProfileController.php',
+ 'net\authorize\api\controller\DeleteCustomerProfileController' => $libDir . 'net/authorize/api/controller/DeleteCustomerProfileController.php',
+ 'net\authorize\api\controller\DeleteCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/DeleteCustomerShippingAddressController.php',
+ 'net\authorize\api\controller\GetAUJobDetailsController' => $libDir . 'net/authorize/api/controller/GetAUJobDetailsController.php',
+ 'net\authorize\api\controller\GetAUJobSummaryController' => $libDir . 'net/authorize/api/controller/GetAUJobSummaryController.php',
+ 'net\authorize\api\controller\GetBatchStatisticsController' => $libDir . 'net/authorize/api/controller/GetBatchStatisticsController.php',
+ 'net\authorize\api\controller\GetCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/GetCustomerPaymentProfileController.php',
+ 'net\authorize\api\controller\GetCustomerPaymentProfileListController' => $libDir . 'net/authorize/api/controller/GetCustomerPaymentProfileListController.php',
+ 'net\authorize\api\controller\GetCustomerProfileController' => $libDir . 'net/authorize/api/controller/GetCustomerProfileController.php',
+ 'net\authorize\api\controller\GetCustomerProfileIdsController' => $libDir . 'net/authorize/api/controller/GetCustomerProfileIdsController.php',
+ 'net\authorize\api\controller\GetCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/GetCustomerShippingAddressController.php',
+ 'net\authorize\api\controller\GetHostedPaymentPageController' => $libDir . 'net/authorize/api/controller/GetHostedPaymentPageController.php',
+ 'net\authorize\api\controller\GetHostedProfilePageController' => $libDir . 'net/authorize/api/controller/GetHostedProfilePageController.php',
+ 'net\authorize\api\controller\GetMerchantDetailsController' => $libDir . 'net/authorize/api/controller/GetMerchantDetailsController.php',
+ 'net\authorize\api\controller\GetSettledBatchListController' => $libDir . 'net/authorize/api/controller/GetSettledBatchListController.php',
+ 'net\authorize\api\controller\GetTransactionDetailsController' => $libDir . 'net/authorize/api/controller/GetTransactionDetailsController.php',
+ 'net\authorize\api\controller\GetTransactionListController' => $libDir . 'net/authorize/api/controller/GetTransactionListController.php',
+ 'net\authorize\api\controller\GetTransactionListForCustomerController' => $libDir . 'net/authorize/api/controller/GetTransactionListForCustomerController.php',
+ 'net\authorize\api\controller\GetUnsettledTransactionListController' => $libDir . 'net/authorize/api/controller/GetUnsettledTransactionListController.php',
+ 'net\authorize\api\controller\IsAliveController' => $libDir . 'net/authorize/api/controller/IsAliveController.php',
+ 'net\authorize\api\controller\LogoutController' => $libDir . 'net/authorize/api/controller/LogoutController.php',
+ 'net\authorize\api\controller\MobileDeviceLoginController' => $libDir . 'net/authorize/api/controller/MobileDeviceLoginController.php',
+ 'net\authorize\api\controller\MobileDeviceRegistrationController' => $libDir . 'net/authorize/api/controller/MobileDeviceRegistrationController.php',
+ 'net\authorize\api\controller\SecurePaymentContainerController' => $libDir . 'net/authorize/api/controller/SecurePaymentContainerController.php',
+ 'net\authorize\api\controller\SendCustomerTransactionReceiptController' => $libDir . 'net/authorize/api/controller/SendCustomerTransactionReceiptController.php',
+ 'net\authorize\api\controller\UpdateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/UpdateCustomerPaymentProfileController.php',
+ 'net\authorize\api\controller\UpdateCustomerProfileController' => $libDir . 'net/authorize/api/controller/UpdateCustomerProfileController.php',
+ 'net\authorize\api\controller\UpdateCustomerShippingAddressController' => $libDir . 'net/authorize/api/controller/UpdateCustomerShippingAddressController.php',
+ 'net\authorize\api\controller\UpdateHeldTransactionController' => $libDir . 'net/authorize/api/controller/UpdateHeldTransactionController.php',
+ 'net\authorize\api\controller\UpdateMerchantDetailsController' => $libDir . 'net/authorize/api/controller/UpdateMerchantDetailsController.php',
+ 'net\authorize\api\controller\UpdateSplitTenderGroupController' => $libDir . 'net/authorize/api/controller/UpdateSplitTenderGroupController.php',
+ 'net\authorize\api\controller\ValidateCustomerPaymentProfileController' => $libDir . 'net/authorize/api/controller/ValidateCustomerPaymentProfileController.php'
+
+);
diff --git a/class/payment/authorize/lib/net/authorize/api/constants/ANetEnvironment.php b/class/payment/authorize/lib/net/authorize/api/constants/ANetEnvironment.php
new file mode 100644
index 0000000..4dcd85c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/constants/ANetEnvironment.php
@@ -0,0 +1,11 @@
+merchantAuthentication;
+ }
+
+ /**
+ * Sets a new merchantAuthentication
+ *
+ * @param \net\authorize\api\contract\v1\MerchantAuthenticationType
+ * $merchantAuthentication
+ * @return self
+ */
+ public function setMerchantAuthentication(\net\authorize\api\contract\v1\MerchantAuthenticationType $merchantAuthentication)
+ {
+ $this->merchantAuthentication = $merchantAuthentication;
+ return $this;
+ }
+
+ /**
+ * Gets as clientId
+ *
+ * @return string
+ */
+ public function getClientId()
+ {
+ return $this->clientId;
+ }
+
+ /**
+ * Sets a new clientId
+ *
+ * @param string $clientId
+ * @return self
+ */
+ public function setClientId($clientId)
+ {
+ $this->clientId = $clientId;
+ return $this;
+ }
+
+ /**
+ * Gets as refId
+ *
+ * @return string
+ */
+ public function getRefId()
+ {
+ return $this->refId;
+ }
+
+ /**
+ * Sets a new refId
+ *
+ * @param string $refId
+ * @return self
+ */
+ public function setRefId($refId)
+ {
+ $this->refId = $refId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ANetApiResponseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ANetApiResponseType.php
new file mode 100644
index 0000000..bec353c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ANetApiResponseType.php
@@ -0,0 +1,180 @@
+refId;
+ }
+
+ /**
+ * Sets a new refId
+ *
+ * @param string $refId
+ * @return self
+ */
+ public function setRefId($refId)
+ {
+ $this->refId = $refId;
+ return $this;
+ }
+
+ /**
+ * Gets as messages
+ *
+ * @return \net\authorize\api\contract\v1\MessagesType
+ */
+ public function getMessages()
+ {
+ return $this->messages;
+ }
+
+ /**
+ * Sets a new messages
+ *
+ * @param \net\authorize\api\contract\v1\MessagesType $messages
+ * @return self
+ */
+ public function setMessages(\net\authorize\api\contract\v1\MessagesType $messages)
+ {
+ $this->messages = $messages;
+ return $this;
+ }
+
+ /**
+ * Gets as sessionToken
+ *
+ * @return string
+ */
+ public function getSessionToken()
+ {
+ return $this->sessionToken;
+ }
+
+ /**
+ * Sets a new sessionToken
+ *
+ * @param string $sessionToken
+ * @return self
+ */
+ public function setSessionToken($sessionToken)
+ {
+ $this->sessionToken = $sessionToken;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionRequest.php
new file mode 100644
index 0000000..0d4dc73
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionRequest.php
@@ -0,0 +1,75 @@
+subscriptionId;
+ }
+
+ /**
+ * Sets a new subscriptionId
+ *
+ * @param string $subscriptionId
+ * @return self
+ */
+ public function setSubscriptionId($subscriptionId)
+ {
+ $this->subscriptionId = $subscriptionId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionResponse.php
new file mode 100644
index 0000000..85bc35b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCancelSubscriptionResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionRequest.php
new file mode 100644
index 0000000..891cc97
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionRequest.php
@@ -0,0 +1,75 @@
+subscription;
+ }
+
+ /**
+ * Sets a new subscription
+ *
+ * @param \net\authorize\api\contract\v1\ARBSubscriptionType $subscription
+ * @return self
+ */
+ public function setSubscription(\net\authorize\api\contract\v1\ARBSubscriptionType $subscription)
+ {
+ $this->subscription = $subscription;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionResponse.php
new file mode 100644
index 0000000..74dfacd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBCreateSubscriptionResponse.php
@@ -0,0 +1,115 @@
+subscriptionId;
+ }
+
+ /**
+ * Sets a new subscriptionId
+ *
+ * @param string $subscriptionId
+ * @return self
+ */
+ public function setSubscriptionId($subscriptionId)
+ {
+ $this->subscriptionId = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileIdType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListRequest.php
new file mode 100644
index 0000000..fa11f11
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListRequest.php
@@ -0,0 +1,130 @@
+searchType;
+ }
+
+ /**
+ * Sets a new searchType
+ *
+ * @param string $searchType
+ * @return self
+ */
+ public function setSearchType($searchType)
+ {
+ $this->searchType = $searchType;
+ return $this;
+ }
+
+ /**
+ * Gets as sorting
+ *
+ * @return \net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType
+ */
+ public function getSorting()
+ {
+ return $this->sorting;
+ }
+
+ /**
+ * Sets a new sorting
+ *
+ * @param \net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType $sorting
+ * @return self
+ */
+ public function setSorting(\net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType $sorting)
+ {
+ $this->sorting = $sorting;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListResponse.php
new file mode 100644
index 0000000..d3efb42
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListResponse.php
@@ -0,0 +1,151 @@
+totalNumInResultSet;
+ }
+
+ /**
+ * Sets a new totalNumInResultSet
+ *
+ * @param integer $totalNumInResultSet
+ * @return self
+ */
+ public function setTotalNumInResultSet($totalNumInResultSet)
+ {
+ $this->totalNumInResultSet = $totalNumInResultSet;
+ return $this;
+ }
+
+ /**
+ * Adds as subscriptionDetail
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\SubscriptionDetailType $subscriptionDetail
+ */
+ public function addToSubscriptionDetails(\net\authorize\api\contract\v1\SubscriptionDetailType $subscriptionDetail)
+ {
+ $this->subscriptionDetails[] = $subscriptionDetail;
+ return $this;
+ }
+
+ /**
+ * isset subscriptionDetails
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSubscriptionDetails($index)
+ {
+ return isset($this->subscriptionDetails[$index]);
+ }
+
+ /**
+ * unset subscriptionDetails
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSubscriptionDetails($index)
+ {
+ unset($this->subscriptionDetails[$index]);
+ }
+
+ /**
+ * Gets as subscriptionDetails
+ *
+ * @return \net\authorize\api\contract\v1\SubscriptionDetailType[]
+ */
+ public function getSubscriptionDetails()
+ {
+ return $this->subscriptionDetails;
+ }
+
+ /**
+ * Sets a new subscriptionDetails
+ *
+ * @param \net\authorize\api\contract\v1\SubscriptionDetailType[]
+ * $subscriptionDetails
+ * @return self
+ */
+ public function setSubscriptionDetails(array $subscriptionDetails)
+ {
+ $this->subscriptionDetails = $subscriptionDetails;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListSortingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListSortingType.php
new file mode 100644
index 0000000..ff997e2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionListSortingType.php
@@ -0,0 +1,153 @@
+orderBy;
+ }
+
+ /**
+ * Sets a new orderBy
+ *
+ * @param string $orderBy
+ * @return self
+ */
+ public function setOrderBy($orderBy)
+ {
+ $this->orderBy = $orderBy;
+ return $this;
+ }
+
+ /**
+ * Gets as orderDescending
+ *
+ * @return boolean
+ */
+ public function getOrderDescending()
+ {
+ return $this->orderDescending;
+ }
+
+ /**
+ * Sets a new orderDescending
+ *
+ * @param boolean $orderDescending
+ * @return self
+ */
+ public function setOrderDescending($orderDescending)
+ {
+ $this->orderDescending = $orderDescending;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php
new file mode 100644
index 0000000..3061607
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionRequest.php
@@ -0,0 +1,102 @@
+subscriptionId;
+ }
+
+ /**
+ * Sets a new subscriptionId
+ *
+ * @param string $subscriptionId
+ * @return self
+ */
+ public function setSubscriptionId($subscriptionId)
+ {
+ $this->subscriptionId = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * Gets as includeTransactions
+ *
+ * @return boolean
+ */
+ public function getIncludeTransactions()
+ {
+ return $this->includeTransactions;
+ }
+
+ /**
+ * Sets a new includeTransactions
+ *
+ * @param boolean $includeTransactions
+ * @return self
+ */
+ public function setIncludeTransactions($includeTransactions)
+ {
+ $this->includeTransactions = $includeTransactions;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionResponse.php
new file mode 100644
index 0000000..12e3021
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionResponse.php
@@ -0,0 +1,88 @@
+subscription;
+ }
+
+ /**
+ * Sets a new subscription
+ *
+ * @param \net\authorize\api\contract\v1\ARBSubscriptionMaskedType $subscription
+ * @return self
+ */
+ public function setSubscription(\net\authorize\api\contract\v1\ARBSubscriptionMaskedType $subscription)
+ {
+ $this->subscription = $subscription;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusRequest.php
new file mode 100644
index 0000000..ce3c3b3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusRequest.php
@@ -0,0 +1,75 @@
+subscriptionId;
+ }
+
+ /**
+ * Sets a new subscriptionId
+ *
+ * @param string $subscriptionId
+ * @return self
+ */
+ public function setSubscriptionId($subscriptionId)
+ {
+ $this->subscriptionId = $subscriptionId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusResponse.php
new file mode 100644
index 0000000..bd6d0e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBGetSubscriptionStatusResponse.php
@@ -0,0 +1,88 @@
+status;
+ }
+
+ /**
+ * Sets a new status
+ *
+ * @param string $status
+ * @return self
+ */
+ public function setStatus($status)
+ {
+ $this->status = $status;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php
new file mode 100644
index 0000000..03a92cd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionMaskedType.php
@@ -0,0 +1,350 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentSchedule
+ *
+ * @return \net\authorize\api\contract\v1\PaymentScheduleType
+ */
+ public function getPaymentSchedule()
+ {
+ return $this->paymentSchedule;
+ }
+
+ /**
+ * Sets a new paymentSchedule
+ *
+ * @param \net\authorize\api\contract\v1\PaymentScheduleType $paymentSchedule
+ * @return self
+ */
+ public function setPaymentSchedule(\net\authorize\api\contract\v1\PaymentScheduleType $paymentSchedule)
+ {
+ $this->paymentSchedule = $paymentSchedule;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return float
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as trialAmount
+ *
+ * @return float
+ */
+ public function getTrialAmount()
+ {
+ return $this->trialAmount;
+ }
+
+ /**
+ * Sets a new trialAmount
+ *
+ * @param float $trialAmount
+ * @return self
+ */
+ public function setTrialAmount($trialAmount)
+ {
+ $this->trialAmount = $trialAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as status
+ *
+ * @return string
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * Sets a new status
+ *
+ * @param string $status
+ * @return self
+ */
+ public function setStatus($status)
+ {
+ $this->status = $status;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\SubscriptionCustomerProfileType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\SubscriptionCustomerProfileType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\SubscriptionCustomerProfileType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Adds as arbTransaction
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\ArbTransactionType $arbTransaction
+ */
+ public function addToArbTransactions(\net\authorize\api\contract\v1\ArbTransactionType $arbTransaction)
+ {
+ $this->arbTransactions[] = $arbTransaction;
+ return $this;
+ }
+
+ /**
+ * isset arbTransactions
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetArbTransactions($index)
+ {
+ return isset($this->arbTransactions[$index]);
+ }
+
+ /**
+ * unset arbTransactions
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetArbTransactions($index)
+ {
+ unset($this->arbTransactions[$index]);
+ }
+
+ /**
+ * Gets as arbTransactions
+ *
+ * @return \net\authorize\api\contract\v1\ArbTransactionType[]
+ */
+ public function getArbTransactions()
+ {
+ return $this->arbTransactions;
+ }
+
+ /**
+ * Sets a new arbTransactions
+ *
+ * @param \net\authorize\api\contract\v1\ArbTransactionType[] $arbTransactions
+ * @return self
+ */
+ public function setArbTransactions(array $arbTransactions)
+ {
+ $this->arbTransactions = $arbTransactions;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionType.php
new file mode 100644
index 0000000..1720634
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBSubscriptionType.php
@@ -0,0 +1,369 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentSchedule
+ *
+ * @return \net\authorize\api\contract\v1\PaymentScheduleType
+ */
+ public function getPaymentSchedule()
+ {
+ return $this->paymentSchedule;
+ }
+
+ /**
+ * Sets a new paymentSchedule
+ *
+ * @param \net\authorize\api\contract\v1\PaymentScheduleType $paymentSchedule
+ * @return self
+ */
+ public function setPaymentSchedule(\net\authorize\api\contract\v1\PaymentScheduleType $paymentSchedule)
+ {
+ $this->paymentSchedule = $paymentSchedule;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return float
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as trialAmount
+ *
+ * @return float
+ */
+ public function getTrialAmount()
+ {
+ return $this->trialAmount;
+ }
+
+ /**
+ * Sets a new trialAmount
+ *
+ * @param float $trialAmount
+ * @return self
+ */
+ public function setTrialAmount($trialAmount)
+ {
+ $this->trialAmount = $trialAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as payment
+ *
+ * @return \net\authorize\api\contract\v1\PaymentType
+ */
+ public function getPayment()
+ {
+ return $this->payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Gets as customer
+ *
+ * @return \net\authorize\api\contract\v1\CustomerType
+ */
+ public function getCustomer()
+ {
+ return $this->customer;
+ }
+
+ /**
+ * Sets a new customer
+ *
+ * @param \net\authorize\api\contract\v1\CustomerType $customer
+ * @return self
+ */
+ public function setCustomer(\net\authorize\api\contract\v1\CustomerType $customer)
+ {
+ $this->customer = $customer;
+ return $this;
+ }
+
+ /**
+ * Gets as billTo
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getBillTo()
+ {
+ return $this->billTo;
+ }
+
+ /**
+ * Sets a new billTo
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $billTo
+ * @return self
+ */
+ public function setBillTo(\net\authorize\api\contract\v1\NameAndAddressType $billTo)
+ {
+ $this->billTo = $billTo;
+ return $this;
+ }
+
+ /**
+ * Gets as shipTo
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipTo()
+ {
+ return $this->shipTo;
+ }
+
+ /**
+ * Sets a new shipTo
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipTo
+ * @return self
+ */
+ public function setShipTo(\net\authorize\api\contract\v1\NameAndAddressType $shipTo)
+ {
+ $this->shipTo = $shipTo;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileIdType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionRequest.php
new file mode 100644
index 0000000..ca4b4bf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionRequest.php
@@ -0,0 +1,102 @@
+subscriptionId;
+ }
+
+ /**
+ * Sets a new subscriptionId
+ *
+ * @param string $subscriptionId
+ * @return self
+ */
+ public function setSubscriptionId($subscriptionId)
+ {
+ $this->subscriptionId = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * Gets as subscription
+ *
+ * @return \net\authorize\api\contract\v1\ARBSubscriptionType
+ */
+ public function getSubscription()
+ {
+ return $this->subscription;
+ }
+
+ /**
+ * Sets a new subscription
+ *
+ * @param \net\authorize\api\contract\v1\ARBSubscriptionType $subscription
+ * @return self
+ */
+ public function setSubscription(\net\authorize\api\contract\v1\ARBSubscriptionType $subscription)
+ {
+ $this->subscription = $subscription;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionResponse.php
new file mode 100644
index 0000000..17d7c93
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ARBUpdateSubscriptionResponse.php
@@ -0,0 +1,88 @@
+profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ArbTransactionType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ArbTransactionType.php
new file mode 100644
index 0000000..73b2e28
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ArbTransactionType.php
@@ -0,0 +1,234 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as response
+ *
+ * @return string
+ */
+ public function getResponse()
+ {
+ return $this->response;
+ }
+
+ /**
+ * Sets a new response
+ *
+ * @param string $response
+ * @return self
+ */
+ public function setResponse($response)
+ {
+ $this->response = $response;
+ return $this;
+ }
+
+ /**
+ * Gets as submitTimeUTC
+ *
+ * @return \DateTime
+ */
+ public function getSubmitTimeUTC()
+ {
+ return $this->submitTimeUTC;
+ }
+
+ /**
+ * Sets a new submitTimeUTC
+ *
+ * @param \DateTime $submitTimeUTC
+ * @return self
+ */
+ public function setSubmitTimeUTC(\DateTime $submitTimeUTC)
+ {
+ $this->submitTimeUTC = $submitTimeUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as payNum
+ *
+ * @return integer
+ */
+ public function getPayNum()
+ {
+ return $this->payNum;
+ }
+
+ /**
+ * Sets a new payNum
+ *
+ * @param integer $payNum
+ * @return self
+ */
+ public function setPayNum($payNum)
+ {
+ $this->payNum = $payNum;
+ return $this;
+ }
+
+ /**
+ * Gets as attemptNum
+ *
+ * @return integer
+ */
+ public function getAttemptNum()
+ {
+ return $this->attemptNum;
+ }
+
+ /**
+ * Sets a new attemptNum
+ *
+ * @param integer $attemptNum
+ * @return self
+ */
+ public function setAttemptNum($attemptNum)
+ {
+ $this->attemptNum = $attemptNum;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ArrayOfSettingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ArrayOfSettingType.php
new file mode 100644
index 0000000..cf85ed0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ArrayOfSettingType.php
@@ -0,0 +1,160 @@
+setting[] = $setting;
+ return $this;
+ }
+
+ /**
+ * isset setting
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSetting($index)
+ {
+ return isset($this->setting[$index]);
+ }
+
+ /**
+ * unset setting
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSetting($index)
+ {
+ unset($this->setting[$index]);
+ }
+
+ /**
+ * Gets as setting
+ *
+ * @return \net\authorize\api\contract\v1\SettingType[]
+ */
+ public function getSetting()
+ {
+ return $this->setting;
+ }
+
+ /**
+ * Sets a new setting
+ *
+ * @param \net\authorize\api\contract\v1\SettingType[] $setting
+ * @return self
+ */
+ public function setSetting(array $setting)
+ {
+ $this->setting = $setting;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDeleteType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDeleteType.php
new file mode 100644
index 0000000..439f733
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDeleteType.php
@@ -0,0 +1,126 @@
+creditCard;
+ }
+
+ /**
+ * Sets a new creditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardMaskedType $creditCard
+ * @return self
+ */
+ public function setCreditCard(\net\authorize\api\contract\v1\CreditCardMaskedType $creditCard)
+ {
+ $this->creditCard = $creditCard;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDetailsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDetailsType.php
new file mode 100644
index 0000000..4f80833
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuDetailsType.php
@@ -0,0 +1,288 @@
+customerProfileID;
+ }
+
+ /**
+ * Sets a new customerProfileID
+ *
+ * @param integer $customerProfileID
+ * @return self
+ */
+ public function setCustomerProfileID($customerProfileID)
+ {
+ $this->customerProfileID = $customerProfileID;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileID
+ *
+ * @return integer
+ */
+ public function getCustomerPaymentProfileID()
+ {
+ return $this->customerPaymentProfileID;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileID
+ *
+ * @param integer $customerPaymentProfileID
+ * @return self
+ */
+ public function setCustomerPaymentProfileID($customerPaymentProfileID)
+ {
+ $this->customerPaymentProfileID = $customerPaymentProfileID;
+ return $this;
+ }
+
+ /**
+ * Gets as firstName
+ *
+ * @return string
+ */
+ public function getFirstName()
+ {
+ return $this->firstName;
+ }
+
+ /**
+ * Sets a new firstName
+ *
+ * @param string $firstName
+ * @return self
+ */
+ public function setFirstName($firstName)
+ {
+ $this->firstName = $firstName;
+ return $this;
+ }
+
+ /**
+ * Gets as lastName
+ *
+ * @return string
+ */
+ public function getLastName()
+ {
+ return $this->lastName;
+ }
+
+ /**
+ * Sets a new lastName
+ *
+ * @param string $lastName
+ * @return self
+ */
+ public function setLastName($lastName)
+ {
+ $this->lastName = $lastName;
+ return $this;
+ }
+
+ /**
+ * Gets as updateTimeUTC
+ *
+ * @return string
+ */
+ public function getUpdateTimeUTC()
+ {
+ return $this->updateTimeUTC;
+ }
+
+ /**
+ * Sets a new updateTimeUTC
+ *
+ * @param string $updateTimeUTC
+ * @return self
+ */
+ public function setUpdateTimeUTC($updateTimeUTC)
+ {
+ $this->updateTimeUTC = $updateTimeUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as auReasonCode
+ *
+ * @return string
+ */
+ public function getAuReasonCode()
+ {
+ return $this->auReasonCode;
+ }
+
+ /**
+ * Sets a new auReasonCode
+ *
+ * @param string $auReasonCode
+ * @return self
+ */
+ public function setAuReasonCode($auReasonCode)
+ {
+ $this->auReasonCode = $auReasonCode;
+ return $this;
+ }
+
+ /**
+ * Gets as reasonDescription
+ *
+ * @return string
+ */
+ public function getReasonDescription()
+ {
+ return $this->reasonDescription;
+ }
+
+ /**
+ * Sets a new reasonDescription
+ *
+ * @param string $reasonDescription
+ * @return self
+ */
+ public function setReasonDescription($reasonDescription)
+ {
+ $this->reasonDescription = $reasonDescription;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuResponseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuResponseType.php
new file mode 100644
index 0000000..9fc0421
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuResponseType.php
@@ -0,0 +1,180 @@
+auReasonCode;
+ }
+
+ /**
+ * Sets a new auReasonCode
+ *
+ * @param string $auReasonCode
+ * @return self
+ */
+ public function setAuReasonCode($auReasonCode)
+ {
+ $this->auReasonCode = $auReasonCode;
+ return $this;
+ }
+
+ /**
+ * Gets as profileCount
+ *
+ * @return integer
+ */
+ public function getProfileCount()
+ {
+ return $this->profileCount;
+ }
+
+ /**
+ * Sets a new profileCount
+ *
+ * @param integer $profileCount
+ * @return self
+ */
+ public function setProfileCount($profileCount)
+ {
+ $this->profileCount = $profileCount;
+ return $this;
+ }
+
+ /**
+ * Gets as reasonDescription
+ *
+ * @return string
+ */
+ public function getReasonDescription()
+ {
+ return $this->reasonDescription;
+ }
+
+ /**
+ * Sets a new reasonDescription
+ *
+ * @param string $reasonDescription
+ * @return self
+ */
+ public function setReasonDescription($reasonDescription)
+ {
+ $this->reasonDescription = $reasonDescription;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuUpdateType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuUpdateType.php
new file mode 100644
index 0000000..01976bf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuUpdateType.php
@@ -0,0 +1,153 @@
+newCreditCard;
+ }
+
+ /**
+ * Sets a new newCreditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardMaskedType $newCreditCard
+ * @return self
+ */
+ public function setNewCreditCard(\net\authorize\api\contract\v1\CreditCardMaskedType $newCreditCard)
+ {
+ $this->newCreditCard = $newCreditCard;
+ return $this;
+ }
+
+ /**
+ * Gets as oldCreditCard
+ *
+ * @return \net\authorize\api\contract\v1\CreditCardMaskedType
+ */
+ public function getOldCreditCard()
+ {
+ return $this->oldCreditCard;
+ }
+
+ /**
+ * Sets a new oldCreditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardMaskedType $oldCreditCard
+ * @return self
+ */
+ public function setOldCreditCard(\net\authorize\api\contract\v1\CreditCardMaskedType $oldCreditCard)
+ {
+ $this->oldCreditCard = $oldCreditCard;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestRequest.php
new file mode 100644
index 0000000..2980072
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestRequest.php
@@ -0,0 +1,48 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestResponse.php
new file mode 100644
index 0000000..6474e1a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/AuthenticateTestResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountMaskedType.php
new file mode 100644
index 0000000..6fe6b4b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountMaskedType.php
@@ -0,0 +1,261 @@
+accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as routingNumber
+ *
+ * @return string
+ */
+ public function getRoutingNumber()
+ {
+ return $this->routingNumber;
+ }
+
+ /**
+ * Sets a new routingNumber
+ *
+ * @param string $routingNumber
+ * @return self
+ */
+ public function setRoutingNumber($routingNumber)
+ {
+ $this->routingNumber = $routingNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as nameOnAccount
+ *
+ * @return string
+ */
+ public function getNameOnAccount()
+ {
+ return $this->nameOnAccount;
+ }
+
+ /**
+ * Sets a new nameOnAccount
+ *
+ * @param string $nameOnAccount
+ * @return self
+ */
+ public function setNameOnAccount($nameOnAccount)
+ {
+ $this->nameOnAccount = $nameOnAccount;
+ return $this;
+ }
+
+ /**
+ * Gets as echeckType
+ *
+ * @return string
+ */
+ public function getEcheckType()
+ {
+ return $this->echeckType;
+ }
+
+ /**
+ * Sets a new echeckType
+ *
+ * @param string $echeckType
+ * @return self
+ */
+ public function setEcheckType($echeckType)
+ {
+ $this->echeckType = $echeckType;
+ return $this;
+ }
+
+ /**
+ * Gets as bankName
+ *
+ * @return string
+ */
+ public function getBankName()
+ {
+ return $this->bankName;
+ }
+
+ /**
+ * Sets a new bankName
+ *
+ * @param string $bankName
+ * @return self
+ */
+ public function setBankName($bankName)
+ {
+ $this->bankName = $bankName;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountType.php
new file mode 100644
index 0000000..4668103
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/BankAccountType.php
@@ -0,0 +1,288 @@
+accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as routingNumber
+ *
+ * @return string
+ */
+ public function getRoutingNumber()
+ {
+ return $this->routingNumber;
+ }
+
+ /**
+ * Sets a new routingNumber
+ *
+ * @param string $routingNumber
+ * @return self
+ */
+ public function setRoutingNumber($routingNumber)
+ {
+ $this->routingNumber = $routingNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as nameOnAccount
+ *
+ * @return string
+ */
+ public function getNameOnAccount()
+ {
+ return $this->nameOnAccount;
+ }
+
+ /**
+ * Sets a new nameOnAccount
+ *
+ * @param string $nameOnAccount
+ * @return self
+ */
+ public function setNameOnAccount($nameOnAccount)
+ {
+ $this->nameOnAccount = $nameOnAccount;
+ return $this;
+ }
+
+ /**
+ * Gets as echeckType
+ *
+ * @return string
+ */
+ public function getEcheckType()
+ {
+ return $this->echeckType;
+ }
+
+ /**
+ * Sets a new echeckType
+ *
+ * @param string $echeckType
+ * @return self
+ */
+ public function setEcheckType($echeckType)
+ {
+ $this->echeckType = $echeckType;
+ return $this;
+ }
+
+ /**
+ * Gets as bankName
+ *
+ * @return string
+ */
+ public function getBankName()
+ {
+ return $this->bankName;
+ }
+
+ /**
+ * Sets a new bankName
+ *
+ * @param string $bankName
+ * @return self
+ */
+ public function setBankName($bankName)
+ {
+ $this->bankName = $bankName;
+ return $this;
+ }
+
+ /**
+ * Gets as checkNumber
+ *
+ * @return string
+ */
+ public function getCheckNumber()
+ {
+ return $this->checkNumber;
+ }
+
+ /**
+ * Sets a new checkNumber
+ *
+ * @param string $checkNumber
+ * @return self
+ */
+ public function setCheckNumber($checkNumber)
+ {
+ $this->checkNumber = $checkNumber;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchDetailsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchDetailsType.php
new file mode 100644
index 0000000..9b84b21
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchDetailsType.php
@@ -0,0 +1,349 @@
+batchId;
+ }
+
+ /**
+ * Sets a new batchId
+ *
+ * @param string $batchId
+ * @return self
+ */
+ public function setBatchId($batchId)
+ {
+ $this->batchId = $batchId;
+ return $this;
+ }
+
+ /**
+ * Gets as settlementTimeUTC
+ *
+ * @return \DateTime
+ */
+ public function getSettlementTimeUTC()
+ {
+ return $this->settlementTimeUTC;
+ }
+
+ /**
+ * Sets a new settlementTimeUTC
+ *
+ * @param \DateTime $settlementTimeUTC
+ * @return self
+ */
+ public function setSettlementTimeUTC(\DateTime $settlementTimeUTC)
+ {
+ $this->settlementTimeUTC = $settlementTimeUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as settlementTimeLocal
+ *
+ * @return \DateTime
+ */
+ public function getSettlementTimeLocal()
+ {
+ return $this->settlementTimeLocal;
+ }
+
+ /**
+ * Sets a new settlementTimeLocal
+ *
+ * @param \DateTime $settlementTimeLocal
+ * @return self
+ */
+ public function setSettlementTimeLocal(\DateTime $settlementTimeLocal)
+ {
+ $this->settlementTimeLocal = $settlementTimeLocal;
+ return $this;
+ }
+
+ /**
+ * Gets as settlementState
+ *
+ * @return string
+ */
+ public function getSettlementState()
+ {
+ return $this->settlementState;
+ }
+
+ /**
+ * Sets a new settlementState
+ *
+ * @param string $settlementState
+ * @return self
+ */
+ public function setSettlementState($settlementState)
+ {
+ $this->settlementState = $settlementState;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentMethod
+ *
+ * @return string
+ */
+ public function getPaymentMethod()
+ {
+ return $this->paymentMethod;
+ }
+
+ /**
+ * Sets a new paymentMethod
+ *
+ * @param string $paymentMethod
+ * @return self
+ */
+ public function setPaymentMethod($paymentMethod)
+ {
+ $this->paymentMethod = $paymentMethod;
+ return $this;
+ }
+
+ /**
+ * Gets as marketType
+ *
+ * @return string
+ */
+ public function getMarketType()
+ {
+ return $this->marketType;
+ }
+
+ /**
+ * Sets a new marketType
+ *
+ * @param string $marketType
+ * @return self
+ */
+ public function setMarketType($marketType)
+ {
+ $this->marketType = $marketType;
+ return $this;
+ }
+
+ /**
+ * Gets as product
+ *
+ * @return string
+ */
+ public function getProduct()
+ {
+ return $this->product;
+ }
+
+ /**
+ * Sets a new product
+ *
+ * @param string $product
+ * @return self
+ */
+ public function setProduct($product)
+ {
+ $this->product = $product;
+ return $this;
+ }
+
+ /**
+ * Adds as statistic
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\BatchStatisticType $statistic
+ */
+ public function addToStatistics(\net\authorize\api\contract\v1\BatchStatisticType $statistic)
+ {
+ $this->statistics[] = $statistic;
+ return $this;
+ }
+
+ /**
+ * isset statistics
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetStatistics($index)
+ {
+ return isset($this->statistics[$index]);
+ }
+
+ /**
+ * unset statistics
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetStatistics($index)
+ {
+ unset($this->statistics[$index]);
+ }
+
+ /**
+ * Gets as statistics
+ *
+ * @return \net\authorize\api\contract\v1\BatchStatisticType[]
+ */
+ public function getStatistics()
+ {
+ return $this->statistics;
+ }
+
+ /**
+ * Sets a new statistics
+ *
+ * @param \net\authorize\api\contract\v1\BatchStatisticType[] $statistics
+ * @return self
+ */
+ public function setStatistics(array $statistics)
+ {
+ $this->statistics = $statistics;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchStatisticType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchStatisticType.php
new file mode 100644
index 0000000..e01aff3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/BatchStatisticType.php
@@ -0,0 +1,666 @@
+accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeAmount
+ *
+ * @return float
+ */
+ public function getChargeAmount()
+ {
+ return $this->chargeAmount;
+ }
+
+ /**
+ * Sets a new chargeAmount
+ *
+ * @param float $chargeAmount
+ * @return self
+ */
+ public function setChargeAmount($chargeAmount)
+ {
+ $this->chargeAmount = $chargeAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeCount
+ *
+ * @return integer
+ */
+ public function getChargeCount()
+ {
+ return $this->chargeCount;
+ }
+
+ /**
+ * Sets a new chargeCount
+ *
+ * @param integer $chargeCount
+ * @return self
+ */
+ public function setChargeCount($chargeCount)
+ {
+ $this->chargeCount = $chargeCount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundAmount
+ *
+ * @return float
+ */
+ public function getRefundAmount()
+ {
+ return $this->refundAmount;
+ }
+
+ /**
+ * Sets a new refundAmount
+ *
+ * @param float $refundAmount
+ * @return self
+ */
+ public function setRefundAmount($refundAmount)
+ {
+ $this->refundAmount = $refundAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundCount
+ *
+ * @return integer
+ */
+ public function getRefundCount()
+ {
+ return $this->refundCount;
+ }
+
+ /**
+ * Sets a new refundCount
+ *
+ * @param integer $refundCount
+ * @return self
+ */
+ public function setRefundCount($refundCount)
+ {
+ $this->refundCount = $refundCount;
+ return $this;
+ }
+
+ /**
+ * Gets as voidCount
+ *
+ * @return integer
+ */
+ public function getVoidCount()
+ {
+ return $this->voidCount;
+ }
+
+ /**
+ * Sets a new voidCount
+ *
+ * @param integer $voidCount
+ * @return self
+ */
+ public function setVoidCount($voidCount)
+ {
+ $this->voidCount = $voidCount;
+ return $this;
+ }
+
+ /**
+ * Gets as declineCount
+ *
+ * @return integer
+ */
+ public function getDeclineCount()
+ {
+ return $this->declineCount;
+ }
+
+ /**
+ * Sets a new declineCount
+ *
+ * @param integer $declineCount
+ * @return self
+ */
+ public function setDeclineCount($declineCount)
+ {
+ $this->declineCount = $declineCount;
+ return $this;
+ }
+
+ /**
+ * Gets as errorCount
+ *
+ * @return integer
+ */
+ public function getErrorCount()
+ {
+ return $this->errorCount;
+ }
+
+ /**
+ * Sets a new errorCount
+ *
+ * @param integer $errorCount
+ * @return self
+ */
+ public function setErrorCount($errorCount)
+ {
+ $this->errorCount = $errorCount;
+ return $this;
+ }
+
+ /**
+ * Gets as returnedItemAmount
+ *
+ * @return float
+ */
+ public function getReturnedItemAmount()
+ {
+ return $this->returnedItemAmount;
+ }
+
+ /**
+ * Sets a new returnedItemAmount
+ *
+ * @param float $returnedItemAmount
+ * @return self
+ */
+ public function setReturnedItemAmount($returnedItemAmount)
+ {
+ $this->returnedItemAmount = $returnedItemAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as returnedItemCount
+ *
+ * @return integer
+ */
+ public function getReturnedItemCount()
+ {
+ return $this->returnedItemCount;
+ }
+
+ /**
+ * Sets a new returnedItemCount
+ *
+ * @param integer $returnedItemCount
+ * @return self
+ */
+ public function setReturnedItemCount($returnedItemCount)
+ {
+ $this->returnedItemCount = $returnedItemCount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargebackAmount
+ *
+ * @return float
+ */
+ public function getChargebackAmount()
+ {
+ return $this->chargebackAmount;
+ }
+
+ /**
+ * Sets a new chargebackAmount
+ *
+ * @param float $chargebackAmount
+ * @return self
+ */
+ public function setChargebackAmount($chargebackAmount)
+ {
+ $this->chargebackAmount = $chargebackAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargebackCount
+ *
+ * @return integer
+ */
+ public function getChargebackCount()
+ {
+ return $this->chargebackCount;
+ }
+
+ /**
+ * Sets a new chargebackCount
+ *
+ * @param integer $chargebackCount
+ * @return self
+ */
+ public function setChargebackCount($chargebackCount)
+ {
+ $this->chargebackCount = $chargebackCount;
+ return $this;
+ }
+
+ /**
+ * Gets as correctionNoticeCount
+ *
+ * @return integer
+ */
+ public function getCorrectionNoticeCount()
+ {
+ return $this->correctionNoticeCount;
+ }
+
+ /**
+ * Sets a new correctionNoticeCount
+ *
+ * @param integer $correctionNoticeCount
+ * @return self
+ */
+ public function setCorrectionNoticeCount($correctionNoticeCount)
+ {
+ $this->correctionNoticeCount = $correctionNoticeCount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeChargeBackAmount
+ *
+ * @return float
+ */
+ public function getChargeChargeBackAmount()
+ {
+ return $this->chargeChargeBackAmount;
+ }
+
+ /**
+ * Sets a new chargeChargeBackAmount
+ *
+ * @param float $chargeChargeBackAmount
+ * @return self
+ */
+ public function setChargeChargeBackAmount($chargeChargeBackAmount)
+ {
+ $this->chargeChargeBackAmount = $chargeChargeBackAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeChargeBackCount
+ *
+ * @return integer
+ */
+ public function getChargeChargeBackCount()
+ {
+ return $this->chargeChargeBackCount;
+ }
+
+ /**
+ * Sets a new chargeChargeBackCount
+ *
+ * @param integer $chargeChargeBackCount
+ * @return self
+ */
+ public function setChargeChargeBackCount($chargeChargeBackCount)
+ {
+ $this->chargeChargeBackCount = $chargeChargeBackCount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundChargeBackAmount
+ *
+ * @return float
+ */
+ public function getRefundChargeBackAmount()
+ {
+ return $this->refundChargeBackAmount;
+ }
+
+ /**
+ * Sets a new refundChargeBackAmount
+ *
+ * @param float $refundChargeBackAmount
+ * @return self
+ */
+ public function setRefundChargeBackAmount($refundChargeBackAmount)
+ {
+ $this->refundChargeBackAmount = $refundChargeBackAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundChargeBackCount
+ *
+ * @return integer
+ */
+ public function getRefundChargeBackCount()
+ {
+ return $this->refundChargeBackCount;
+ }
+
+ /**
+ * Sets a new refundChargeBackCount
+ *
+ * @param integer $refundChargeBackCount
+ * @return self
+ */
+ public function setRefundChargeBackCount($refundChargeBackCount)
+ {
+ $this->refundChargeBackCount = $refundChargeBackCount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeReturnedItemsAmount
+ *
+ * @return float
+ */
+ public function getChargeReturnedItemsAmount()
+ {
+ return $this->chargeReturnedItemsAmount;
+ }
+
+ /**
+ * Sets a new chargeReturnedItemsAmount
+ *
+ * @param float $chargeReturnedItemsAmount
+ * @return self
+ */
+ public function setChargeReturnedItemsAmount($chargeReturnedItemsAmount)
+ {
+ $this->chargeReturnedItemsAmount = $chargeReturnedItemsAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as chargeReturnedItemsCount
+ *
+ * @return integer
+ */
+ public function getChargeReturnedItemsCount()
+ {
+ return $this->chargeReturnedItemsCount;
+ }
+
+ /**
+ * Sets a new chargeReturnedItemsCount
+ *
+ * @param integer $chargeReturnedItemsCount
+ * @return self
+ */
+ public function setChargeReturnedItemsCount($chargeReturnedItemsCount)
+ {
+ $this->chargeReturnedItemsCount = $chargeReturnedItemsCount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundReturnedItemsAmount
+ *
+ * @return float
+ */
+ public function getRefundReturnedItemsAmount()
+ {
+ return $this->refundReturnedItemsAmount;
+ }
+
+ /**
+ * Sets a new refundReturnedItemsAmount
+ *
+ * @param float $refundReturnedItemsAmount
+ * @return self
+ */
+ public function setRefundReturnedItemsAmount($refundReturnedItemsAmount)
+ {
+ $this->refundReturnedItemsAmount = $refundReturnedItemsAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as refundReturnedItemsCount
+ *
+ * @return integer
+ */
+ public function getRefundReturnedItemsCount()
+ {
+ return $this->refundReturnedItemsCount;
+ }
+
+ /**
+ * Sets a new refundReturnedItemsCount
+ *
+ * @param integer $refundReturnedItemsCount
+ * @return self
+ */
+ public function setRefundReturnedItemsCount($refundReturnedItemsCount)
+ {
+ $this->refundReturnedItemsCount = $refundReturnedItemsCount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CardArtType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CardArtType.php
new file mode 100644
index 0000000..879fc4e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CardArtType.php
@@ -0,0 +1,234 @@
+cardBrand;
+ }
+
+ /**
+ * Sets a new cardBrand
+ *
+ * @param string $cardBrand
+ * @return self
+ */
+ public function setCardBrand($cardBrand)
+ {
+ $this->cardBrand = $cardBrand;
+ return $this;
+ }
+
+ /**
+ * Gets as cardImageHeight
+ *
+ * @return string
+ */
+ public function getCardImageHeight()
+ {
+ return $this->cardImageHeight;
+ }
+
+ /**
+ * Sets a new cardImageHeight
+ *
+ * @param string $cardImageHeight
+ * @return self
+ */
+ public function setCardImageHeight($cardImageHeight)
+ {
+ $this->cardImageHeight = $cardImageHeight;
+ return $this;
+ }
+
+ /**
+ * Gets as cardImageUrl
+ *
+ * @return string
+ */
+ public function getCardImageUrl()
+ {
+ return $this->cardImageUrl;
+ }
+
+ /**
+ * Sets a new cardImageUrl
+ *
+ * @param string $cardImageUrl
+ * @return self
+ */
+ public function setCardImageUrl($cardImageUrl)
+ {
+ $this->cardImageUrl = $cardImageUrl;
+ return $this;
+ }
+
+ /**
+ * Gets as cardImageWidth
+ *
+ * @return string
+ */
+ public function getCardImageWidth()
+ {
+ return $this->cardImageWidth;
+ }
+
+ /**
+ * Sets a new cardImageWidth
+ *
+ * @param string $cardImageWidth
+ * @return self
+ */
+ public function setCardImageWidth($cardImageWidth)
+ {
+ $this->cardImageWidth = $cardImageWidth;
+ return $this;
+ }
+
+ /**
+ * Gets as cardType
+ *
+ * @return string
+ */
+ public function getCardType()
+ {
+ return $this->cardType;
+ }
+
+ /**
+ * Sets a new cardType
+ *
+ * @param string $cardType
+ * @return self
+ */
+ public function setCardType($cardType)
+ {
+ $this->cardType = $cardType;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CcAuthenticationType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CcAuthenticationType.php
new file mode 100644
index 0000000..3b0fd1c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CcAuthenticationType.php
@@ -0,0 +1,153 @@
+authenticationIndicator;
+ }
+
+ /**
+ * Sets a new authenticationIndicator
+ *
+ * @param string $authenticationIndicator
+ * @return self
+ */
+ public function setAuthenticationIndicator($authenticationIndicator)
+ {
+ $this->authenticationIndicator = $authenticationIndicator;
+ return $this;
+ }
+
+ /**
+ * Gets as cardholderAuthenticationValue
+ *
+ * @return string
+ */
+ public function getCardholderAuthenticationValue()
+ {
+ return $this->cardholderAuthenticationValue;
+ }
+
+ /**
+ * Sets a new cardholderAuthenticationValue
+ *
+ * @param string $cardholderAuthenticationValue
+ * @return self
+ */
+ public function setCardholderAuthenticationValue($cardholderAuthenticationValue)
+ {
+ $this->cardholderAuthenticationValue = $cardholderAuthenticationValue;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileRequest.php
new file mode 100644
index 0000000..97319c3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileRequest.php
@@ -0,0 +1,130 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentProfile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileType
+ */
+ public function getPaymentProfile()
+ {
+ return $this->paymentProfile;
+ }
+
+ /**
+ * Sets a new paymentProfile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileType $paymentProfile
+ * @return self
+ */
+ public function setPaymentProfile(\net\authorize\api\contract\v1\CustomerPaymentProfileType $paymentProfile)
+ {
+ $this->paymentProfile = $paymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as validationMode
+ *
+ * @return string
+ */
+ public function getValidationMode()
+ {
+ return $this->validationMode;
+ }
+
+ /**
+ * Sets a new validationMode
+ *
+ * @param string $validationMode
+ * @return self
+ */
+ public function setValidationMode($validationMode)
+ {
+ $this->validationMode = $validationMode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileResponse.php
new file mode 100644
index 0000000..0bf3e58
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerPaymentProfileResponse.php
@@ -0,0 +1,142 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as validationDirectResponse
+ *
+ * @return string
+ */
+ public function getValidationDirectResponse()
+ {
+ return $this->validationDirectResponse;
+ }
+
+ /**
+ * Sets a new validationDirectResponse
+ *
+ * @param string $validationDirectResponse
+ * @return self
+ */
+ public function setValidationDirectResponse($validationDirectResponse)
+ {
+ $this->validationDirectResponse = $validationDirectResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileFromTransactionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileFromTransactionRequest.php
new file mode 100644
index 0000000..a061c8f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileFromTransactionRequest.php
@@ -0,0 +1,210 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as customer
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileBaseType
+ */
+ public function getCustomer()
+ {
+ return $this->customer;
+ }
+
+ /**
+ * Sets a new customer
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileBaseType $customer
+ * @return self
+ */
+ public function setCustomer(\net\authorize\api\contract\v1\CustomerProfileBaseType $customer)
+ {
+ $this->customer = $customer;
+ return $this;
+ }
+
+ /**
+ * Gets as customerProfileId
+ *
+ * @return string
+ */
+ public function getCustomerProfileId()
+ {
+ return $this->customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultPaymentProfile
+ *
+ * @return boolean
+ */
+ public function getDefaultPaymentProfile()
+ {
+ return $this->defaultPaymentProfile;
+ }
+
+ /**
+ * Sets a new defaultPaymentProfile
+ *
+ * @param boolean $defaultPaymentProfile
+ * @return self
+ */
+ public function setDefaultPaymentProfile($defaultPaymentProfile)
+ {
+ $this->defaultPaymentProfile = $defaultPaymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultShippingAddress
+ *
+ * @return boolean
+ */
+ public function getDefaultShippingAddress()
+ {
+ return $this->defaultShippingAddress;
+ }
+
+ /**
+ * Sets a new defaultShippingAddress
+ *
+ * @param boolean $defaultShippingAddress
+ * @return self
+ */
+ public function setDefaultShippingAddress($defaultShippingAddress)
+ {
+ $this->defaultShippingAddress = $defaultShippingAddress;
+ return $this;
+ }
+
+ /**
+ * Gets as profileType
+ *
+ * @return string
+ */
+ public function getProfileType()
+ {
+ return $this->profileType;
+ }
+
+ /**
+ * Sets a new profileType
+ *
+ * @param string $profileType
+ * @return self
+ */
+ public function setProfileType($profileType)
+ {
+ $this->profileType = $profileType;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileRequest.php
new file mode 100644
index 0000000..4022aac
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileRequest.php
@@ -0,0 +1,102 @@
+profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Gets as validationMode
+ *
+ * @return string
+ */
+ public function getValidationMode()
+ {
+ return $this->validationMode;
+ }
+
+ /**
+ * Sets a new validationMode
+ *
+ * @param string $validationMode
+ * @return self
+ */
+ public function setValidationMode($validationMode)
+ {
+ $this->validationMode = $validationMode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileResponse.php
new file mode 100644
index 0000000..f4cfd1f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileResponse.php
@@ -0,0 +1,271 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Adds as numericString
+ *
+ * @return self
+ * @param string $numericString
+ */
+ public function addToCustomerPaymentProfileIdList($numericString)
+ {
+ $this->customerPaymentProfileIdList[] = $numericString;
+ return $this;
+ }
+
+ /**
+ * isset customerPaymentProfileIdList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCustomerPaymentProfileIdList($index)
+ {
+ return isset($this->customerPaymentProfileIdList[$index]);
+ }
+
+ /**
+ * unset customerPaymentProfileIdList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCustomerPaymentProfileIdList($index)
+ {
+ unset($this->customerPaymentProfileIdList[$index]);
+ }
+
+ /**
+ * Gets as customerPaymentProfileIdList
+ *
+ * @return string[]
+ */
+ public function getCustomerPaymentProfileIdList()
+ {
+ return $this->customerPaymentProfileIdList;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileIdList
+ *
+ * @param string $customerPaymentProfileIdList
+ * @return self
+ */
+ public function setCustomerPaymentProfileIdList(array $customerPaymentProfileIdList)
+ {
+ $this->customerPaymentProfileIdList = $customerPaymentProfileIdList;
+ return $this;
+ }
+
+ /**
+ * Adds as numericString
+ *
+ * @return self
+ * @param string $numericString
+ */
+ public function addToCustomerShippingAddressIdList($numericString)
+ {
+ $this->customerShippingAddressIdList[] = $numericString;
+ return $this;
+ }
+
+ /**
+ * isset customerShippingAddressIdList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCustomerShippingAddressIdList($index)
+ {
+ return isset($this->customerShippingAddressIdList[$index]);
+ }
+
+ /**
+ * unset customerShippingAddressIdList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCustomerShippingAddressIdList($index)
+ {
+ unset($this->customerShippingAddressIdList[$index]);
+ }
+
+ /**
+ * Gets as customerShippingAddressIdList
+ *
+ * @return string[]
+ */
+ public function getCustomerShippingAddressIdList()
+ {
+ return $this->customerShippingAddressIdList;
+ }
+
+ /**
+ * Sets a new customerShippingAddressIdList
+ *
+ * @param string $customerShippingAddressIdList
+ * @return self
+ */
+ public function setCustomerShippingAddressIdList(array $customerShippingAddressIdList)
+ {
+ $this->customerShippingAddressIdList = $customerShippingAddressIdList;
+ return $this;
+ }
+
+ /**
+ * Adds as string
+ *
+ * @return self
+ * @param string $string
+ */
+ public function addToValidationDirectResponseList($string)
+ {
+ $this->validationDirectResponseList[] = $string;
+ return $this;
+ }
+
+ /**
+ * isset validationDirectResponseList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetValidationDirectResponseList($index)
+ {
+ return isset($this->validationDirectResponseList[$index]);
+ }
+
+ /**
+ * unset validationDirectResponseList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetValidationDirectResponseList($index)
+ {
+ unset($this->validationDirectResponseList[$index]);
+ }
+
+ /**
+ * Gets as validationDirectResponseList
+ *
+ * @return string[]
+ */
+ public function getValidationDirectResponseList()
+ {
+ return $this->validationDirectResponseList;
+ }
+
+ /**
+ * Sets a new validationDirectResponseList
+ *
+ * @param string[] $validationDirectResponseList
+ * @return self
+ */
+ public function setValidationDirectResponseList(array $validationDirectResponseList)
+ {
+ $this->validationDirectResponseList = $validationDirectResponseList;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionRequest.php
new file mode 100644
index 0000000..6d240ed
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionRequest.php
@@ -0,0 +1,102 @@
+transaction;
+ }
+
+ /**
+ * Sets a new transaction
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransactionType $transaction
+ * @return self
+ */
+ public function setTransaction(\net\authorize\api\contract\v1\ProfileTransactionType $transaction)
+ {
+ $this->transaction = $transaction;
+ return $this;
+ }
+
+ /**
+ * Gets as extraOptions
+ *
+ * @return string
+ */
+ public function getExtraOptions()
+ {
+ return $this->extraOptions;
+ }
+
+ /**
+ * Sets a new extraOptions
+ *
+ * @param string $extraOptions
+ * @return self
+ */
+ public function setExtraOptions($extraOptions)
+ {
+ $this->extraOptions = $extraOptions;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionResponse.php
new file mode 100644
index 0000000..e61d284
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerProfileTransactionResponse.php
@@ -0,0 +1,117 @@
+transactionResponse;
+ }
+
+ /**
+ * Sets a new transactionResponse
+ *
+ * @param \net\authorize\api\contract\v1\TransactionResponseType
+ * $transactionResponse
+ * @return self
+ */
+ public function setTransactionResponse(\net\authorize\api\contract\v1\TransactionResponseType $transactionResponse)
+ {
+ $this->transactionResponse = $transactionResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as directResponse
+ *
+ * @return string
+ */
+ public function getDirectResponse()
+ {
+ return $this->directResponse;
+ }
+
+ /**
+ * Sets a new directResponse
+ *
+ * @param string $directResponse
+ * @return self
+ */
+ public function setDirectResponse($directResponse)
+ {
+ $this->directResponse = $directResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressRequest.php
new file mode 100644
index 0000000..703cc06
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressRequest.php
@@ -0,0 +1,129 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as address
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getAddress()
+ {
+ return $this->address;
+ }
+
+ /**
+ * Sets a new address
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $address
+ * @return self
+ */
+ public function setAddress(\net\authorize\api\contract\v1\CustomerAddressType $address)
+ {
+ $this->address = $address;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultShippingAddress
+ *
+ * @return boolean
+ */
+ public function getDefaultShippingAddress()
+ {
+ return $this->defaultShippingAddress;
+ }
+
+ /**
+ * Sets a new defaultShippingAddress
+ *
+ * @param boolean $defaultShippingAddress
+ * @return self
+ */
+ public function setDefaultShippingAddress($defaultShippingAddress)
+ {
+ $this->defaultShippingAddress = $defaultShippingAddress;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressResponse.php
new file mode 100644
index 0000000..fda12d2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateCustomerShippingAddressResponse.php
@@ -0,0 +1,115 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerAddressId
+ *
+ * @return string
+ */
+ public function getCustomerAddressId()
+ {
+ return $this->customerAddressId;
+ }
+
+ /**
+ * Sets a new customerAddressId
+ *
+ * @param string $customerAddressId
+ * @return self
+ */
+ public function setCustomerAddressId($customerAddressId)
+ {
+ $this->customerAddressId = $customerAddressId;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateProfileResponseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateProfileResponseType.php
new file mode 100644
index 0000000..e947522
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateProfileResponseType.php
@@ -0,0 +1,275 @@
+messages;
+ }
+
+ /**
+ * Sets a new messages
+ *
+ * @param \net\authorize\api\contract\v1\MessagesType $messages
+ * @return self
+ */
+ public function setMessages(\net\authorize\api\contract\v1\MessagesType $messages)
+ {
+ $this->messages = $messages;
+ return $this;
+ }
+
+ /**
+ * Gets as customerProfileId
+ *
+ * @return string
+ */
+ public function getCustomerProfileId()
+ {
+ return $this->customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Adds as numericString
+ *
+ * @return self
+ * @param string $numericString
+ */
+ public function addToCustomerPaymentProfileIdList($numericString)
+ {
+ $this->customerPaymentProfileIdList[] = $numericString;
+ return $this;
+ }
+
+ /**
+ * isset customerPaymentProfileIdList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCustomerPaymentProfileIdList($index)
+ {
+ return isset($this->customerPaymentProfileIdList[$index]);
+ }
+
+ /**
+ * unset customerPaymentProfileIdList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCustomerPaymentProfileIdList($index)
+ {
+ unset($this->customerPaymentProfileIdList[$index]);
+ }
+
+ /**
+ * Gets as customerPaymentProfileIdList
+ *
+ * @return string[]
+ */
+ public function getCustomerPaymentProfileIdList()
+ {
+ return $this->customerPaymentProfileIdList;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileIdList
+ *
+ * @param string $customerPaymentProfileIdList
+ * @return self
+ */
+ public function setCustomerPaymentProfileIdList(array $customerPaymentProfileIdList)
+ {
+ $this->customerPaymentProfileIdList = $customerPaymentProfileIdList;
+ return $this;
+ }
+
+ /**
+ * Adds as numericString
+ *
+ * @return self
+ * @param string $numericString
+ */
+ public function addToCustomerShippingAddressIdList($numericString)
+ {
+ $this->customerShippingAddressIdList[] = $numericString;
+ return $this;
+ }
+
+ /**
+ * isset customerShippingAddressIdList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCustomerShippingAddressIdList($index)
+ {
+ return isset($this->customerShippingAddressIdList[$index]);
+ }
+
+ /**
+ * unset customerShippingAddressIdList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCustomerShippingAddressIdList($index)
+ {
+ unset($this->customerShippingAddressIdList[$index]);
+ }
+
+ /**
+ * Gets as customerShippingAddressIdList
+ *
+ * @return string[]
+ */
+ public function getCustomerShippingAddressIdList()
+ {
+ return $this->customerShippingAddressIdList;
+ }
+
+ /**
+ * Sets a new customerShippingAddressIdList
+ *
+ * @param string $customerShippingAddressIdList
+ * @return self
+ */
+ public function setCustomerShippingAddressIdList(array $customerShippingAddressIdList)
+ {
+ $this->customerShippingAddressIdList = $customerShippingAddressIdList;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionRequest.php
new file mode 100644
index 0000000..094fe68
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionRequest.php
@@ -0,0 +1,76 @@
+transactionRequest;
+ }
+
+ /**
+ * Sets a new transactionRequest
+ *
+ * @param \net\authorize\api\contract\v1\TransactionRequestType $transactionRequest
+ * @return self
+ */
+ public function setTransactionRequest(\net\authorize\api\contract\v1\TransactionRequestType $transactionRequest)
+ {
+ $this->transactionRequest = $transactionRequest;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionResponse.php
new file mode 100644
index 0000000..e53f08f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreateTransactionResponse.php
@@ -0,0 +1,118 @@
+transactionResponse;
+ }
+
+ /**
+ * Sets a new transactionResponse
+ *
+ * @param \net\authorize\api\contract\v1\TransactionResponseType
+ * $transactionResponse
+ * @return self
+ */
+ public function setTransactionResponse(\net\authorize\api\contract\v1\TransactionResponseType $transactionResponse)
+ {
+ $this->transactionResponse = $transactionResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as profileResponse
+ *
+ * @return \net\authorize\api\contract\v1\CreateProfileResponseType
+ */
+ public function getProfileResponse()
+ {
+ return $this->profileResponse;
+ }
+
+ /**
+ * Sets a new profileResponse
+ *
+ * @param \net\authorize\api\contract\v1\CreateProfileResponseType $profileResponse
+ * @return self
+ */
+ public function setProfileResponse(\net\authorize\api\contract\v1\CreateProfileResponseType $profileResponse)
+ {
+ $this->profileResponse = $profileResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardMaskedType.php
new file mode 100644
index 0000000..56b90d4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardMaskedType.php
@@ -0,0 +1,261 @@
+cardNumber;
+ }
+
+ /**
+ * Sets a new cardNumber
+ *
+ * @param string $cardNumber
+ * @return self
+ */
+ public function setCardNumber($cardNumber)
+ {
+ $this->cardNumber = $cardNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as expirationDate
+ *
+ * @return string
+ */
+ public function getExpirationDate()
+ {
+ return $this->expirationDate;
+ }
+
+ /**
+ * Sets a new expirationDate
+ *
+ * @param string $expirationDate
+ * @return self
+ */
+ public function setExpirationDate($expirationDate)
+ {
+ $this->expirationDate = $expirationDate;
+ return $this;
+ }
+
+ /**
+ * Gets as cardType
+ *
+ * @return string
+ */
+ public function getCardType()
+ {
+ return $this->cardType;
+ }
+
+ /**
+ * Sets a new cardType
+ *
+ * @param string $cardType
+ * @return self
+ */
+ public function setCardType($cardType)
+ {
+ $this->cardType = $cardType;
+ return $this;
+ }
+
+ /**
+ * Gets as cardArt
+ *
+ * @return \net\authorize\api\contract\v1\CardArtType
+ */
+ public function getCardArt()
+ {
+ return $this->cardArt;
+ }
+
+ /**
+ * Sets a new cardArt
+ *
+ * @param \net\authorize\api\contract\v1\CardArtType $cardArt
+ * @return self
+ */
+ public function setCardArt(\net\authorize\api\contract\v1\CardArtType $cardArt)
+ {
+ $this->cardArt = $cardArt;
+ return $this;
+ }
+
+ /**
+ * Gets as issuerNumber
+ *
+ * @return string
+ */
+ public function getIssuerNumber()
+ {
+ return $this->issuerNumber;
+ }
+
+ /**
+ * Sets a new issuerNumber
+ *
+ * @param string $issuerNumber
+ * @return self
+ */
+ public function setIssuerNumber($issuerNumber)
+ {
+ $this->issuerNumber = $issuerNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as isPaymentToken
+ *
+ * @return boolean
+ */
+ public function getIsPaymentToken()
+ {
+ return $this->isPaymentToken;
+ }
+
+ /**
+ * Sets a new isPaymentToken
+ *
+ * @param boolean $isPaymentToken
+ * @return self
+ */
+ public function setIsPaymentToken($isPaymentToken)
+ {
+ $this->isPaymentToken = $isPaymentToken;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardSimpleType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardSimpleType.php
new file mode 100644
index 0000000..2da3c5e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardSimpleType.php
@@ -0,0 +1,153 @@
+cardNumber;
+ }
+
+ /**
+ * Sets a new cardNumber
+ *
+ * @param string $cardNumber
+ * @return self
+ */
+ public function setCardNumber($cardNumber)
+ {
+ $this->cardNumber = $cardNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as expirationDate
+ *
+ * @return string
+ */
+ public function getExpirationDate()
+ {
+ return $this->expirationDate;
+ }
+
+ /**
+ * Sets a new expirationDate
+ *
+ * @param string $expirationDate
+ * @return self
+ */
+ public function setExpirationDate($expirationDate)
+ {
+ $this->expirationDate = $expirationDate;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardTrackType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardTrackType.php
new file mode 100644
index 0000000..e8ad322
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardTrackType.php
@@ -0,0 +1,153 @@
+track1;
+ }
+
+ /**
+ * Sets a new track1
+ *
+ * @param string $track1
+ * @return self
+ */
+ public function setTrack1($track1)
+ {
+ $this->track1 = $track1;
+ return $this;
+ }
+
+ /**
+ * Gets as track2
+ *
+ * @return string
+ */
+ public function getTrack2()
+ {
+ return $this->track2;
+ }
+
+ /**
+ * Sets a new track2
+ *
+ * @param string $track2
+ * @return self
+ */
+ public function setTrack2($track2)
+ {
+ $this->track2 = $track2;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardType.php
new file mode 100644
index 0000000..a9a5315
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CreditCardType.php
@@ -0,0 +1,261 @@
+cardCode;
+ }
+
+ /**
+ * Sets a new cardCode
+ *
+ * @param string $cardCode
+ * @return self
+ */
+ public function setCardCode($cardCode)
+ {
+ $this->cardCode = $cardCode;
+ return $this;
+ }
+
+ /**
+ * Gets as isPaymentToken
+ *
+ * @return boolean
+ */
+ public function getIsPaymentToken()
+ {
+ return $this->isPaymentToken;
+ }
+
+ /**
+ * Sets a new isPaymentToken
+ *
+ * @param boolean $isPaymentToken
+ * @return self
+ */
+ public function setIsPaymentToken($isPaymentToken)
+ {
+ $this->isPaymentToken = $isPaymentToken;
+ return $this;
+ }
+
+ /**
+ * Gets as cryptogram
+ *
+ * @return string
+ */
+ public function getCryptogram()
+ {
+ return $this->cryptogram;
+ }
+
+ /**
+ * Sets a new cryptogram
+ *
+ * @param string $cryptogram
+ * @return self
+ */
+ public function setCryptogram($cryptogram)
+ {
+ $this->cryptogram = $cryptogram;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenRequestorName
+ *
+ * @return string
+ */
+ public function getTokenRequestorName()
+ {
+ return $this->tokenRequestorName;
+ }
+
+ /**
+ * Sets a new tokenRequestorName
+ *
+ * @param string $tokenRequestorName
+ * @return self
+ */
+ public function setTokenRequestorName($tokenRequestorName)
+ {
+ $this->tokenRequestorName = $tokenRequestorName;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenRequestorId
+ *
+ * @return string
+ */
+ public function getTokenRequestorId()
+ {
+ return $this->tokenRequestorId;
+ }
+
+ /**
+ * Sets a new tokenRequestorId
+ *
+ * @param string $tokenRequestorId
+ * @return self
+ */
+ public function setTokenRequestorId($tokenRequestorId)
+ {
+ $this->tokenRequestorId = $tokenRequestorId;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenRequestorEci
+ *
+ * @return string
+ */
+ public function getTokenRequestorEci()
+ {
+ return $this->tokenRequestorEci;
+ }
+
+ /**
+ * Sets a new tokenRequestorEci
+ *
+ * @param string $tokenRequestorEci
+ * @return self
+ */
+ public function setTokenRequestorEci($tokenRequestorEci)
+ {
+ $this->tokenRequestorEci = $tokenRequestorEci;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressExType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressExType.php
new file mode 100644
index 0000000..80c9a51
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressExType.php
@@ -0,0 +1,126 @@
+customerAddressId;
+ }
+
+ /**
+ * Sets a new customerAddressId
+ *
+ * @param string $customerAddressId
+ * @return self
+ */
+ public function setCustomerAddressId($customerAddressId)
+ {
+ $this->customerAddressId = $customerAddressId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressType.php
new file mode 100644
index 0000000..5f9fd8e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerAddressType.php
@@ -0,0 +1,180 @@
+phoneNumber;
+ }
+
+ /**
+ * Sets a new phoneNumber
+ *
+ * @param string $phoneNumber
+ * @return self
+ */
+ public function setPhoneNumber($phoneNumber)
+ {
+ $this->phoneNumber = $phoneNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as faxNumber
+ *
+ * @return string
+ */
+ public function getFaxNumber()
+ {
+ return $this->faxNumber;
+ }
+
+ /**
+ * Sets a new faxNumber
+ *
+ * @param string $faxNumber
+ * @return self
+ */
+ public function setFaxNumber($faxNumber)
+ {
+ $this->faxNumber = $faxNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerDataType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerDataType.php
new file mode 100644
index 0000000..d20409a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerDataType.php
@@ -0,0 +1,234 @@
+type;
+ }
+
+ /**
+ * Sets a new type
+ *
+ * @param string $type
+ * @return self
+ */
+ public function setType($type)
+ {
+ $this->type = $type;
+ return $this;
+ }
+
+ /**
+ * Gets as id
+ *
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param string $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * Gets as driversLicense
+ *
+ * @return \net\authorize\api\contract\v1\DriversLicenseType
+ */
+ public function getDriversLicense()
+ {
+ return $this->driversLicense;
+ }
+
+ /**
+ * Sets a new driversLicense
+ *
+ * @param \net\authorize\api\contract\v1\DriversLicenseType $driversLicense
+ * @return self
+ */
+ public function setDriversLicense(\net\authorize\api\contract\v1\DriversLicenseType $driversLicense)
+ {
+ $this->driversLicense = $driversLicense;
+ return $this;
+ }
+
+ /**
+ * Gets as taxId
+ *
+ * @return string
+ */
+ public function getTaxId()
+ {
+ return $this->taxId;
+ }
+
+ /**
+ * Sets a new taxId
+ *
+ * @param string $taxId
+ * @return self
+ */
+ public function setTaxId($taxId)
+ {
+ $this->taxId = $taxId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileBaseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileBaseType.php
new file mode 100644
index 0000000..a751496
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileBaseType.php
@@ -0,0 +1,153 @@
+customerType;
+ }
+
+ /**
+ * Sets a new customerType
+ *
+ * @param string $customerType
+ * @return self
+ */
+ public function setCustomerType($customerType)
+ {
+ $this->customerType = $customerType;
+ return $this;
+ }
+
+ /**
+ * Gets as billTo
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getBillTo()
+ {
+ return $this->billTo;
+ }
+
+ /**
+ * Sets a new billTo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $billTo
+ * @return self
+ */
+ public function setBillTo(\net\authorize\api\contract\v1\CustomerAddressType $billTo)
+ {
+ $this->billTo = $billTo;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileExType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileExType.php
new file mode 100644
index 0000000..2afea32
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileExType.php
@@ -0,0 +1,126 @@
+customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileListItemType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileListItemType.php
new file mode 100644
index 0000000..10569fb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileListItemType.php
@@ -0,0 +1,234 @@
+defaultPaymentProfile;
+ }
+
+ /**
+ * Sets a new defaultPaymentProfile
+ *
+ * @param boolean $defaultPaymentProfile
+ * @return self
+ */
+ public function setDefaultPaymentProfile($defaultPaymentProfile)
+ {
+ $this->defaultPaymentProfile = $defaultPaymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return integer
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param integer $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerProfileId
+ *
+ * @return integer
+ */
+ public function getCustomerProfileId()
+ {
+ return $this->customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param integer $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as billTo
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getBillTo()
+ {
+ return $this->billTo;
+ }
+
+ /**
+ * Sets a new billTo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $billTo
+ * @return self
+ */
+ public function setBillTo(\net\authorize\api\contract\v1\CustomerAddressType $billTo)
+ {
+ $this->billTo = $billTo;
+ return $this;
+ }
+
+ /**
+ * Gets as payment
+ *
+ * @return \net\authorize\api\contract\v1\PaymentMaskedType
+ */
+ public function getPayment()
+ {
+ return $this->payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentMaskedType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentMaskedType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileMaskedType.php
new file mode 100644
index 0000000..94dc353
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileMaskedType.php
@@ -0,0 +1,323 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultPaymentProfile
+ *
+ * @return boolean
+ */
+ public function getDefaultPaymentProfile()
+ {
+ return $this->defaultPaymentProfile;
+ }
+
+ /**
+ * Sets a new defaultPaymentProfile
+ *
+ * @param boolean $defaultPaymentProfile
+ * @return self
+ */
+ public function setDefaultPaymentProfile($defaultPaymentProfile)
+ {
+ $this->defaultPaymentProfile = $defaultPaymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as payment
+ *
+ * @return \net\authorize\api\contract\v1\PaymentMaskedType
+ */
+ public function getPayment()
+ {
+ return $this->payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentMaskedType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentMaskedType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+ /**
+ * Gets as driversLicense
+ *
+ * @return \net\authorize\api\contract\v1\DriversLicenseMaskedType
+ */
+ public function getDriversLicense()
+ {
+ return $this->driversLicense;
+ }
+
+ /**
+ * Sets a new driversLicense
+ *
+ * @param \net\authorize\api\contract\v1\DriversLicenseMaskedType $driversLicense
+ * @return self
+ */
+ public function setDriversLicense(\net\authorize\api\contract\v1\DriversLicenseMaskedType $driversLicense)
+ {
+ $this->driversLicense = $driversLicense;
+ return $this;
+ }
+
+ /**
+ * Gets as taxId
+ *
+ * @return string
+ */
+ public function getTaxId()
+ {
+ return $this->taxId;
+ }
+
+ /**
+ * Sets a new taxId
+ *
+ * @param string $taxId
+ * @return self
+ */
+ public function setTaxId($taxId)
+ {
+ $this->taxId = $taxId;
+ return $this;
+ }
+
+ /**
+ * Adds as subscriptionId
+ *
+ * @return self
+ * @param string $subscriptionId
+ */
+ public function addToSubscriptionIds($subscriptionId)
+ {
+ $this->subscriptionIds[] = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * isset subscriptionIds
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSubscriptionIds($index)
+ {
+ return isset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * unset subscriptionIds
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSubscriptionIds($index)
+ {
+ unset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * Gets as subscriptionIds
+ *
+ * @return string[]
+ */
+ public function getSubscriptionIds()
+ {
+ return $this->subscriptionIds;
+ }
+
+ /**
+ * Sets a new subscriptionIds
+ *
+ * @param string $subscriptionIds
+ * @return self
+ */
+ public function setSubscriptionIds(array $subscriptionIds)
+ {
+ $this->subscriptionIds = $subscriptionIds;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileSortingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileSortingType.php
new file mode 100644
index 0000000..df4b479
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileSortingType.php
@@ -0,0 +1,153 @@
+orderBy;
+ }
+
+ /**
+ * Sets a new orderBy
+ *
+ * @param string $orderBy
+ * @return self
+ */
+ public function setOrderBy($orderBy)
+ {
+ $this->orderBy = $orderBy;
+ return $this;
+ }
+
+ /**
+ * Gets as orderDescending
+ *
+ * @return boolean
+ */
+ public function getOrderDescending()
+ {
+ return $this->orderDescending;
+ }
+
+ /**
+ * Sets a new orderDescending
+ *
+ * @param boolean $orderDescending
+ * @return self
+ */
+ public function setOrderDescending($orderDescending)
+ {
+ $this->orderDescending = $orderDescending;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileType.php
new file mode 100644
index 0000000..6178632
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerPaymentProfileType.php
@@ -0,0 +1,207 @@
+payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+ /**
+ * Gets as driversLicense
+ *
+ * @return \net\authorize\api\contract\v1\DriversLicenseType
+ */
+ public function getDriversLicense()
+ {
+ return $this->driversLicense;
+ }
+
+ /**
+ * Sets a new driversLicense
+ *
+ * @param \net\authorize\api\contract\v1\DriversLicenseType $driversLicense
+ * @return self
+ */
+ public function setDriversLicense(\net\authorize\api\contract\v1\DriversLicenseType $driversLicense)
+ {
+ $this->driversLicense = $driversLicense;
+ return $this;
+ }
+
+ /**
+ * Gets as taxId
+ *
+ * @return string
+ */
+ public function getTaxId()
+ {
+ return $this->taxId;
+ }
+
+ /**
+ * Sets a new taxId
+ *
+ * @param string $taxId
+ * @return self
+ */
+ public function setTaxId($taxId)
+ {
+ $this->taxId = $taxId;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultPaymentProfile
+ *
+ * @return boolean
+ */
+ public function getDefaultPaymentProfile()
+ {
+ return $this->defaultPaymentProfile;
+ }
+
+ /**
+ * Sets a new defaultPaymentProfile
+ *
+ * @param boolean $defaultPaymentProfile
+ * @return self
+ */
+ public function setDefaultPaymentProfile($defaultPaymentProfile)
+ {
+ $this->defaultPaymentProfile = $defaultPaymentProfile;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileBaseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileBaseType.php
new file mode 100644
index 0000000..c25e00e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileBaseType.php
@@ -0,0 +1,180 @@
+merchantCustomerId;
+ }
+
+ /**
+ * Sets a new merchantCustomerId
+ *
+ * @param string $merchantCustomerId
+ * @return self
+ */
+ public function setMerchantCustomerId($merchantCustomerId)
+ {
+ $this->merchantCustomerId = $merchantCustomerId;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileExType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileExType.php
new file mode 100644
index 0000000..561c640
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileExType.php
@@ -0,0 +1,126 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileIdType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileIdType.php
new file mode 100644
index 0000000..a20468b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileIdType.php
@@ -0,0 +1,180 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerAddressId
+ *
+ * @return string
+ */
+ public function getCustomerAddressId()
+ {
+ return $this->customerAddressId;
+ }
+
+ /**
+ * Sets a new customerAddressId
+ *
+ * @param string $customerAddressId
+ * @return self
+ */
+ public function setCustomerAddressId($customerAddressId)
+ {
+ $this->customerAddressId = $customerAddressId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileInfoExType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileInfoExType.php
new file mode 100644
index 0000000..c1bdcce
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileInfoExType.php
@@ -0,0 +1,126 @@
+profileType;
+ }
+
+ /**
+ * Sets a new profileType
+ *
+ * @param string $profileType
+ * @return self
+ */
+ public function setProfileType($profileType)
+ {
+ $this->profileType = $profileType;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileMaskedType.php
new file mode 100644
index 0000000..2eadcc6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileMaskedType.php
@@ -0,0 +1,251 @@
+paymentProfiles[] = $paymentProfiles;
+ return $this;
+ }
+
+ /**
+ * isset paymentProfiles
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetPaymentProfiles($index)
+ {
+ return isset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * unset paymentProfiles
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetPaymentProfiles($index)
+ {
+ unset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * Gets as paymentProfiles
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType[]
+ */
+ public function getPaymentProfiles()
+ {
+ return $this->paymentProfiles;
+ }
+
+ /**
+ * Sets a new paymentProfiles
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType[]
+ * $paymentProfiles
+ * @return self
+ */
+ public function setPaymentProfiles(array $paymentProfiles)
+ {
+ $this->paymentProfiles = $paymentProfiles;
+ return $this;
+ }
+
+ /**
+ * Adds as shipToList
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\CustomerAddressExType $shipToList
+ */
+ public function addToShipToList(\net\authorize\api\contract\v1\CustomerAddressExType $shipToList)
+ {
+ $this->shipToList[] = $shipToList;
+ return $this;
+ }
+
+ /**
+ * isset shipToList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetShipToList($index)
+ {
+ return isset($this->shipToList[$index]);
+ }
+
+ /**
+ * unset shipToList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetShipToList($index)
+ {
+ unset($this->shipToList[$index]);
+ }
+
+ /**
+ * Gets as shipToList
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressExType[]
+ */
+ public function getShipToList()
+ {
+ return $this->shipToList;
+ }
+
+ /**
+ * Sets a new shipToList
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressExType[] $shipToList
+ * @return self
+ */
+ public function setShipToList(array $shipToList)
+ {
+ $this->shipToList = $shipToList;
+ return $this;
+ }
+
+ /**
+ * Gets as profileType
+ *
+ * @return string
+ */
+ public function getProfileType()
+ {
+ return $this->profileType;
+ }
+
+ /**
+ * Sets a new profileType
+ *
+ * @param string $profileType
+ * @return self
+ */
+ public function setProfileType($profileType)
+ {
+ $this->profileType = $profileType;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfilePaymentType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfilePaymentType.php
new file mode 100644
index 0000000..384b67c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfilePaymentType.php
@@ -0,0 +1,207 @@
+createProfile;
+ }
+
+ /**
+ * Sets a new createProfile
+ *
+ * @param boolean $createProfile
+ * @return self
+ */
+ public function setCreateProfile($createProfile)
+ {
+ $this->createProfile = $createProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as customerProfileId
+ *
+ * @return string
+ */
+ public function getCustomerProfileId()
+ {
+ return $this->customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentProfile
+ *
+ * @return \net\authorize\api\contract\v1\PaymentProfileType
+ */
+ public function getPaymentProfile()
+ {
+ return $this->paymentProfile;
+ }
+
+ /**
+ * Sets a new paymentProfile
+ *
+ * @param \net\authorize\api\contract\v1\PaymentProfileType $paymentProfile
+ * @return self
+ */
+ public function setPaymentProfile(\net\authorize\api\contract\v1\PaymentProfileType $paymentProfile)
+ {
+ $this->paymentProfile = $paymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as shippingProfileId
+ *
+ * @return string
+ */
+ public function getShippingProfileId()
+ {
+ return $this->shippingProfileId;
+ }
+
+ /**
+ * Sets a new shippingProfileId
+ *
+ * @param string $shippingProfileId
+ * @return self
+ */
+ public function setShippingProfileId($shippingProfileId)
+ {
+ $this->shippingProfileId = $shippingProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileSummaryType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileSummaryType.php
new file mode 100644
index 0000000..a448120
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileSummaryType.php
@@ -0,0 +1,234 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantCustomerId
+ *
+ * @return string
+ */
+ public function getMerchantCustomerId()
+ {
+ return $this->merchantCustomerId;
+ }
+
+ /**
+ * Sets a new merchantCustomerId
+ *
+ * @param string $merchantCustomerId
+ * @return self
+ */
+ public function setMerchantCustomerId($merchantCustomerId)
+ {
+ $this->merchantCustomerId = $merchantCustomerId;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * Gets as createdDate
+ *
+ * @return \DateTime
+ */
+ public function getCreatedDate()
+ {
+ return $this->createdDate;
+ }
+
+ /**
+ * Sets a new createdDate
+ *
+ * @param \DateTime $createdDate
+ * @return self
+ */
+ public function setCreatedDate(\DateTime $createdDate)
+ {
+ $this->createdDate = $createdDate;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileType.php
new file mode 100644
index 0000000..a960b9c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerProfileType.php
@@ -0,0 +1,251 @@
+paymentProfiles[] = $paymentProfiles;
+ return $this;
+ }
+
+ /**
+ * isset paymentProfiles
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetPaymentProfiles($index)
+ {
+ return isset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * unset paymentProfiles
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetPaymentProfiles($index)
+ {
+ unset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * Gets as paymentProfiles
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileType[]
+ */
+ public function getPaymentProfiles()
+ {
+ return $this->paymentProfiles;
+ }
+
+ /**
+ * Sets a new paymentProfiles
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileType[]
+ * $paymentProfiles
+ * @return self
+ */
+ public function setPaymentProfiles(array $paymentProfiles)
+ {
+ $this->paymentProfiles = $paymentProfiles;
+ return $this;
+ }
+
+ /**
+ * Adds as shipToList
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $shipToList
+ */
+ public function addToShipToList(\net\authorize\api\contract\v1\CustomerAddressType $shipToList)
+ {
+ $this->shipToList[] = $shipToList;
+ return $this;
+ }
+
+ /**
+ * isset shipToList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetShipToList($index)
+ {
+ return isset($this->shipToList[$index]);
+ }
+
+ /**
+ * unset shipToList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetShipToList($index)
+ {
+ unset($this->shipToList[$index]);
+ }
+
+ /**
+ * Gets as shipToList
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType[]
+ */
+ public function getShipToList()
+ {
+ return $this->shipToList;
+ }
+
+ /**
+ * Sets a new shipToList
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType[] $shipToList
+ * @return self
+ */
+ public function setShipToList(array $shipToList)
+ {
+ $this->shipToList = $shipToList;
+ return $this;
+ }
+
+ /**
+ * Gets as profileType
+ *
+ * @return string
+ */
+ public function getProfileType()
+ {
+ return $this->profileType;
+ }
+
+ /**
+ * Sets a new profileType
+ *
+ * @param string $profileType
+ * @return self
+ */
+ public function setProfileType($profileType)
+ {
+ $this->profileType = $profileType;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerType.php
new file mode 100644
index 0000000..137fb09
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/CustomerType.php
@@ -0,0 +1,288 @@
+type;
+ }
+
+ /**
+ * Sets a new type
+ *
+ * @param string $type
+ * @return self
+ */
+ public function setType($type)
+ {
+ $this->type = $type;
+ return $this;
+ }
+
+ /**
+ * Gets as id
+ *
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param string $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * Gets as phoneNumber
+ *
+ * @return string
+ */
+ public function getPhoneNumber()
+ {
+ return $this->phoneNumber;
+ }
+
+ /**
+ * Sets a new phoneNumber
+ *
+ * @param string $phoneNumber
+ * @return self
+ */
+ public function setPhoneNumber($phoneNumber)
+ {
+ $this->phoneNumber = $phoneNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as faxNumber
+ *
+ * @return string
+ */
+ public function getFaxNumber()
+ {
+ return $this->faxNumber;
+ }
+
+ /**
+ * Sets a new faxNumber
+ *
+ * @param string $faxNumber
+ * @return self
+ */
+ public function setFaxNumber($faxNumber)
+ {
+ $this->faxNumber = $faxNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as driversLicense
+ *
+ * @return \net\authorize\api\contract\v1\DriversLicenseType
+ */
+ public function getDriversLicense()
+ {
+ return $this->driversLicense;
+ }
+
+ /**
+ * Sets a new driversLicense
+ *
+ * @param \net\authorize\api\contract\v1\DriversLicenseType $driversLicense
+ * @return self
+ */
+ public function setDriversLicense(\net\authorize\api\contract\v1\DriversLicenseType $driversLicense)
+ {
+ $this->driversLicense = $driversLicense;
+ return $this;
+ }
+
+ /**
+ * Gets as taxId
+ *
+ * @return string
+ */
+ public function getTaxId()
+ {
+ return $this->taxId;
+ }
+
+ /**
+ * Sets a new taxId
+ *
+ * @param string $taxId
+ * @return self
+ */
+ public function setTaxId($taxId)
+ {
+ $this->taxId = $taxId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataRequest.php
new file mode 100644
index 0000000..1c85d7d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataRequest.php
@@ -0,0 +1,102 @@
+opaqueData;
+ }
+
+ /**
+ * Sets a new opaqueData
+ *
+ * @param \net\authorize\api\contract\v1\OpaqueDataType $opaqueData
+ * @return self
+ */
+ public function setOpaqueData(\net\authorize\api\contract\v1\OpaqueDataType $opaqueData)
+ {
+ $this->opaqueData = $opaqueData;
+ return $this;
+ }
+
+ /**
+ * Gets as callId
+ *
+ * @return string
+ */
+ public function getCallId()
+ {
+ return $this->callId;
+ }
+
+ /**
+ * Sets a new callId
+ *
+ * @param string $callId
+ * @return self
+ */
+ public function setCallId($callId)
+ {
+ $this->callId = $callId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataResponse.php
new file mode 100644
index 0000000..16f02ef
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DecryptPaymentDataResponse.php
@@ -0,0 +1,169 @@
+shippingInfo;
+ }
+
+ /**
+ * Sets a new shippingInfo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $shippingInfo
+ * @return self
+ */
+ public function setShippingInfo(\net\authorize\api\contract\v1\CustomerAddressType $shippingInfo)
+ {
+ $this->shippingInfo = $shippingInfo;
+ return $this;
+ }
+
+ /**
+ * Gets as billingInfo
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getBillingInfo()
+ {
+ return $this->billingInfo;
+ }
+
+ /**
+ * Sets a new billingInfo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $billingInfo
+ * @return self
+ */
+ public function setBillingInfo(\net\authorize\api\contract\v1\CustomerAddressType $billingInfo)
+ {
+ $this->billingInfo = $billingInfo;
+ return $this;
+ }
+
+ /**
+ * Gets as cardInfo
+ *
+ * @return \net\authorize\api\contract\v1\CreditCardMaskedType
+ */
+ public function getCardInfo()
+ {
+ return $this->cardInfo;
+ }
+
+ /**
+ * Sets a new cardInfo
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardMaskedType $cardInfo
+ * @return self
+ */
+ public function setCardInfo(\net\authorize\api\contract\v1\CreditCardMaskedType $cardInfo)
+ {
+ $this->cardInfo = $cardInfo;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentDetails
+ *
+ * @return \net\authorize\api\contract\v1\PaymentDetailsType
+ */
+ public function getPaymentDetails()
+ {
+ return $this->paymentDetails;
+ }
+
+ /**
+ * Sets a new paymentDetails
+ *
+ * @param \net\authorize\api\contract\v1\PaymentDetailsType $paymentDetails
+ * @return self
+ */
+ public function setPaymentDetails(\net\authorize\api\contract\v1\PaymentDetailsType $paymentDetails)
+ {
+ $this->paymentDetails = $paymentDetails;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileRequest.php
new file mode 100644
index 0000000..08bc47b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileRequest.php
@@ -0,0 +1,102 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileResponse.php
new file mode 100644
index 0000000..240ed87
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerPaymentProfileResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileRequest.php
new file mode 100644
index 0000000..9992883
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileRequest.php
@@ -0,0 +1,75 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileResponse.php
new file mode 100644
index 0000000..57defee
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerProfileResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressRequest.php
new file mode 100644
index 0000000..53cbfd0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressRequest.php
@@ -0,0 +1,102 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerAddressId
+ *
+ * @return string
+ */
+ public function getCustomerAddressId()
+ {
+ return $this->customerAddressId;
+ }
+
+ /**
+ * Sets a new customerAddressId
+ *
+ * @param string $customerAddressId
+ * @return self
+ */
+ public function setCustomerAddressId($customerAddressId)
+ {
+ $this->customerAddressId = $customerAddressId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressResponse.php
new file mode 100644
index 0000000..bcd20e4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DeleteCustomerShippingAddressResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseMaskedType.php
new file mode 100644
index 0000000..81cc2aa
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseMaskedType.php
@@ -0,0 +1,180 @@
+number;
+ }
+
+ /**
+ * Sets a new number
+ *
+ * @param string $number
+ * @return self
+ */
+ public function setNumber($number)
+ {
+ $this->number = $number;
+ return $this;
+ }
+
+ /**
+ * Gets as state
+ *
+ * @return string
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Sets a new state
+ *
+ * @param string $state
+ * @return self
+ */
+ public function setState($state)
+ {
+ $this->state = $state;
+ return $this;
+ }
+
+ /**
+ * Gets as dateOfBirth
+ *
+ * @return string
+ */
+ public function getDateOfBirth()
+ {
+ return $this->dateOfBirth;
+ }
+
+ /**
+ * Sets a new dateOfBirth
+ *
+ * @param string $dateOfBirth
+ * @return self
+ */
+ public function setDateOfBirth($dateOfBirth)
+ {
+ $this->dateOfBirth = $dateOfBirth;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseType.php
new file mode 100644
index 0000000..55ed4e3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/DriversLicenseType.php
@@ -0,0 +1,180 @@
+number;
+ }
+
+ /**
+ * Sets a new number
+ *
+ * @param string $number
+ * @return self
+ */
+ public function setNumber($number)
+ {
+ $this->number = $number;
+ return $this;
+ }
+
+ /**
+ * Gets as state
+ *
+ * @return string
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Sets a new state
+ *
+ * @param string $state
+ * @return self
+ */
+ public function setState($state)
+ {
+ $this->state = $state;
+ return $this;
+ }
+
+ /**
+ * Gets as dateOfBirth
+ *
+ * @return string
+ */
+ public function getDateOfBirth()
+ {
+ return $this->dateOfBirth;
+ }
+
+ /**
+ * Sets a new dateOfBirth
+ *
+ * @param string $dateOfBirth
+ * @return self
+ */
+ public function setDateOfBirth($dateOfBirth)
+ {
+ $this->dateOfBirth = $dateOfBirth;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/EmailSettingsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/EmailSettingsType.php
new file mode 100644
index 0000000..545965a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/EmailSettingsType.php
@@ -0,0 +1,126 @@
+version;
+ }
+
+ /**
+ * Sets a new version
+ *
+ * @param integer $version
+ * @return self
+ */
+ public function setVersion($version)
+ {
+ $this->version = $version;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/EmvTagType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/EmvTagType.php
new file mode 100644
index 0000000..30626c3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/EmvTagType.php
@@ -0,0 +1,180 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as value
+ *
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Sets a new value
+ *
+ * @param string $value
+ * @return self
+ */
+ public function setValue($value)
+ {
+ $this->value = $value;
+ return $this;
+ }
+
+ /**
+ * Gets as formatted
+ *
+ * @return string
+ */
+ public function getFormatted()
+ {
+ return $this->formatted;
+ }
+
+ /**
+ * Sets a new formatted
+ *
+ * @param string $formatted
+ * @return self
+ */
+ public function setFormatted($formatted)
+ {
+ $this->formatted = $formatted;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/EncryptedTrackDataType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/EncryptedTrackDataType.php
new file mode 100644
index 0000000..658ba53
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/EncryptedTrackDataType.php
@@ -0,0 +1,126 @@
+formOfPayment;
+ }
+
+ /**
+ * Sets a new formOfPayment
+ *
+ * @param \net\authorize\api\contract\v1\KeyBlockType $formOfPayment
+ * @return self
+ */
+ public function setFormOfPayment(\net\authorize\api\contract\v1\KeyBlockType $formOfPayment)
+ {
+ $this->formOfPayment = $formOfPayment;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/EnumCollection.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/EnumCollection.php
new file mode 100644
index 0000000..d45480c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/EnumCollection.php
@@ -0,0 +1,285 @@
+customerProfileSummaryType;
+ }
+
+ /**
+ * Sets a new customerProfileSummaryType
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileSummaryType
+ * $customerProfileSummaryType
+ * @return self
+ */
+ public function setCustomerProfileSummaryType(\net\authorize\api\contract\v1\CustomerProfileSummaryType $customerProfileSummaryType)
+ {
+ $this->customerProfileSummaryType = $customerProfileSummaryType;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentSimpleType
+ *
+ * @return \net\authorize\api\contract\v1\PaymentSimpleType
+ */
+ public function getPaymentSimpleType()
+ {
+ return $this->paymentSimpleType;
+ }
+
+ /**
+ * Sets a new paymentSimpleType
+ *
+ * @param \net\authorize\api\contract\v1\PaymentSimpleType $paymentSimpleType
+ * @return self
+ */
+ public function setPaymentSimpleType(\net\authorize\api\contract\v1\PaymentSimpleType $paymentSimpleType)
+ {
+ $this->paymentSimpleType = $paymentSimpleType;
+ return $this;
+ }
+
+ /**
+ * Gets as accountTypeEnum
+ *
+ * @return string
+ */
+ public function getAccountTypeEnum()
+ {
+ return $this->accountTypeEnum;
+ }
+
+ /**
+ * Sets a new accountTypeEnum
+ *
+ * @param string $accountTypeEnum
+ * @return self
+ */
+ public function setAccountTypeEnum($accountTypeEnum)
+ {
+ $this->accountTypeEnum = $accountTypeEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as cardTypeEnum
+ *
+ * @return string
+ */
+ public function getCardTypeEnum()
+ {
+ return $this->cardTypeEnum;
+ }
+
+ /**
+ * Sets a new cardTypeEnum
+ *
+ * @param string $cardTypeEnum
+ * @return self
+ */
+ public function setCardTypeEnum($cardTypeEnum)
+ {
+ $this->cardTypeEnum = $cardTypeEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as fDSFilterActionEnum
+ *
+ * @return string
+ */
+ public function getFDSFilterActionEnum()
+ {
+ return $this->fDSFilterActionEnum;
+ }
+
+ /**
+ * Sets a new fDSFilterActionEnum
+ *
+ * @param string $fDSFilterActionEnum
+ * @return self
+ */
+ public function setFDSFilterActionEnum($fDSFilterActionEnum)
+ {
+ $this->fDSFilterActionEnum = $fDSFilterActionEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as permissionsEnum
+ *
+ * @return string
+ */
+ public function getPermissionsEnum()
+ {
+ return $this->permissionsEnum;
+ }
+
+ /**
+ * Sets a new permissionsEnum
+ *
+ * @param string $permissionsEnum
+ * @return self
+ */
+ public function setPermissionsEnum($permissionsEnum)
+ {
+ $this->permissionsEnum = $permissionsEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as settingNameEnum
+ *
+ * @return string
+ */
+ public function getSettingNameEnum()
+ {
+ return $this->settingNameEnum;
+ }
+
+ /**
+ * Sets a new settingNameEnum
+ *
+ * @param string $settingNameEnum
+ * @return self
+ */
+ public function setSettingNameEnum($settingNameEnum)
+ {
+ $this->settingNameEnum = $settingNameEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as settlementStateEnum
+ *
+ * @return string
+ */
+ public function getSettlementStateEnum()
+ {
+ return $this->settlementStateEnum;
+ }
+
+ /**
+ * Sets a new settlementStateEnum
+ *
+ * @param string $settlementStateEnum
+ * @return self
+ */
+ public function setSettlementStateEnum($settlementStateEnum)
+ {
+ $this->settlementStateEnum = $settlementStateEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionStatusEnum
+ *
+ * @return string
+ */
+ public function getTransactionStatusEnum()
+ {
+ return $this->transactionStatusEnum;
+ }
+
+ /**
+ * Sets a new transactionStatusEnum
+ *
+ * @param string $transactionStatusEnum
+ * @return self
+ */
+ public function setTransactionStatusEnum($transactionStatusEnum)
+ {
+ $this->transactionStatusEnum = $transactionStatusEnum;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionTypeEnum
+ *
+ * @return string
+ */
+ public function getTransactionTypeEnum()
+ {
+ return $this->transactionTypeEnum;
+ }
+
+ /**
+ * Sets a new transactionTypeEnum
+ *
+ * @param string $transactionTypeEnum
+ * @return self
+ */
+ public function setTransactionTypeEnum($transactionTypeEnum)
+ {
+ $this->transactionTypeEnum = $transactionTypeEnum;
+ return $this;
+ }
+
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ErrorResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ErrorResponse.php
new file mode 100644
index 0000000..84a3dda
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ErrorResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ExtendedAmountType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ExtendedAmountType.php
new file mode 100644
index 0000000..0507c06
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ExtendedAmountType.php
@@ -0,0 +1,180 @@
+amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/FDSFilterType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/FDSFilterType.php
new file mode 100644
index 0000000..d720895
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/FDSFilterType.php
@@ -0,0 +1,153 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as action
+ *
+ * @return string
+ */
+ public function getAction()
+ {
+ return $this->action;
+ }
+
+ /**
+ * Sets a new action
+ *
+ * @param string $action
+ * @return self
+ */
+ public function setAction($action)
+ {
+ $this->action = $action;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/FingerPrintType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/FingerPrintType.php
new file mode 100644
index 0000000..f0e276e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/FingerPrintType.php
@@ -0,0 +1,234 @@
+hashValue;
+ }
+
+ /**
+ * Sets a new hashValue
+ *
+ * @param string $hashValue
+ * @return self
+ */
+ public function setHashValue($hashValue)
+ {
+ $this->hashValue = $hashValue;
+ return $this;
+ }
+
+ /**
+ * Gets as sequence
+ *
+ * @return string
+ */
+ public function getSequence()
+ {
+ return $this->sequence;
+ }
+
+ /**
+ * Sets a new sequence
+ *
+ * @param string $sequence
+ * @return self
+ */
+ public function setSequence($sequence)
+ {
+ $this->sequence = $sequence;
+ return $this;
+ }
+
+ /**
+ * Gets as timestamp
+ *
+ * @return string
+ */
+ public function getTimestamp()
+ {
+ return $this->timestamp;
+ }
+
+ /**
+ * Sets a new timestamp
+ *
+ * @param string $timestamp
+ * @return self
+ */
+ public function setTimestamp($timestamp)
+ {
+ $this->timestamp = $timestamp;
+ return $this;
+ }
+
+ /**
+ * Gets as currencyCode
+ *
+ * @return string
+ */
+ public function getCurrencyCode()
+ {
+ return $this->currencyCode;
+ }
+
+ /**
+ * Sets a new currencyCode
+ *
+ * @param string $currencyCode
+ * @return self
+ */
+ public function setCurrencyCode($currencyCode)
+ {
+ $this->currencyCode = $currencyCode;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return string
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param string $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/FraudInformationType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/FraudInformationType.php
new file mode 100644
index 0000000..dd104d4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/FraudInformationType.php
@@ -0,0 +1,187 @@
+fraudFilterList[] = $fraudFilter;
+ return $this;
+ }
+
+ /**
+ * isset fraudFilterList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetFraudFilterList($index)
+ {
+ return isset($this->fraudFilterList[$index]);
+ }
+
+ /**
+ * unset fraudFilterList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetFraudFilterList($index)
+ {
+ unset($this->fraudFilterList[$index]);
+ }
+
+ /**
+ * Gets as fraudFilterList
+ *
+ * @return string[]
+ */
+ public function getFraudFilterList()
+ {
+ return $this->fraudFilterList;
+ }
+
+ /**
+ * Sets a new fraudFilterList
+ *
+ * @param string[] $fraudFilterList
+ * @return self
+ */
+ public function setFraudFilterList(array $fraudFilterList)
+ {
+ $this->fraudFilterList = $fraudFilterList;
+ return $this;
+ }
+
+ /**
+ * Gets as fraudAction
+ *
+ * @return string
+ */
+ public function getFraudAction()
+ {
+ return $this->fraudAction;
+ }
+
+ /**
+ * Sets a new fraudAction
+ *
+ * @param string $fraudAction
+ * @return self
+ */
+ public function setFraudAction($fraudAction)
+ {
+ $this->fraudAction = $fraudAction;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsRequest.php
new file mode 100644
index 0000000..66549e1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsRequest.php
@@ -0,0 +1,129 @@
+month;
+ }
+
+ /**
+ * Sets a new month
+ *
+ * @param string $month
+ * @return self
+ */
+ public function setMonth($month)
+ {
+ $this->month = $month;
+ return $this;
+ }
+
+ /**
+ * Gets as modifiedTypeFilter
+ *
+ * @return string
+ */
+ public function getModifiedTypeFilter()
+ {
+ return $this->modifiedTypeFilter;
+ }
+
+ /**
+ * Sets a new modifiedTypeFilter
+ *
+ * @param string $modifiedTypeFilter
+ * @return self
+ */
+ public function setModifiedTypeFilter($modifiedTypeFilter)
+ {
+ $this->modifiedTypeFilter = $modifiedTypeFilter;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsResponse.php
new file mode 100644
index 0000000..422c5a9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobDetailsResponse.php
@@ -0,0 +1,115 @@
+totalNumInResultSet;
+ }
+
+ /**
+ * Sets a new totalNumInResultSet
+ *
+ * @param integer $totalNumInResultSet
+ * @return self
+ */
+ public function setTotalNumInResultSet($totalNumInResultSet)
+ {
+ $this->totalNumInResultSet = $totalNumInResultSet;
+ return $this;
+ }
+
+ /**
+ * Gets as auDetails
+ *
+ * @return \net\authorize\api\contract\v1\ListOfAUDetailsType
+ */
+ public function getAuDetails()
+ {
+ return $this->auDetails;
+ }
+
+ /**
+ * Sets a new auDetails
+ *
+ * @param \net\authorize\api\contract\v1\ListOfAUDetailsType $auDetails
+ * @return self
+ */
+ public function setAuDetails(\net\authorize\api\contract\v1\ListOfAUDetailsType $auDetails)
+ {
+ $this->auDetails = $auDetails;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryRequest.php
new file mode 100644
index 0000000..17eb652
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryRequest.php
@@ -0,0 +1,75 @@
+month;
+ }
+
+ /**
+ * Sets a new month
+ *
+ * @param string $month
+ * @return self
+ */
+ public function setMonth($month)
+ {
+ $this->month = $month;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryResponse.php
new file mode 100644
index 0000000..b7148be
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetAUJobSummaryResponse.php
@@ -0,0 +1,122 @@
+auSummary[] = $auResponse;
+ return $this;
+ }
+
+ /**
+ * isset auSummary
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetAuSummary($index)
+ {
+ return isset($this->auSummary[$index]);
+ }
+
+ /**
+ * unset auSummary
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetAuSummary($index)
+ {
+ unset($this->auSummary[$index]);
+ }
+
+ /**
+ * Gets as auSummary
+ *
+ * @return \net\authorize\api\contract\v1\AuResponseType[]
+ */
+ public function getAuSummary()
+ {
+ return $this->auSummary;
+ }
+
+ /**
+ * Sets a new auSummary
+ *
+ * @param \net\authorize\api\contract\v1\AuResponseType[] $auSummary
+ * @return self
+ */
+ public function setAuSummary(array $auSummary)
+ {
+ $this->auSummary = $auSummary;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsRequest.php
new file mode 100644
index 0000000..1a6ef70
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsRequest.php
@@ -0,0 +1,75 @@
+batchId;
+ }
+
+ /**
+ * Sets a new batchId
+ *
+ * @param string $batchId
+ * @return self
+ */
+ public function setBatchId($batchId)
+ {
+ $this->batchId = $batchId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsResponse.php
new file mode 100644
index 0000000..b0a47df
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetBatchStatisticsResponse.php
@@ -0,0 +1,88 @@
+batch;
+ }
+
+ /**
+ * Sets a new batch
+ *
+ * @param \net\authorize\api\contract\v1\BatchDetailsType $batch
+ * @return self
+ */
+ public function setBatch(\net\authorize\api\contract\v1\BatchDetailsType $batch)
+ {
+ $this->batch = $batch;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListRequest.php
new file mode 100644
index 0000000..2da1ac5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListRequest.php
@@ -0,0 +1,157 @@
+searchType;
+ }
+
+ /**
+ * Sets a new searchType
+ *
+ * @param string $searchType
+ * @return self
+ */
+ public function setSearchType($searchType)
+ {
+ $this->searchType = $searchType;
+ return $this;
+ }
+
+ /**
+ * Gets as month
+ *
+ * @return string
+ */
+ public function getMonth()
+ {
+ return $this->month;
+ }
+
+ /**
+ * Sets a new month
+ *
+ * @param string $month
+ * @return self
+ */
+ public function setMonth($month)
+ {
+ $this->month = $month;
+ return $this;
+ }
+
+ /**
+ * Gets as sorting
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileSortingType
+ */
+ public function getSorting()
+ {
+ return $this->sorting;
+ }
+
+ /**
+ * Sets a new sorting
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileSortingType $sorting
+ * @return self
+ */
+ public function setSorting(\net\authorize\api\contract\v1\CustomerPaymentProfileSortingType $sorting)
+ {
+ $this->sorting = $sorting;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListResponse.php
new file mode 100644
index 0000000..b6dd05f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileListResponse.php
@@ -0,0 +1,152 @@
+totalNumInResultSet;
+ }
+
+ /**
+ * Sets a new totalNumInResultSet
+ *
+ * @param integer $totalNumInResultSet
+ * @return self
+ */
+ public function setTotalNumInResultSet($totalNumInResultSet)
+ {
+ $this->totalNumInResultSet = $totalNumInResultSet;
+ return $this;
+ }
+
+ /**
+ * Adds as paymentProfile
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileListItemType
+ * $paymentProfile
+ */
+ public function addToPaymentProfiles(\net\authorize\api\contract\v1\CustomerPaymentProfileListItemType $paymentProfile)
+ {
+ $this->paymentProfiles[] = $paymentProfile;
+ return $this;
+ }
+
+ /**
+ * isset paymentProfiles
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetPaymentProfiles($index)
+ {
+ return isset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * unset paymentProfiles
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetPaymentProfiles($index)
+ {
+ unset($this->paymentProfiles[$index]);
+ }
+
+ /**
+ * Gets as paymentProfiles
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileListItemType[]
+ */
+ public function getPaymentProfiles()
+ {
+ return $this->paymentProfiles;
+ }
+
+ /**
+ * Sets a new paymentProfiles
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileListItemType[]
+ * $paymentProfiles
+ * @return self
+ */
+ public function setPaymentProfiles(array $paymentProfiles)
+ {
+ $this->paymentProfiles = $paymentProfiles;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileRequest.php
new file mode 100644
index 0000000..13c6a9d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileRequest.php
@@ -0,0 +1,156 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as unmaskExpirationDate
+ *
+ * @return boolean
+ */
+ public function getUnmaskExpirationDate()
+ {
+ return $this->unmaskExpirationDate;
+ }
+
+ /**
+ * Sets a new unmaskExpirationDate
+ *
+ * @param boolean $unmaskExpirationDate
+ * @return self
+ */
+ public function setUnmaskExpirationDate($unmaskExpirationDate)
+ {
+ $this->unmaskExpirationDate = $unmaskExpirationDate;
+ return $this;
+ }
+
+ /**
+ * Gets as includeIssuerInfo
+ *
+ * @return boolean
+ */
+ public function getIncludeIssuerInfo()
+ {
+ return $this->includeIssuerInfo;
+ }
+
+ /**
+ * Sets a new includeIssuerInfo
+ *
+ * @param boolean $includeIssuerInfo
+ * @return self
+ */
+ public function setIncludeIssuerInfo($includeIssuerInfo)
+ {
+ $this->includeIssuerInfo = $includeIssuerInfo;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileResponse.php
new file mode 100644
index 0000000..e7ab05e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerPaymentProfileResponse.php
@@ -0,0 +1,90 @@
+paymentProfile;
+ }
+
+ /**
+ * Sets a new paymentProfile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType
+ * $paymentProfile
+ * @return self
+ */
+ public function setPaymentProfile(\net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType $paymentProfile)
+ {
+ $this->paymentProfile = $paymentProfile;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsRequest.php
new file mode 100644
index 0000000..b9e0fca
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsRequest.php
@@ -0,0 +1,48 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsResponse.php
new file mode 100644
index 0000000..3227b25
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileIdsResponse.php
@@ -0,0 +1,122 @@
+ids[] = $numericString;
+ return $this;
+ }
+
+ /**
+ * isset ids
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetIds($index)
+ {
+ return isset($this->ids[$index]);
+ }
+
+ /**
+ * unset ids
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetIds($index)
+ {
+ unset($this->ids[$index]);
+ }
+
+ /**
+ * Gets as ids
+ *
+ * @return string[]
+ */
+ public function getIds()
+ {
+ return $this->ids;
+ }
+
+ /**
+ * Sets a new ids
+ *
+ * @param string $ids
+ * @return self
+ */
+ public function setIds(array $ids)
+ {
+ $this->ids = $ids;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileRequest.php
new file mode 100644
index 0000000..2d54711
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileRequest.php
@@ -0,0 +1,183 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantCustomerId
+ *
+ * @return string
+ */
+ public function getMerchantCustomerId()
+ {
+ return $this->merchantCustomerId;
+ }
+
+ /**
+ * Sets a new merchantCustomerId
+ *
+ * @param string $merchantCustomerId
+ * @return self
+ */
+ public function setMerchantCustomerId($merchantCustomerId)
+ {
+ $this->merchantCustomerId = $merchantCustomerId;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * Gets as unmaskExpirationDate
+ *
+ * @return boolean
+ */
+ public function getUnmaskExpirationDate()
+ {
+ return $this->unmaskExpirationDate;
+ }
+
+ /**
+ * Sets a new unmaskExpirationDate
+ *
+ * @param boolean $unmaskExpirationDate
+ * @return self
+ */
+ public function setUnmaskExpirationDate($unmaskExpirationDate)
+ {
+ $this->unmaskExpirationDate = $unmaskExpirationDate;
+ return $this;
+ }
+
+ /**
+ * Gets as includeIssuerInfo
+ *
+ * @return boolean
+ */
+ public function getIncludeIssuerInfo()
+ {
+ return $this->includeIssuerInfo;
+ }
+
+ /**
+ * Sets a new includeIssuerInfo
+ *
+ * @param boolean $includeIssuerInfo
+ * @return self
+ */
+ public function setIncludeIssuerInfo($includeIssuerInfo)
+ {
+ $this->includeIssuerInfo = $includeIssuerInfo;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileResponse.php
new file mode 100644
index 0000000..b69d515
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerProfileResponse.php
@@ -0,0 +1,149 @@
+profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileMaskedType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileMaskedType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Adds as subscriptionId
+ *
+ * @return self
+ * @param string $subscriptionId
+ */
+ public function addToSubscriptionIds($subscriptionId)
+ {
+ $this->subscriptionIds[] = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * isset subscriptionIds
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSubscriptionIds($index)
+ {
+ return isset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * unset subscriptionIds
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSubscriptionIds($index)
+ {
+ unset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * Gets as subscriptionIds
+ *
+ * @return string[]
+ */
+ public function getSubscriptionIds()
+ {
+ return $this->subscriptionIds;
+ }
+
+ /**
+ * Sets a new subscriptionIds
+ *
+ * @param string $subscriptionIds
+ * @return self
+ */
+ public function setSubscriptionIds(array $subscriptionIds)
+ {
+ $this->subscriptionIds = $subscriptionIds;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressRequest.php
new file mode 100644
index 0000000..61fdfe2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressRequest.php
@@ -0,0 +1,102 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerAddressId
+ *
+ * @return string
+ */
+ public function getCustomerAddressId()
+ {
+ return $this->customerAddressId;
+ }
+
+ /**
+ * Sets a new customerAddressId
+ *
+ * @param string $customerAddressId
+ * @return self
+ */
+ public function setCustomerAddressId($customerAddressId)
+ {
+ $this->customerAddressId = $customerAddressId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressResponse.php
new file mode 100644
index 0000000..47b4c40
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetCustomerShippingAddressResponse.php
@@ -0,0 +1,176 @@
+defaultShippingAddress;
+ }
+
+ /**
+ * Sets a new defaultShippingAddress
+ *
+ * @param boolean $defaultShippingAddress
+ * @return self
+ */
+ public function setDefaultShippingAddress($defaultShippingAddress)
+ {
+ $this->defaultShippingAddress = $defaultShippingAddress;
+ return $this;
+ }
+
+ /**
+ * Gets as address
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressExType
+ */
+ public function getAddress()
+ {
+ return $this->address;
+ }
+
+ /**
+ * Sets a new address
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressExType $address
+ * @return self
+ */
+ public function setAddress(\net\authorize\api\contract\v1\CustomerAddressExType $address)
+ {
+ $this->address = $address;
+ return $this;
+ }
+
+ /**
+ * Adds as subscriptionId
+ *
+ * @return self
+ * @param string $subscriptionId
+ */
+ public function addToSubscriptionIds($subscriptionId)
+ {
+ $this->subscriptionIds[] = $subscriptionId;
+ return $this;
+ }
+
+ /**
+ * isset subscriptionIds
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSubscriptionIds($index)
+ {
+ return isset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * unset subscriptionIds
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSubscriptionIds($index)
+ {
+ unset($this->subscriptionIds[$index]);
+ }
+
+ /**
+ * Gets as subscriptionIds
+ *
+ * @return string[]
+ */
+ public function getSubscriptionIds()
+ {
+ return $this->subscriptionIds;
+ }
+
+ /**
+ * Sets a new subscriptionIds
+ *
+ * @param string $subscriptionIds
+ * @return self
+ */
+ public function setSubscriptionIds(array $subscriptionIds)
+ {
+ $this->subscriptionIds = $subscriptionIds;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageRequest.php
new file mode 100644
index 0000000..3b03ee7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageRequest.php
@@ -0,0 +1,179 @@
+transactionRequest;
+ }
+
+ /**
+ * Sets a new transactionRequest
+ *
+ * @param \net\authorize\api\contract\v1\TransactionRequestType $transactionRequest
+ * @return self
+ */
+ public function setTransactionRequest(\net\authorize\api\contract\v1\TransactionRequestType $transactionRequest)
+ {
+ $this->transactionRequest = $transactionRequest;
+ return $this;
+ }
+
+ /**
+ * Adds as setting
+ *
+ * Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl,
+ * hostedPaymentButtonOptions, hostedPaymentReturnOptions,
+ * hostedPaymentOrderOptions, hostedPaymentPaymentOptions,
+ * hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions,
+ * hostedPaymentSecurityOptions, hostedPaymentCustomerOptions,
+ * hostedPaymentStyleOptions
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\SettingType $setting
+ */
+ public function addToHostedPaymentSettings(\net\authorize\api\contract\v1\SettingType $setting)
+ {
+ $this->hostedPaymentSettings[] = $setting;
+ return $this;
+ }
+
+ /**
+ * isset hostedPaymentSettings
+ *
+ * Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl,
+ * hostedPaymentButtonOptions, hostedPaymentReturnOptions,
+ * hostedPaymentOrderOptions, hostedPaymentPaymentOptions,
+ * hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions,
+ * hostedPaymentSecurityOptions, hostedPaymentCustomerOptions,
+ * hostedPaymentStyleOptions
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetHostedPaymentSettings($index)
+ {
+ return isset($this->hostedPaymentSettings[$index]);
+ }
+
+ /**
+ * unset hostedPaymentSettings
+ *
+ * Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl,
+ * hostedPaymentButtonOptions, hostedPaymentReturnOptions,
+ * hostedPaymentOrderOptions, hostedPaymentPaymentOptions,
+ * hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions,
+ * hostedPaymentSecurityOptions, hostedPaymentCustomerOptions,
+ * hostedPaymentStyleOptions
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetHostedPaymentSettings($index)
+ {
+ unset($this->hostedPaymentSettings[$index]);
+ }
+
+ /**
+ * Gets as hostedPaymentSettings
+ *
+ * Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl,
+ * hostedPaymentButtonOptions, hostedPaymentReturnOptions,
+ * hostedPaymentOrderOptions, hostedPaymentPaymentOptions,
+ * hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions,
+ * hostedPaymentSecurityOptions, hostedPaymentCustomerOptions,
+ * hostedPaymentStyleOptions
+ *
+ * @return \net\authorize\api\contract\v1\SettingType[]
+ */
+ public function getHostedPaymentSettings()
+ {
+ return $this->hostedPaymentSettings;
+ }
+
+ /**
+ * Sets a new hostedPaymentSettings
+ *
+ * Allowed values for settingName are: hostedPaymentIFrameCommunicatorUrl,
+ * hostedPaymentButtonOptions, hostedPaymentReturnOptions,
+ * hostedPaymentOrderOptions, hostedPaymentPaymentOptions,
+ * hostedPaymentBillingAddressOptions, hostedPaymentShippingAddressOptions,
+ * hostedPaymentSecurityOptions, hostedPaymentCustomerOptions,
+ * hostedPaymentStyleOptions
+ *
+ * @param \net\authorize\api\contract\v1\SettingType[] $hostedPaymentSettings
+ * @return self
+ */
+ public function setHostedPaymentSettings(array $hostedPaymentSettings)
+ {
+ $this->hostedPaymentSettings = $hostedPaymentSettings;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageResponse.php
new file mode 100644
index 0000000..ef253f5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedPaymentPageResponse.php
@@ -0,0 +1,88 @@
+token;
+ }
+
+ /**
+ * Sets a new token
+ *
+ * @param string $token
+ * @return self
+ */
+ public function setToken($token)
+ {
+ $this->token = $token;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageRequest.php
new file mode 100644
index 0000000..86ac97e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageRequest.php
@@ -0,0 +1,178 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Adds as setting
+ *
+ * Allowed values for settingName are: hostedProfileReturnUrl,
+ * hostedProfileReturnUrlText, hostedProfilePageBorderVisible,
+ * hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor,
+ * hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired,
+ * hostedProfileBillingAddressOptions, hostedProfileManageOptions,
+ * hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\SettingType $setting
+ */
+ public function addToHostedProfileSettings(\net\authorize\api\contract\v1\SettingType $setting)
+ {
+ $this->hostedProfileSettings[] = $setting;
+ return $this;
+ }
+
+ /**
+ * isset hostedProfileSettings
+ *
+ * Allowed values for settingName are: hostedProfileReturnUrl,
+ * hostedProfileReturnUrlText, hostedProfilePageBorderVisible,
+ * hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor,
+ * hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired,
+ * hostedProfileBillingAddressOptions, hostedProfileManageOptions,
+ * hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetHostedProfileSettings($index)
+ {
+ return isset($this->hostedProfileSettings[$index]);
+ }
+
+ /**
+ * unset hostedProfileSettings
+ *
+ * Allowed values for settingName are: hostedProfileReturnUrl,
+ * hostedProfileReturnUrlText, hostedProfilePageBorderVisible,
+ * hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor,
+ * hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired,
+ * hostedProfileBillingAddressOptions, hostedProfileManageOptions,
+ * hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetHostedProfileSettings($index)
+ {
+ unset($this->hostedProfileSettings[$index]);
+ }
+
+ /**
+ * Gets as hostedProfileSettings
+ *
+ * Allowed values for settingName are: hostedProfileReturnUrl,
+ * hostedProfileReturnUrlText, hostedProfilePageBorderVisible,
+ * hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor,
+ * hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired,
+ * hostedProfileBillingAddressOptions, hostedProfileManageOptions,
+ * hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+ *
+ * @return \net\authorize\api\contract\v1\SettingType[]
+ */
+ public function getHostedProfileSettings()
+ {
+ return $this->hostedProfileSettings;
+ }
+
+ /**
+ * Sets a new hostedProfileSettings
+ *
+ * Allowed values for settingName are: hostedProfileReturnUrl,
+ * hostedProfileReturnUrlText, hostedProfilePageBorderVisible,
+ * hostedProfileIFrameCommunicatorUrl, hostedProfileHeadingBgColor,
+ * hostedProfileBillingAddressRequired, hostedProfileCardCodeRequired,
+ * hostedProfileBillingAddressOptions, hostedProfileManageOptions,
+ * hostedProfilePaymentOptions, hostedProfileSaveButtonText.
+ *
+ * @param \net\authorize\api\contract\v1\SettingType[] $hostedProfileSettings
+ * @return self
+ */
+ public function setHostedProfileSettings(array $hostedProfileSettings)
+ {
+ $this->hostedProfileSettings = $hostedProfileSettings;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageResponse.php
new file mode 100644
index 0000000..4b3e4d3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetHostedProfilePageResponse.php
@@ -0,0 +1,88 @@
+token;
+ }
+
+ /**
+ * Sets a new token
+ *
+ * @param string $token
+ * @return self
+ */
+ public function setToken($token)
+ {
+ $this->token = $token;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsRequest.php
new file mode 100644
index 0000000..3b6a0b0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsRequest.php
@@ -0,0 +1,48 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsResponse.php
new file mode 100644
index 0000000..9f524d2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetMerchantDetailsResponse.php
@@ -0,0 +1,474 @@
+isTestMode;
+ }
+
+ /**
+ * Sets a new isTestMode
+ *
+ * @param boolean $isTestMode
+ * @return self
+ */
+ public function setIsTestMode($isTestMode)
+ {
+ $this->isTestMode = $isTestMode;
+ return $this;
+ }
+
+ /**
+ * Adds as processor
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\ProcessorType $processor
+ */
+ public function addToProcessors(\net\authorize\api\contract\v1\ProcessorType $processor)
+ {
+ $this->processors[] = $processor;
+ return $this;
+ }
+
+ /**
+ * isset processors
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetProcessors($index)
+ {
+ return isset($this->processors[$index]);
+ }
+
+ /**
+ * unset processors
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetProcessors($index)
+ {
+ unset($this->processors[$index]);
+ }
+
+ /**
+ * Gets as processors
+ *
+ * @return \net\authorize\api\contract\v1\ProcessorType[]
+ */
+ public function getProcessors()
+ {
+ return $this->processors;
+ }
+
+ /**
+ * Sets a new processors
+ *
+ * @param \net\authorize\api\contract\v1\ProcessorType[] $processors
+ * @return self
+ */
+ public function setProcessors(array $processors)
+ {
+ $this->processors = $processors;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantName
+ *
+ * @return string
+ */
+ public function getMerchantName()
+ {
+ return $this->merchantName;
+ }
+
+ /**
+ * Sets a new merchantName
+ *
+ * @param string $merchantName
+ * @return self
+ */
+ public function setMerchantName($merchantName)
+ {
+ $this->merchantName = $merchantName;
+ return $this;
+ }
+
+ /**
+ * Gets as gatewayId
+ *
+ * @return string
+ */
+ public function getGatewayId()
+ {
+ return $this->gatewayId;
+ }
+
+ /**
+ * Sets a new gatewayId
+ *
+ * @param string $gatewayId
+ * @return self
+ */
+ public function setGatewayId($gatewayId)
+ {
+ $this->gatewayId = $gatewayId;
+ return $this;
+ }
+
+ /**
+ * Adds as marketType
+ *
+ * @return self
+ * @param string $marketType
+ */
+ public function addToMarketTypes($marketType)
+ {
+ $this->marketTypes[] = $marketType;
+ return $this;
+ }
+
+ /**
+ * isset marketTypes
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetMarketTypes($index)
+ {
+ return isset($this->marketTypes[$index]);
+ }
+
+ /**
+ * unset marketTypes
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetMarketTypes($index)
+ {
+ unset($this->marketTypes[$index]);
+ }
+
+ /**
+ * Gets as marketTypes
+ *
+ * @return string[]
+ */
+ public function getMarketTypes()
+ {
+ return $this->marketTypes;
+ }
+
+ /**
+ * Sets a new marketTypes
+ *
+ * @param string $marketTypes
+ * @return self
+ */
+ public function setMarketTypes(array $marketTypes)
+ {
+ $this->marketTypes = $marketTypes;
+ return $this;
+ }
+
+ /**
+ * Adds as productCode
+ *
+ * @return self
+ * @param string $productCode
+ */
+ public function addToProductCodes($productCode)
+ {
+ $this->productCodes[] = $productCode;
+ return $this;
+ }
+
+ /**
+ * isset productCodes
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetProductCodes($index)
+ {
+ return isset($this->productCodes[$index]);
+ }
+
+ /**
+ * unset productCodes
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetProductCodes($index)
+ {
+ unset($this->productCodes[$index]);
+ }
+
+ /**
+ * Gets as productCodes
+ *
+ * @return string[]
+ */
+ public function getProductCodes()
+ {
+ return $this->productCodes;
+ }
+
+ /**
+ * Sets a new productCodes
+ *
+ * @param string $productCodes
+ * @return self
+ */
+ public function setProductCodes(array $productCodes)
+ {
+ $this->productCodes = $productCodes;
+ return $this;
+ }
+
+ /**
+ * Adds as paymentMethod
+ *
+ * @return self
+ * @param string $paymentMethod
+ */
+ public function addToPaymentMethods($paymentMethod)
+ {
+ $this->paymentMethods[] = $paymentMethod;
+ return $this;
+ }
+
+ /**
+ * isset paymentMethods
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetPaymentMethods($index)
+ {
+ return isset($this->paymentMethods[$index]);
+ }
+
+ /**
+ * unset paymentMethods
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetPaymentMethods($index)
+ {
+ unset($this->paymentMethods[$index]);
+ }
+
+ /**
+ * Gets as paymentMethods
+ *
+ * @return string[]
+ */
+ public function getPaymentMethods()
+ {
+ return $this->paymentMethods;
+ }
+
+ /**
+ * Sets a new paymentMethods
+ *
+ * @param string $paymentMethods
+ * @return self
+ */
+ public function setPaymentMethods(array $paymentMethods)
+ {
+ $this->paymentMethods = $paymentMethods;
+ return $this;
+ }
+
+ /**
+ * Adds as currency
+ *
+ * @return self
+ * @param string $currency
+ */
+ public function addToCurrencies($currency)
+ {
+ $this->currencies[] = $currency;
+ return $this;
+ }
+
+ /**
+ * isset currencies
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCurrencies($index)
+ {
+ return isset($this->currencies[$index]);
+ }
+
+ /**
+ * unset currencies
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCurrencies($index)
+ {
+ unset($this->currencies[$index]);
+ }
+
+ /**
+ * Gets as currencies
+ *
+ * @return string[]
+ */
+ public function getCurrencies()
+ {
+ return $this->currencies;
+ }
+
+ /**
+ * Sets a new currencies
+ *
+ * @param string $currencies
+ * @return self
+ */
+ public function setCurrencies(array $currencies)
+ {
+ $this->currencies = $currencies;
+ return $this;
+ }
+
+ /**
+ * Gets as publicClientKey
+ *
+ * @return string
+ */
+ public function getPublicClientKey()
+ {
+ return $this->publicClientKey;
+ }
+
+ /**
+ * Sets a new publicClientKey
+ *
+ * @param string $publicClientKey
+ * @return self
+ */
+ public function setPublicClientKey($publicClientKey)
+ {
+ $this->publicClientKey = $publicClientKey;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListRequest.php
new file mode 100644
index 0000000..125a49a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListRequest.php
@@ -0,0 +1,129 @@
+includeStatistics;
+ }
+
+ /**
+ * Sets a new includeStatistics
+ *
+ * @param boolean $includeStatistics
+ * @return self
+ */
+ public function setIncludeStatistics($includeStatistics)
+ {
+ $this->includeStatistics = $includeStatistics;
+ return $this;
+ }
+
+ /**
+ * Gets as firstSettlementDate
+ *
+ * @return \DateTime
+ */
+ public function getFirstSettlementDate()
+ {
+ return $this->firstSettlementDate;
+ }
+
+ /**
+ * Sets a new firstSettlementDate
+ *
+ * @param \DateTime $firstSettlementDate
+ * @return self
+ */
+ public function setFirstSettlementDate(\DateTime $firstSettlementDate)
+ {
+ $this->firstSettlementDate = $firstSettlementDate;
+ return $this;
+ }
+
+ /**
+ * Gets as lastSettlementDate
+ *
+ * @return \DateTime
+ */
+ public function getLastSettlementDate()
+ {
+ return $this->lastSettlementDate;
+ }
+
+ /**
+ * Sets a new lastSettlementDate
+ *
+ * @param \DateTime $lastSettlementDate
+ * @return self
+ */
+ public function setLastSettlementDate(\DateTime $lastSettlementDate)
+ {
+ $this->lastSettlementDate = $lastSettlementDate;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListResponse.php
new file mode 100644
index 0000000..184e919
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetSettledBatchListResponse.php
@@ -0,0 +1,122 @@
+batchList[] = $batch;
+ return $this;
+ }
+
+ /**
+ * isset batchList
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetBatchList($index)
+ {
+ return isset($this->batchList[$index]);
+ }
+
+ /**
+ * unset batchList
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetBatchList($index)
+ {
+ unset($this->batchList[$index]);
+ }
+
+ /**
+ * Gets as batchList
+ *
+ * @return \net\authorize\api\contract\v1\BatchDetailsType[]
+ */
+ public function getBatchList()
+ {
+ return $this->batchList;
+ }
+
+ /**
+ * Sets a new batchList
+ *
+ * @param \net\authorize\api\contract\v1\BatchDetailsType[] $batchList
+ * @return self
+ */
+ public function setBatchList(array $batchList)
+ {
+ $this->batchList = $batchList;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsRequest.php
new file mode 100644
index 0000000..82fd579
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsRequest.php
@@ -0,0 +1,75 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsResponse.php
new file mode 100644
index 0000000..ba404cc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionDetailsResponse.php
@@ -0,0 +1,142 @@
+transaction;
+ }
+
+ /**
+ * Sets a new transaction
+ *
+ * @param \net\authorize\api\contract\v1\TransactionDetailsType $transaction
+ * @return self
+ */
+ public function setTransaction(\net\authorize\api\contract\v1\TransactionDetailsType $transaction)
+ {
+ $this->transaction = $transaction;
+ return $this;
+ }
+
+ /**
+ * Gets as clientId
+ *
+ * @return string
+ */
+ public function getClientId()
+ {
+ return $this->clientId;
+ }
+
+ /**
+ * Sets a new clientId
+ *
+ * @param string $clientId
+ * @return self
+ */
+ public function setClientId($clientId)
+ {
+ $this->clientId = $clientId;
+ return $this;
+ }
+
+ /**
+ * Gets as transrefId
+ *
+ * @return string
+ */
+ public function getTransrefId()
+ {
+ return $this->transrefId;
+ }
+
+ /**
+ * Sets a new transrefId
+ *
+ * @param string $transrefId
+ * @return self
+ */
+ public function setTransrefId($transrefId)
+ {
+ $this->transrefId = $transrefId;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListForCustomerRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListForCustomerRequest.php
new file mode 100644
index 0000000..789e79c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListForCustomerRequest.php
@@ -0,0 +1,156 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as sorting
+ *
+ * @return \net\authorize\api\contract\v1\TransactionListSortingType
+ */
+ public function getSorting()
+ {
+ return $this->sorting;
+ }
+
+ /**
+ * Sets a new sorting
+ *
+ * @param \net\authorize\api\contract\v1\TransactionListSortingType $sorting
+ * @return self
+ */
+ public function setSorting(\net\authorize\api\contract\v1\TransactionListSortingType $sorting)
+ {
+ $this->sorting = $sorting;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListRequest.php
new file mode 100644
index 0000000..4fcce5e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListRequest.php
@@ -0,0 +1,129 @@
+batchId;
+ }
+
+ /**
+ * Sets a new batchId
+ *
+ * @param string $batchId
+ * @return self
+ */
+ public function setBatchId($batchId)
+ {
+ $this->batchId = $batchId;
+ return $this;
+ }
+
+ /**
+ * Gets as sorting
+ *
+ * @return \net\authorize\api\contract\v1\TransactionListSortingType
+ */
+ public function getSorting()
+ {
+ return $this->sorting;
+ }
+
+ /**
+ * Sets a new sorting
+ *
+ * @param \net\authorize\api\contract\v1\TransactionListSortingType $sorting
+ * @return self
+ */
+ public function setSorting(\net\authorize\api\contract\v1\TransactionListSortingType $sorting)
+ {
+ $this->sorting = $sorting;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListResponse.php
new file mode 100644
index 0000000..2a69739
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetTransactionListResponse.php
@@ -0,0 +1,149 @@
+transactions[] = $transaction;
+ return $this;
+ }
+
+ /**
+ * isset transactions
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTransactions($index)
+ {
+ return isset($this->transactions[$index]);
+ }
+
+ /**
+ * unset transactions
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTransactions($index)
+ {
+ unset($this->transactions[$index]);
+ }
+
+ /**
+ * Gets as transactions
+ *
+ * @return \net\authorize\api\contract\v1\TransactionSummaryType[]
+ */
+ public function getTransactions()
+ {
+ return $this->transactions;
+ }
+
+ /**
+ * Sets a new transactions
+ *
+ * @param \net\authorize\api\contract\v1\TransactionSummaryType[] $transactions
+ * @return self
+ */
+ public function setTransactions(array $transactions)
+ {
+ $this->transactions = $transactions;
+ return $this;
+ }
+
+ /**
+ * Gets as totalNumInResultSet
+ *
+ * @return integer
+ */
+ public function getTotalNumInResultSet()
+ {
+ return $this->totalNumInResultSet;
+ }
+
+ /**
+ * Sets a new totalNumInResultSet
+ *
+ * @param integer $totalNumInResultSet
+ * @return self
+ */
+ public function setTotalNumInResultSet($totalNumInResultSet)
+ {
+ $this->totalNumInResultSet = $totalNumInResultSet;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListRequest.php
new file mode 100644
index 0000000..0fbe13e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListRequest.php
@@ -0,0 +1,129 @@
+status;
+ }
+
+ /**
+ * Sets a new status
+ *
+ * @param string $status
+ * @return self
+ */
+ public function setStatus($status)
+ {
+ $this->status = $status;
+ return $this;
+ }
+
+ /**
+ * Gets as sorting
+ *
+ * @return \net\authorize\api\contract\v1\TransactionListSortingType
+ */
+ public function getSorting()
+ {
+ return $this->sorting;
+ }
+
+ /**
+ * Sets a new sorting
+ *
+ * @param \net\authorize\api\contract\v1\TransactionListSortingType $sorting
+ * @return self
+ */
+ public function setSorting(\net\authorize\api\contract\v1\TransactionListSortingType $sorting)
+ {
+ $this->sorting = $sorting;
+ return $this;
+ }
+
+ /**
+ * Gets as paging
+ *
+ * @return \net\authorize\api\contract\v1\PagingType
+ */
+ public function getPaging()
+ {
+ return $this->paging;
+ }
+
+ /**
+ * Sets a new paging
+ *
+ * @param \net\authorize\api\contract\v1\PagingType $paging
+ * @return self
+ */
+ public function setPaging(\net\authorize\api\contract\v1\PagingType $paging)
+ {
+ $this->paging = $paging;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListResponse.php
new file mode 100644
index 0000000..8dfae6a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/GetUnsettledTransactionListResponse.php
@@ -0,0 +1,149 @@
+transactions[] = $transaction;
+ return $this;
+ }
+
+ /**
+ * isset transactions
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTransactions($index)
+ {
+ return isset($this->transactions[$index]);
+ }
+
+ /**
+ * unset transactions
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTransactions($index)
+ {
+ unset($this->transactions[$index]);
+ }
+
+ /**
+ * Gets as transactions
+ *
+ * @return \net\authorize\api\contract\v1\TransactionSummaryType[]
+ */
+ public function getTransactions()
+ {
+ return $this->transactions;
+ }
+
+ /**
+ * Sets a new transactions
+ *
+ * @param \net\authorize\api\contract\v1\TransactionSummaryType[] $transactions
+ * @return self
+ */
+ public function setTransactions(array $transactions)
+ {
+ $this->transactions = $transactions;
+ return $this;
+ }
+
+ /**
+ * Gets as totalNumInResultSet
+ *
+ * @return integer
+ */
+ public function getTotalNumInResultSet()
+ {
+ return $this->totalNumInResultSet;
+ }
+
+ /**
+ * Sets a new totalNumInResultSet
+ *
+ * @param integer $totalNumInResultSet
+ * @return self
+ */
+ public function setTotalNumInResultSet($totalNumInResultSet)
+ {
+ $this->totalNumInResultSet = $totalNumInResultSet;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/HeldTransactionRequestType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/HeldTransactionRequestType.php
new file mode 100644
index 0000000..a451a48
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/HeldTransactionRequestType.php
@@ -0,0 +1,153 @@
+action;
+ }
+
+ /**
+ * Sets a new action
+ *
+ * @param string $action
+ * @return self
+ */
+ public function setAction($action)
+ {
+ $this->action = $action;
+ return $this;
+ }
+
+ /**
+ * Gets as refTransId
+ *
+ * @return string
+ */
+ public function getRefTransId()
+ {
+ return $this->refTransId;
+ }
+
+ /**
+ * Sets a new refTransId
+ *
+ * @param string $refTransId
+ * @return self
+ */
+ public function setRefTransId($refTransId)
+ {
+ $this->refTransId = $refTransId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ImpersonationAuthenticationType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ImpersonationAuthenticationType.php
new file mode 100644
index 0000000..82231db
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ImpersonationAuthenticationType.php
@@ -0,0 +1,153 @@
+partnerLoginId;
+ }
+
+ /**
+ * Sets a new partnerLoginId
+ *
+ * @param string $partnerLoginId
+ * @return self
+ */
+ public function setPartnerLoginId($partnerLoginId)
+ {
+ $this->partnerLoginId = $partnerLoginId;
+ return $this;
+ }
+
+ /**
+ * Gets as partnerTransactionKey
+ *
+ * @return string
+ */
+ public function getPartnerTransactionKey()
+ {
+ return $this->partnerTransactionKey;
+ }
+
+ /**
+ * Sets a new partnerTransactionKey
+ *
+ * @param string $partnerTransactionKey
+ * @return self
+ */
+ public function setPartnerTransactionKey($partnerTransactionKey)
+ {
+ $this->partnerTransactionKey = $partnerTransactionKey;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveRequest.php
new file mode 100644
index 0000000..ca07247
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveRequest.php
@@ -0,0 +1,75 @@
+refId;
+ }
+
+ /**
+ * Sets a new refId
+ *
+ * @param string $refId
+ * @return self
+ */
+ public function setRefId($refId)
+ {
+ $this->refId = $refId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveResponse.php
new file mode 100644
index 0000000..042caaa
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/IsAliveResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyBlockType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyBlockType.php
new file mode 100644
index 0000000..b675983
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyBlockType.php
@@ -0,0 +1,126 @@
+value;
+ }
+
+ /**
+ * Sets a new value
+ *
+ * @param \net\authorize\api\contract\v1\KeyValueType $value
+ * @return self
+ */
+ public function setValue(\net\authorize\api\contract\v1\KeyValueType $value)
+ {
+ $this->value = $value;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType.php
new file mode 100644
index 0000000..2f275d1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType.php
@@ -0,0 +1,127 @@
+dUKPT;
+ }
+
+ /**
+ * Sets a new dUKPT
+ *
+ * @param \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType $dUKPT
+ * @return self
+ */
+ public function setDUKPT(\net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType $dUKPT)
+ {
+ $this->dUKPT = $dUKPT;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType.php
new file mode 100644
index 0000000..b7f79e9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType.php
@@ -0,0 +1,219 @@
+operation;
+ }
+
+ /**
+ * Sets a new operation
+ *
+ * @param string $operation
+ * @return self
+ */
+ public function setOperation($operation)
+ {
+ $this->operation = $operation;
+ return $this;
+ }
+
+ /**
+ * Gets as mode
+ *
+ * @return
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType
+ */
+ public function getMode()
+ {
+ return $this->mode;
+ }
+
+ /**
+ * Sets a new mode
+ *
+ * @param
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType
+ * $mode
+ * @return self
+ */
+ public function setMode(\net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType $mode)
+ {
+ $this->mode = $mode;
+ return $this;
+ }
+
+ /**
+ * Gets as deviceInfo
+ *
+ * @return
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType
+ */
+ public function getDeviceInfo()
+ {
+ return $this->deviceInfo;
+ }
+
+ /**
+ * Sets a new deviceInfo
+ *
+ * @param
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType
+ * $deviceInfo
+ * @return self
+ */
+ public function setDeviceInfo(\net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType $deviceInfo)
+ {
+ $this->deviceInfo = $deviceInfo;
+ return $this;
+ }
+
+ /**
+ * Gets as encryptedData
+ *
+ * @return
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType
+ */
+ public function getEncryptedData()
+ {
+ return $this->encryptedData;
+ }
+
+ /**
+ * Sets a new encryptedData
+ *
+ * @param
+ * \net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType
+ * $encryptedData
+ * @return self
+ */
+ public function setEncryptedData(\net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType $encryptedData)
+ {
+ $this->encryptedData = $encryptedData;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/DeviceInfoAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/DeviceInfoAType.php
new file mode 100644
index 0000000..6a4e620
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/DeviceInfoAType.php
@@ -0,0 +1,123 @@
+description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/EncryptedDataAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/EncryptedDataAType.php
new file mode 100644
index 0000000..20ddfff
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/EncryptedDataAType.php
@@ -0,0 +1,123 @@
+value;
+ }
+
+ /**
+ * Sets a new value
+ *
+ * @param string $value
+ * @return self
+ */
+ public function setValue($value)
+ {
+ $this->value = $value;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/ModeAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/ModeAType.php
new file mode 100644
index 0000000..6308736
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyManagementSchemeType/DUKPTAType/ModeAType.php
@@ -0,0 +1,150 @@
+pIN;
+ }
+
+ /**
+ * Sets a new pIN
+ *
+ * @param string $pIN
+ * @return self
+ */
+ public function setPIN($pIN)
+ {
+ $this->pIN = $pIN;
+ return $this;
+ }
+
+ /**
+ * Gets as data
+ *
+ * @return string
+ */
+ public function getData()
+ {
+ return $this->data;
+ }
+
+ /**
+ * Sets a new data
+ *
+ * @param string $data
+ * @return self
+ */
+ public function setData($data)
+ {
+ $this->data = $data;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyValueType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyValueType.php
new file mode 100644
index 0000000..e64ff3d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/KeyValueType.php
@@ -0,0 +1,180 @@
+encoding;
+ }
+
+ /**
+ * Sets a new encoding
+ *
+ * @param string $encoding
+ * @return self
+ */
+ public function setEncoding($encoding)
+ {
+ $this->encoding = $encoding;
+ return $this;
+ }
+
+ /**
+ * Gets as encryptionAlgorithm
+ *
+ * @return string
+ */
+ public function getEncryptionAlgorithm()
+ {
+ return $this->encryptionAlgorithm;
+ }
+
+ /**
+ * Sets a new encryptionAlgorithm
+ *
+ * @param string $encryptionAlgorithm
+ * @return self
+ */
+ public function setEncryptionAlgorithm($encryptionAlgorithm)
+ {
+ $this->encryptionAlgorithm = $encryptionAlgorithm;
+ return $this;
+ }
+
+ /**
+ * Gets as scheme
+ *
+ * @return \net\authorize\api\contract\v1\KeyManagementSchemeType
+ */
+ public function getScheme()
+ {
+ return $this->scheme;
+ }
+
+ /**
+ * Sets a new scheme
+ *
+ * @param \net\authorize\api\contract\v1\KeyManagementSchemeType $scheme
+ * @return self
+ */
+ public function setScheme(\net\authorize\api\contract\v1\KeyManagementSchemeType $scheme)
+ {
+ $this->scheme = $scheme;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/LineItemType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/LineItemType.php
new file mode 100644
index 0000000..af82a7e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/LineItemType.php
@@ -0,0 +1,801 @@
+itemId;
+ }
+
+ /**
+ * Sets a new itemId
+ *
+ * @param string $itemId
+ * @return self
+ */
+ public function setItemId($itemId)
+ {
+ $this->itemId = $itemId;
+ return $this;
+ }
+
+ /**
+ * Gets as name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+ /**
+ * Gets as quantity
+ *
+ * @return float
+ */
+ public function getQuantity()
+ {
+ return $this->quantity;
+ }
+
+ /**
+ * Sets a new quantity
+ *
+ * @param float $quantity
+ * @return self
+ */
+ public function setQuantity($quantity)
+ {
+ $this->quantity = $quantity;
+ return $this;
+ }
+
+ /**
+ * Gets as unitPrice
+ *
+ * @return float
+ */
+ public function getUnitPrice()
+ {
+ return $this->unitPrice;
+ }
+
+ /**
+ * Sets a new unitPrice
+ *
+ * @param float $unitPrice
+ * @return self
+ */
+ public function setUnitPrice($unitPrice)
+ {
+ $this->unitPrice = $unitPrice;
+ return $this;
+ }
+
+ /**
+ * Gets as taxable
+ *
+ * @return boolean
+ */
+ public function getTaxable()
+ {
+ return $this->taxable;
+ }
+
+ /**
+ * Sets a new taxable
+ *
+ * @param boolean $taxable
+ * @return self
+ */
+ public function setTaxable($taxable)
+ {
+ $this->taxable = $taxable;
+ return $this;
+ }
+
+ /**
+ * Gets as unitOfMeasure
+ *
+ * @return string
+ */
+ public function getUnitOfMeasure()
+ {
+ return $this->unitOfMeasure;
+ }
+
+ /**
+ * Sets a new unitOfMeasure
+ *
+ * @param string $unitOfMeasure
+ * @return self
+ */
+ public function setUnitOfMeasure($unitOfMeasure)
+ {
+ $this->unitOfMeasure = $unitOfMeasure;
+ return $this;
+ }
+
+ /**
+ * Gets as typeOfSupply
+ *
+ * @return string
+ */
+ public function getTypeOfSupply()
+ {
+ return $this->typeOfSupply;
+ }
+
+ /**
+ * Sets a new typeOfSupply
+ *
+ * @param string $typeOfSupply
+ * @return self
+ */
+ public function setTypeOfSupply($typeOfSupply)
+ {
+ $this->typeOfSupply = $typeOfSupply;
+ return $this;
+ }
+
+ /**
+ * Gets as taxRate
+ *
+ * @return float
+ */
+ public function getTaxRate()
+ {
+ return $this->taxRate;
+ }
+
+ /**
+ * Sets a new taxRate
+ *
+ * @param float $taxRate
+ * @return self
+ */
+ public function setTaxRate($taxRate)
+ {
+ $this->taxRate = $taxRate;
+ return $this;
+ }
+
+ /**
+ * Gets as taxAmount
+ *
+ * @return float
+ */
+ public function getTaxAmount()
+ {
+ return $this->taxAmount;
+ }
+
+ /**
+ * Sets a new taxAmount
+ *
+ * @param float $taxAmount
+ * @return self
+ */
+ public function setTaxAmount($taxAmount)
+ {
+ $this->taxAmount = $taxAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as nationalTax
+ *
+ * @return float
+ */
+ public function getNationalTax()
+ {
+ return $this->nationalTax;
+ }
+
+ /**
+ * Sets a new nationalTax
+ *
+ * @param float $nationalTax
+ * @return self
+ */
+ public function setNationalTax($nationalTax)
+ {
+ $this->nationalTax = $nationalTax;
+ return $this;
+ }
+
+ /**
+ * Gets as localTax
+ *
+ * @return float
+ */
+ public function getLocalTax()
+ {
+ return $this->localTax;
+ }
+
+ /**
+ * Sets a new localTax
+ *
+ * @param float $localTax
+ * @return self
+ */
+ public function setLocalTax($localTax)
+ {
+ $this->localTax = $localTax;
+ return $this;
+ }
+
+ /**
+ * Gets as vatRate
+ *
+ * @return float
+ */
+ public function getVatRate()
+ {
+ return $this->vatRate;
+ }
+
+ /**
+ * Sets a new vatRate
+ *
+ * @param float $vatRate
+ * @return self
+ */
+ public function setVatRate($vatRate)
+ {
+ $this->vatRate = $vatRate;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxId
+ *
+ * @return string
+ */
+ public function getAlternateTaxId()
+ {
+ return $this->alternateTaxId;
+ }
+
+ /**
+ * Sets a new alternateTaxId
+ *
+ * @param string $alternateTaxId
+ * @return self
+ */
+ public function setAlternateTaxId($alternateTaxId)
+ {
+ $this->alternateTaxId = $alternateTaxId;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxType
+ *
+ * @return string
+ */
+ public function getAlternateTaxType()
+ {
+ return $this->alternateTaxType;
+ }
+
+ /**
+ * Sets a new alternateTaxType
+ *
+ * @param string $alternateTaxType
+ * @return self
+ */
+ public function setAlternateTaxType($alternateTaxType)
+ {
+ $this->alternateTaxType = $alternateTaxType;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxTypeApplied
+ *
+ * @return string
+ */
+ public function getAlternateTaxTypeApplied()
+ {
+ return $this->alternateTaxTypeApplied;
+ }
+
+ /**
+ * Sets a new alternateTaxTypeApplied
+ *
+ * @param string $alternateTaxTypeApplied
+ * @return self
+ */
+ public function setAlternateTaxTypeApplied($alternateTaxTypeApplied)
+ {
+ $this->alternateTaxTypeApplied = $alternateTaxTypeApplied;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxRate
+ *
+ * @return float
+ */
+ public function getAlternateTaxRate()
+ {
+ return $this->alternateTaxRate;
+ }
+
+ /**
+ * Sets a new alternateTaxRate
+ *
+ * @param float $alternateTaxRate
+ * @return self
+ */
+ public function setAlternateTaxRate($alternateTaxRate)
+ {
+ $this->alternateTaxRate = $alternateTaxRate;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxAmount
+ *
+ * @return float
+ */
+ public function getAlternateTaxAmount()
+ {
+ return $this->alternateTaxAmount;
+ }
+
+ /**
+ * Sets a new alternateTaxAmount
+ *
+ * @param float $alternateTaxAmount
+ * @return self
+ */
+ public function setAlternateTaxAmount($alternateTaxAmount)
+ {
+ $this->alternateTaxAmount = $alternateTaxAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as totalAmount
+ *
+ * @return float
+ */
+ public function getTotalAmount()
+ {
+ return $this->totalAmount;
+ }
+
+ /**
+ * Sets a new totalAmount
+ *
+ * @param float $totalAmount
+ * @return self
+ */
+ public function setTotalAmount($totalAmount)
+ {
+ $this->totalAmount = $totalAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as commodityCode
+ *
+ * @return string
+ */
+ public function getCommodityCode()
+ {
+ return $this->commodityCode;
+ }
+
+ /**
+ * Sets a new commodityCode
+ *
+ * @param string $commodityCode
+ * @return self
+ */
+ public function setCommodityCode($commodityCode)
+ {
+ $this->commodityCode = $commodityCode;
+ return $this;
+ }
+
+ /**
+ * Gets as productCode
+ *
+ * @return string
+ */
+ public function getProductCode()
+ {
+ return $this->productCode;
+ }
+
+ /**
+ * Sets a new productCode
+ *
+ * @param string $productCode
+ * @return self
+ */
+ public function setProductCode($productCode)
+ {
+ $this->productCode = $productCode;
+ return $this;
+ }
+
+ /**
+ * Gets as productSKU
+ *
+ * @return string
+ */
+ public function getProductSKU()
+ {
+ return $this->productSKU;
+ }
+
+ /**
+ * Sets a new productSKU
+ *
+ * @param string $productSKU
+ * @return self
+ */
+ public function setProductSKU($productSKU)
+ {
+ $this->productSKU = $productSKU;
+ return $this;
+ }
+
+ /**
+ * Gets as discountRate
+ *
+ * @return float
+ */
+ public function getDiscountRate()
+ {
+ return $this->discountRate;
+ }
+
+ /**
+ * Sets a new discountRate
+ *
+ * @param float $discountRate
+ * @return self
+ */
+ public function setDiscountRate($discountRate)
+ {
+ $this->discountRate = $discountRate;
+ return $this;
+ }
+
+ /**
+ * Gets as discountAmount
+ *
+ * @return float
+ */
+ public function getDiscountAmount()
+ {
+ return $this->discountAmount;
+ }
+
+ /**
+ * Sets a new discountAmount
+ *
+ * @param float $discountAmount
+ * @return self
+ */
+ public function setDiscountAmount($discountAmount)
+ {
+ $this->discountAmount = $discountAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as taxIncludedInTotal
+ *
+ * @return boolean
+ */
+ public function getTaxIncludedInTotal()
+ {
+ return $this->taxIncludedInTotal;
+ }
+
+ /**
+ * Sets a new taxIncludedInTotal
+ *
+ * @param boolean $taxIncludedInTotal
+ * @return self
+ */
+ public function setTaxIncludedInTotal($taxIncludedInTotal)
+ {
+ $this->taxIncludedInTotal = $taxIncludedInTotal;
+ return $this;
+ }
+
+ /**
+ * Gets as taxIsAfterDiscount
+ *
+ * @return boolean
+ */
+ public function getTaxIsAfterDiscount()
+ {
+ return $this->taxIsAfterDiscount;
+ }
+
+ /**
+ * Sets a new taxIsAfterDiscount
+ *
+ * @param boolean $taxIsAfterDiscount
+ * @return self
+ */
+ public function setTaxIsAfterDiscount($taxIsAfterDiscount)
+ {
+ $this->taxIsAfterDiscount = $taxIsAfterDiscount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ListOfAUDetailsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ListOfAUDetailsType.php
new file mode 100644
index 0000000..9d02d8e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ListOfAUDetailsType.php
@@ -0,0 +1,221 @@
+auUpdate[] = $auUpdate;
+ return $this;
+ }
+
+ /**
+ * isset auUpdate
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetAuUpdate($index)
+ {
+ return isset($this->auUpdate[$index]);
+ }
+
+ /**
+ * unset auUpdate
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetAuUpdate($index)
+ {
+ unset($this->auUpdate[$index]);
+ }
+
+ /**
+ * Gets as auUpdate
+ *
+ * @return \net\authorize\api\contract\v1\AuUpdateType[]
+ */
+ public function getAuUpdate()
+ {
+ return $this->auUpdate;
+ }
+
+ /**
+ * Sets a new auUpdate
+ *
+ * @param \net\authorize\api\contract\v1\AuUpdateType[] $auUpdate
+ * @return self
+ */
+ public function setAuUpdate(array $auUpdate)
+ {
+ $this->auUpdate = $auUpdate;
+ return $this;
+ }
+
+ /**
+ * Adds as auDelete
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\AuDeleteType $auDelete
+ */
+ public function addToAuDelete(\net\authorize\api\contract\v1\AuDeleteType $auDelete)
+ {
+ $this->auDelete[] = $auDelete;
+ return $this;
+ }
+
+ /**
+ * isset auDelete
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetAuDelete($index)
+ {
+ return isset($this->auDelete[$index]);
+ }
+
+ /**
+ * unset auDelete
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetAuDelete($index)
+ {
+ unset($this->auDelete[$index]);
+ }
+
+ /**
+ * Gets as auDelete
+ *
+ * @return \net\authorize\api\contract\v1\AuDeleteType[]
+ */
+ public function getAuDelete()
+ {
+ return $this->auDelete;
+ }
+
+ /**
+ * Sets a new auDelete
+ *
+ * @param \net\authorize\api\contract\v1\AuDeleteType[] $auDelete
+ * @return self
+ */
+ public function setAuDelete(array $auDelete)
+ {
+ $this->auDelete = $auDelete;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutRequest.php
new file mode 100644
index 0000000..9301f8a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutRequest.php
@@ -0,0 +1,48 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutResponse.php
new file mode 100644
index 0000000..05fcddb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/LogoutResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantAuthenticationType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantAuthenticationType.php
new file mode 100644
index 0000000..bca67f7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantAuthenticationType.php
@@ -0,0 +1,344 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionKey
+ *
+ * @return string
+ */
+ public function getTransactionKey()
+ {
+ return $this->transactionKey;
+ }
+
+ /**
+ * Sets a new transactionKey
+ *
+ * @param string $transactionKey
+ * @return self
+ */
+ public function setTransactionKey($transactionKey)
+ {
+ $this->transactionKey = $transactionKey;
+ return $this;
+ }
+
+ /**
+ * Gets as sessionToken
+ *
+ * @return string
+ */
+ public function getSessionToken()
+ {
+ return $this->sessionToken;
+ }
+
+ /**
+ * Sets a new sessionToken
+ *
+ * @param string $sessionToken
+ * @return self
+ */
+ public function setSessionToken($sessionToken)
+ {
+ $this->sessionToken = $sessionToken;
+ return $this;
+ }
+
+ /**
+ * Gets as password
+ *
+ * @return string
+ */
+ public function getPassword()
+ {
+ return $this->password;
+ }
+
+ /**
+ * Sets a new password
+ *
+ * @param string $password
+ * @return self
+ */
+ public function setPassword($password)
+ {
+ $this->password = $password;
+ return $this;
+ }
+
+ /**
+ * Gets as impersonationAuthentication
+ *
+ * @return \net\authorize\api\contract\v1\ImpersonationAuthenticationType
+ */
+ public function getImpersonationAuthentication()
+ {
+ return $this->impersonationAuthentication;
+ }
+
+ /**
+ * Sets a new impersonationAuthentication
+ *
+ * @param \net\authorize\api\contract\v1\ImpersonationAuthenticationType
+ * $impersonationAuthentication
+ * @return self
+ */
+ public function setImpersonationAuthentication(\net\authorize\api\contract\v1\ImpersonationAuthenticationType $impersonationAuthentication)
+ {
+ $this->impersonationAuthentication = $impersonationAuthentication;
+ return $this;
+ }
+
+ /**
+ * Gets as fingerPrint
+ *
+ * @return \net\authorize\api\contract\v1\FingerPrintType
+ */
+ public function getFingerPrint()
+ {
+ return $this->fingerPrint;
+ }
+
+ /**
+ * Sets a new fingerPrint
+ *
+ * @param \net\authorize\api\contract\v1\FingerPrintType $fingerPrint
+ * @return self
+ */
+ public function setFingerPrint(\net\authorize\api\contract\v1\FingerPrintType $fingerPrint)
+ {
+ $this->fingerPrint = $fingerPrint;
+ return $this;
+ }
+
+ /**
+ * Gets as clientKey
+ *
+ * @return string
+ */
+ public function getClientKey()
+ {
+ return $this->clientKey;
+ }
+
+ /**
+ * Sets a new clientKey
+ *
+ * @param string $clientKey
+ * @return self
+ */
+ public function setClientKey($clientKey)
+ {
+ $this->clientKey = $clientKey;
+ return $this;
+ }
+
+ /**
+ * Gets as accessToken
+ *
+ * @return string
+ */
+ public function getAccessToken()
+ {
+ return $this->accessToken;
+ }
+
+ /**
+ * Sets a new accessToken
+ *
+ * @param string $accessToken
+ * @return self
+ */
+ public function setAccessToken($accessToken)
+ {
+ $this->accessToken = $accessToken;
+ return $this;
+ }
+
+ /**
+ * Gets as mobileDeviceId
+ *
+ * @return string
+ */
+ public function getMobileDeviceId()
+ {
+ return $this->mobileDeviceId;
+ }
+
+ /**
+ * Sets a new mobileDeviceId
+ *
+ * @param string $mobileDeviceId
+ * @return self
+ */
+ public function setMobileDeviceId($mobileDeviceId)
+ {
+ $this->mobileDeviceId = $mobileDeviceId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantContactType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantContactType.php
new file mode 100644
index 0000000..a634225
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MerchantContactType.php
@@ -0,0 +1,261 @@
+merchantName;
+ }
+
+ /**
+ * Sets a new merchantName
+ *
+ * @param string $merchantName
+ * @return self
+ */
+ public function setMerchantName($merchantName)
+ {
+ $this->merchantName = $merchantName;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantAddress
+ *
+ * @return string
+ */
+ public function getMerchantAddress()
+ {
+ return $this->merchantAddress;
+ }
+
+ /**
+ * Sets a new merchantAddress
+ *
+ * @param string $merchantAddress
+ * @return self
+ */
+ public function setMerchantAddress($merchantAddress)
+ {
+ $this->merchantAddress = $merchantAddress;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantCity
+ *
+ * @return string
+ */
+ public function getMerchantCity()
+ {
+ return $this->merchantCity;
+ }
+
+ /**
+ * Sets a new merchantCity
+ *
+ * @param string $merchantCity
+ * @return self
+ */
+ public function setMerchantCity($merchantCity)
+ {
+ $this->merchantCity = $merchantCity;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantState
+ *
+ * @return string
+ */
+ public function getMerchantState()
+ {
+ return $this->merchantState;
+ }
+
+ /**
+ * Sets a new merchantState
+ *
+ * @param string $merchantState
+ * @return self
+ */
+ public function setMerchantState($merchantState)
+ {
+ $this->merchantState = $merchantState;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantZip
+ *
+ * @return string
+ */
+ public function getMerchantZip()
+ {
+ return $this->merchantZip;
+ }
+
+ /**
+ * Sets a new merchantZip
+ *
+ * @param string $merchantZip
+ * @return self
+ */
+ public function setMerchantZip($merchantZip)
+ {
+ $this->merchantZip = $merchantZip;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantPhone
+ *
+ * @return string
+ */
+ public function getMerchantPhone()
+ {
+ return $this->merchantPhone;
+ }
+
+ /**
+ * Sets a new merchantPhone
+ *
+ * @param string $merchantPhone
+ * @return self
+ */
+ public function setMerchantPhone($merchantPhone)
+ {
+ $this->merchantPhone = $merchantPhone;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType.php
new file mode 100644
index 0000000..a785dc1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType.php
@@ -0,0 +1,187 @@
+resultCode;
+ }
+
+ /**
+ * Sets a new resultCode
+ *
+ * @param string $resultCode
+ * @return self
+ */
+ public function setResultCode($resultCode)
+ {
+ $this->resultCode = $resultCode;
+ return $this;
+ }
+
+ /**
+ * Adds as message
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\MessagesType\MessageAType $message
+ */
+ public function addToMessage(\net\authorize\api\contract\v1\MessagesType\MessageAType $message)
+ {
+ $this->message[] = $message;
+ return $this;
+ }
+
+ /**
+ * isset message
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetMessage($index)
+ {
+ return isset($this->message[$index]);
+ }
+
+ /**
+ * unset message
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetMessage($index)
+ {
+ unset($this->message[$index]);
+ }
+
+ /**
+ * Gets as message
+ *
+ * @return \net\authorize\api\contract\v1\MessagesType\MessageAType[]
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Sets a new message
+ *
+ * @param \net\authorize\api\contract\v1\MessagesType\MessageAType[] $message
+ * @return self
+ */
+ public function setMessage(array $message)
+ {
+ $this->message = $message;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType/MessageAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType/MessageAType.php
new file mode 100644
index 0000000..0412b24
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MessagesType/MessageAType.php
@@ -0,0 +1,150 @@
+code;
+ }
+
+ /**
+ * Sets a new code
+ *
+ * @param string $code
+ * @return self
+ */
+ public function setCode($code)
+ {
+ $this->code = $code;
+ return $this;
+ }
+
+ /**
+ * Gets as text
+ *
+ * @return string
+ */
+ public function getText()
+ {
+ return $this->text;
+ }
+
+ /**
+ * Sets a new text
+ *
+ * @param string $text
+ * @return self
+ */
+ public function setText($text)
+ {
+ $this->text = $text;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginRequest.php
new file mode 100644
index 0000000..2d95f03
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginRequest.php
@@ -0,0 +1,48 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginResponse.php
new file mode 100644
index 0000000..56bb4fb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceLoginResponse.php
@@ -0,0 +1,176 @@
+merchantContact;
+ }
+
+ /**
+ * Sets a new merchantContact
+ *
+ * @param \net\authorize\api\contract\v1\MerchantContactType $merchantContact
+ * @return self
+ */
+ public function setMerchantContact(\net\authorize\api\contract\v1\MerchantContactType $merchantContact)
+ {
+ $this->merchantContact = $merchantContact;
+ return $this;
+ }
+
+ /**
+ * Adds as permission
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\PermissionType $permission
+ */
+ public function addToUserPermissions(\net\authorize\api\contract\v1\PermissionType $permission)
+ {
+ $this->userPermissions[] = $permission;
+ return $this;
+ }
+
+ /**
+ * isset userPermissions
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetUserPermissions($index)
+ {
+ return isset($this->userPermissions[$index]);
+ }
+
+ /**
+ * unset userPermissions
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetUserPermissions($index)
+ {
+ unset($this->userPermissions[$index]);
+ }
+
+ /**
+ * Gets as userPermissions
+ *
+ * @return \net\authorize\api\contract\v1\PermissionType[]
+ */
+ public function getUserPermissions()
+ {
+ return $this->userPermissions;
+ }
+
+ /**
+ * Sets a new userPermissions
+ *
+ * @param \net\authorize\api\contract\v1\PermissionType[] $userPermissions
+ * @return self
+ */
+ public function setUserPermissions(array $userPermissions)
+ {
+ $this->userPermissions = $userPermissions;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantAccount
+ *
+ * @return \net\authorize\api\contract\v1\TransRetailInfoType
+ */
+ public function getMerchantAccount()
+ {
+ return $this->merchantAccount;
+ }
+
+ /**
+ * Sets a new merchantAccount
+ *
+ * @param \net\authorize\api\contract\v1\TransRetailInfoType $merchantAccount
+ * @return self
+ */
+ public function setMerchantAccount(\net\authorize\api\contract\v1\TransRetailInfoType $merchantAccount)
+ {
+ $this->merchantAccount = $merchantAccount;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationRequest.php
new file mode 100644
index 0000000..0db1a5a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationRequest.php
@@ -0,0 +1,75 @@
+mobileDevice;
+ }
+
+ /**
+ * Sets a new mobileDevice
+ *
+ * @param \net\authorize\api\contract\v1\MobileDeviceType $mobileDevice
+ * @return self
+ */
+ public function setMobileDevice(\net\authorize\api\contract\v1\MobileDeviceType $mobileDevice)
+ {
+ $this->mobileDevice = $mobileDevice;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationResponse.php
new file mode 100644
index 0000000..0be0ce9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceRegistrationResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceType.php
new file mode 100644
index 0000000..db0aaac
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/MobileDeviceType.php
@@ -0,0 +1,234 @@
+mobileDeviceId;
+ }
+
+ /**
+ * Sets a new mobileDeviceId
+ *
+ * @param string $mobileDeviceId
+ * @return self
+ */
+ public function setMobileDeviceId($mobileDeviceId)
+ {
+ $this->mobileDeviceId = $mobileDeviceId;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+ /**
+ * Gets as phoneNumber
+ *
+ * @return string
+ */
+ public function getPhoneNumber()
+ {
+ return $this->phoneNumber;
+ }
+
+ /**
+ * Sets a new phoneNumber
+ *
+ * @param string $phoneNumber
+ * @return self
+ */
+ public function setPhoneNumber($phoneNumber)
+ {
+ $this->phoneNumber = $phoneNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as devicePlatform
+ *
+ * @return string
+ */
+ public function getDevicePlatform()
+ {
+ return $this->devicePlatform;
+ }
+
+ /**
+ * Sets a new devicePlatform
+ *
+ * @param string $devicePlatform
+ * @return self
+ */
+ public function setDevicePlatform($devicePlatform)
+ {
+ $this->devicePlatform = $devicePlatform;
+ return $this;
+ }
+
+ /**
+ * Gets as deviceActivation
+ *
+ * @return string
+ */
+ public function getDeviceActivation()
+ {
+ return $this->deviceActivation;
+ }
+
+ /**
+ * Sets a new deviceActivation
+ *
+ * @param string $deviceActivation
+ * @return self
+ */
+ public function setDeviceActivation($deviceActivation)
+ {
+ $this->deviceActivation = $deviceActivation;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/NameAndAddressType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/NameAndAddressType.php
new file mode 100644
index 0000000..67c17fb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/NameAndAddressType.php
@@ -0,0 +1,315 @@
+firstName;
+ }
+
+ /**
+ * Sets a new firstName
+ *
+ * @param string $firstName
+ * @return self
+ */
+ public function setFirstName($firstName)
+ {
+ $this->firstName = $firstName;
+ return $this;
+ }
+
+ /**
+ * Gets as lastName
+ *
+ * @return string
+ */
+ public function getLastName()
+ {
+ return $this->lastName;
+ }
+
+ /**
+ * Sets a new lastName
+ *
+ * @param string $lastName
+ * @return self
+ */
+ public function setLastName($lastName)
+ {
+ $this->lastName = $lastName;
+ return $this;
+ }
+
+ /**
+ * Gets as company
+ *
+ * @return string
+ */
+ public function getCompany()
+ {
+ return $this->company;
+ }
+
+ /**
+ * Sets a new company
+ *
+ * @param string $company
+ * @return self
+ */
+ public function setCompany($company)
+ {
+ $this->company = $company;
+ return $this;
+ }
+
+ /**
+ * Gets as address
+ *
+ * @return string
+ */
+ public function getAddress()
+ {
+ return $this->address;
+ }
+
+ /**
+ * Sets a new address
+ *
+ * @param string $address
+ * @return self
+ */
+ public function setAddress($address)
+ {
+ $this->address = $address;
+ return $this;
+ }
+
+ /**
+ * Gets as city
+ *
+ * @return string
+ */
+ public function getCity()
+ {
+ return $this->city;
+ }
+
+ /**
+ * Sets a new city
+ *
+ * @param string $city
+ * @return self
+ */
+ public function setCity($city)
+ {
+ $this->city = $city;
+ return $this;
+ }
+
+ /**
+ * Gets as state
+ *
+ * @return string
+ */
+ public function getState()
+ {
+ return $this->state;
+ }
+
+ /**
+ * Sets a new state
+ *
+ * @param string $state
+ * @return self
+ */
+ public function setState($state)
+ {
+ $this->state = $state;
+ return $this;
+ }
+
+ /**
+ * Gets as zip
+ *
+ * @return string
+ */
+ public function getZip()
+ {
+ return $this->zip;
+ }
+
+ /**
+ * Sets a new zip
+ *
+ * @param string $zip
+ * @return self
+ */
+ public function setZip($zip)
+ {
+ $this->zip = $zip;
+ return $this;
+ }
+
+ /**
+ * Gets as country
+ *
+ * @return string
+ */
+ public function getCountry()
+ {
+ return $this->country;
+ }
+
+ /**
+ * Sets a new country
+ *
+ * @param string $country
+ * @return self
+ */
+ public function setCountry($country)
+ {
+ $this->country = $country;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/OpaqueDataType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/OpaqueDataType.php
new file mode 100644
index 0000000..f8bf01e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/OpaqueDataType.php
@@ -0,0 +1,180 @@
+dataDescriptor;
+ }
+
+ /**
+ * Sets a new dataDescriptor
+ *
+ * @param string $dataDescriptor
+ * @return self
+ */
+ public function setDataDescriptor($dataDescriptor)
+ {
+ $this->dataDescriptor = $dataDescriptor;
+ return $this;
+ }
+
+ /**
+ * Gets as dataValue
+ *
+ * @return string
+ */
+ public function getDataValue()
+ {
+ return $this->dataValue;
+ }
+
+ /**
+ * Sets a new dataValue
+ *
+ * @param string $dataValue
+ * @return self
+ */
+ public function setDataValue($dataValue)
+ {
+ $this->dataValue = $dataValue;
+ return $this;
+ }
+
+ /**
+ * Gets as dataKey
+ *
+ * @return string
+ */
+ public function getDataKey()
+ {
+ return $this->dataKey;
+ }
+
+ /**
+ * Sets a new dataKey
+ *
+ * @param string $dataKey
+ * @return self
+ */
+ public function setDataKey($dataKey)
+ {
+ $this->dataKey = $dataKey;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderExType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderExType.php
new file mode 100644
index 0000000..156f766
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderExType.php
@@ -0,0 +1,126 @@
+purchaseOrderNumber;
+ }
+
+ /**
+ * Sets a new purchaseOrderNumber
+ *
+ * @param string $purchaseOrderNumber
+ * @return self
+ */
+ public function setPurchaseOrderNumber($purchaseOrderNumber)
+ {
+ $this->purchaseOrderNumber = $purchaseOrderNumber;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderType.php
new file mode 100644
index 0000000..29f3c7f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/OrderType.php
@@ -0,0 +1,585 @@
+invoiceNumber;
+ }
+
+ /**
+ * Sets a new invoiceNumber
+ *
+ * @param string $invoiceNumber
+ * @return self
+ */
+ public function setInvoiceNumber($invoiceNumber)
+ {
+ $this->invoiceNumber = $invoiceNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+ /**
+ * Gets as discountAmount
+ *
+ * @return float
+ */
+ public function getDiscountAmount()
+ {
+ return $this->discountAmount;
+ }
+
+ /**
+ * Sets a new discountAmount
+ *
+ * @param float $discountAmount
+ * @return self
+ */
+ public function setDiscountAmount($discountAmount)
+ {
+ $this->discountAmount = $discountAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as taxIsAfterDiscount
+ *
+ * @return boolean
+ */
+ public function getTaxIsAfterDiscount()
+ {
+ return $this->taxIsAfterDiscount;
+ }
+
+ /**
+ * Sets a new taxIsAfterDiscount
+ *
+ * @param boolean $taxIsAfterDiscount
+ * @return self
+ */
+ public function setTaxIsAfterDiscount($taxIsAfterDiscount)
+ {
+ $this->taxIsAfterDiscount = $taxIsAfterDiscount;
+ return $this;
+ }
+
+ /**
+ * Gets as totalTaxTypeCode
+ *
+ * @return string
+ */
+ public function getTotalTaxTypeCode()
+ {
+ return $this->totalTaxTypeCode;
+ }
+
+ /**
+ * Sets a new totalTaxTypeCode
+ *
+ * @param string $totalTaxTypeCode
+ * @return self
+ */
+ public function setTotalTaxTypeCode($totalTaxTypeCode)
+ {
+ $this->totalTaxTypeCode = $totalTaxTypeCode;
+ return $this;
+ }
+
+ /**
+ * Gets as purchaserVATRegistrationNumber
+ *
+ * @return string
+ */
+ public function getPurchaserVATRegistrationNumber()
+ {
+ return $this->purchaserVATRegistrationNumber;
+ }
+
+ /**
+ * Sets a new purchaserVATRegistrationNumber
+ *
+ * @param string $purchaserVATRegistrationNumber
+ * @return self
+ */
+ public function setPurchaserVATRegistrationNumber($purchaserVATRegistrationNumber)
+ {
+ $this->purchaserVATRegistrationNumber = $purchaserVATRegistrationNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantVATRegistrationNumber
+ *
+ * @return string
+ */
+ public function getMerchantVATRegistrationNumber()
+ {
+ return $this->merchantVATRegistrationNumber;
+ }
+
+ /**
+ * Sets a new merchantVATRegistrationNumber
+ *
+ * @param string $merchantVATRegistrationNumber
+ * @return self
+ */
+ public function setMerchantVATRegistrationNumber($merchantVATRegistrationNumber)
+ {
+ $this->merchantVATRegistrationNumber = $merchantVATRegistrationNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as vatInvoiceReferenceNumber
+ *
+ * @return string
+ */
+ public function getVatInvoiceReferenceNumber()
+ {
+ return $this->vatInvoiceReferenceNumber;
+ }
+
+ /**
+ * Sets a new vatInvoiceReferenceNumber
+ *
+ * @param string $vatInvoiceReferenceNumber
+ * @return self
+ */
+ public function setVatInvoiceReferenceNumber($vatInvoiceReferenceNumber)
+ {
+ $this->vatInvoiceReferenceNumber = $vatInvoiceReferenceNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as purchaserCode
+ *
+ * @return string
+ */
+ public function getPurchaserCode()
+ {
+ return $this->purchaserCode;
+ }
+
+ /**
+ * Sets a new purchaserCode
+ *
+ * @param string $purchaserCode
+ * @return self
+ */
+ public function setPurchaserCode($purchaserCode)
+ {
+ $this->purchaserCode = $purchaserCode;
+ return $this;
+ }
+
+ /**
+ * Gets as summaryCommodityCode
+ *
+ * @return string
+ */
+ public function getSummaryCommodityCode()
+ {
+ return $this->summaryCommodityCode;
+ }
+
+ /**
+ * Sets a new summaryCommodityCode
+ *
+ * @param string $summaryCommodityCode
+ * @return self
+ */
+ public function setSummaryCommodityCode($summaryCommodityCode)
+ {
+ $this->summaryCommodityCode = $summaryCommodityCode;
+ return $this;
+ }
+
+ /**
+ * Gets as purchaseOrderDateUTC
+ *
+ * @return \DateTime
+ */
+ public function getPurchaseOrderDateUTC()
+ {
+ return $this->purchaseOrderDateUTC;
+ }
+
+ /**
+ * Sets a new purchaseOrderDateUTC
+ *
+ * @param \DateTime $purchaseOrderDateUTC
+ * @return self
+ */
+ public function setPurchaseOrderDateUTC(\DateTime $purchaseOrderDateUTC)
+ {
+ $this->purchaseOrderDateUTC = $purchaseOrderDateUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as supplierOrderReference
+ *
+ * @return string
+ */
+ public function getSupplierOrderReference()
+ {
+ return $this->supplierOrderReference;
+ }
+
+ /**
+ * Sets a new supplierOrderReference
+ *
+ * @param string $supplierOrderReference
+ * @return self
+ */
+ public function setSupplierOrderReference($supplierOrderReference)
+ {
+ $this->supplierOrderReference = $supplierOrderReference;
+ return $this;
+ }
+
+ /**
+ * Gets as authorizedContactName
+ *
+ * @return string
+ */
+ public function getAuthorizedContactName()
+ {
+ return $this->authorizedContactName;
+ }
+
+ /**
+ * Sets a new authorizedContactName
+ *
+ * @param string $authorizedContactName
+ * @return self
+ */
+ public function setAuthorizedContactName($authorizedContactName)
+ {
+ $this->authorizedContactName = $authorizedContactName;
+ return $this;
+ }
+
+ /**
+ * Gets as cardAcceptorRefNumber
+ *
+ * @return string
+ */
+ public function getCardAcceptorRefNumber()
+ {
+ return $this->cardAcceptorRefNumber;
+ }
+
+ /**
+ * Sets a new cardAcceptorRefNumber
+ *
+ * @param string $cardAcceptorRefNumber
+ * @return self
+ */
+ public function setCardAcceptorRefNumber($cardAcceptorRefNumber)
+ {
+ $this->cardAcceptorRefNumber = $cardAcceptorRefNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as amexDataTAA1
+ *
+ * @return string
+ */
+ public function getAmexDataTAA1()
+ {
+ return $this->amexDataTAA1;
+ }
+
+ /**
+ * Sets a new amexDataTAA1
+ *
+ * @param string $amexDataTAA1
+ * @return self
+ */
+ public function setAmexDataTAA1($amexDataTAA1)
+ {
+ $this->amexDataTAA1 = $amexDataTAA1;
+ return $this;
+ }
+
+ /**
+ * Gets as amexDataTAA2
+ *
+ * @return string
+ */
+ public function getAmexDataTAA2()
+ {
+ return $this->amexDataTAA2;
+ }
+
+ /**
+ * Sets a new amexDataTAA2
+ *
+ * @param string $amexDataTAA2
+ * @return self
+ */
+ public function setAmexDataTAA2($amexDataTAA2)
+ {
+ $this->amexDataTAA2 = $amexDataTAA2;
+ return $this;
+ }
+
+ /**
+ * Gets as amexDataTAA3
+ *
+ * @return string
+ */
+ public function getAmexDataTAA3()
+ {
+ return $this->amexDataTAA3;
+ }
+
+ /**
+ * Sets a new amexDataTAA3
+ *
+ * @param string $amexDataTAA3
+ * @return self
+ */
+ public function setAmexDataTAA3($amexDataTAA3)
+ {
+ $this->amexDataTAA3 = $amexDataTAA3;
+ return $this;
+ }
+
+ /**
+ * Gets as amexDataTAA4
+ *
+ * @return string
+ */
+ public function getAmexDataTAA4()
+ {
+ return $this->amexDataTAA4;
+ }
+
+ /**
+ * Sets a new amexDataTAA4
+ *
+ * @param string $amexDataTAA4
+ * @return self
+ */
+ public function setAmexDataTAA4($amexDataTAA4)
+ {
+ $this->amexDataTAA4 = $amexDataTAA4;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/OtherTaxType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/OtherTaxType.php
new file mode 100644
index 0000000..23083d3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/OtherTaxType.php
@@ -0,0 +1,261 @@
+nationalTaxAmount;
+ }
+
+ /**
+ * Sets a new nationalTaxAmount
+ *
+ * @param float $nationalTaxAmount
+ * @return self
+ */
+ public function setNationalTaxAmount($nationalTaxAmount)
+ {
+ $this->nationalTaxAmount = $nationalTaxAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as localTaxAmount
+ *
+ * @return float
+ */
+ public function getLocalTaxAmount()
+ {
+ return $this->localTaxAmount;
+ }
+
+ /**
+ * Sets a new localTaxAmount
+ *
+ * @param float $localTaxAmount
+ * @return self
+ */
+ public function setLocalTaxAmount($localTaxAmount)
+ {
+ $this->localTaxAmount = $localTaxAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxAmount
+ *
+ * @return float
+ */
+ public function getAlternateTaxAmount()
+ {
+ return $this->alternateTaxAmount;
+ }
+
+ /**
+ * Sets a new alternateTaxAmount
+ *
+ * @param float $alternateTaxAmount
+ * @return self
+ */
+ public function setAlternateTaxAmount($alternateTaxAmount)
+ {
+ $this->alternateTaxAmount = $alternateTaxAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as alternateTaxId
+ *
+ * @return string
+ */
+ public function getAlternateTaxId()
+ {
+ return $this->alternateTaxId;
+ }
+
+ /**
+ * Sets a new alternateTaxId
+ *
+ * @param string $alternateTaxId
+ * @return self
+ */
+ public function setAlternateTaxId($alternateTaxId)
+ {
+ $this->alternateTaxId = $alternateTaxId;
+ return $this;
+ }
+
+ /**
+ * Gets as vatTaxRate
+ *
+ * @return float
+ */
+ public function getVatTaxRate()
+ {
+ return $this->vatTaxRate;
+ }
+
+ /**
+ * Sets a new vatTaxRate
+ *
+ * @param float $vatTaxRate
+ * @return self
+ */
+ public function setVatTaxRate($vatTaxRate)
+ {
+ $this->vatTaxRate = $vatTaxRate;
+ return $this;
+ }
+
+ /**
+ * Gets as vatTaxAmount
+ *
+ * @return float
+ */
+ public function getVatTaxAmount()
+ {
+ return $this->vatTaxAmount;
+ }
+
+ /**
+ * Sets a new vatTaxAmount
+ *
+ * @param float $vatTaxAmount
+ * @return self
+ */
+ public function setVatTaxAmount($vatTaxAmount)
+ {
+ $this->vatTaxAmount = $vatTaxAmount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PagingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PagingType.php
new file mode 100644
index 0000000..0793524
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PagingType.php
@@ -0,0 +1,153 @@
+limit;
+ }
+
+ /**
+ * Sets a new limit
+ *
+ * @param integer $limit
+ * @return self
+ */
+ public function setLimit($limit)
+ {
+ $this->limit = $limit;
+ return $this;
+ }
+
+ /**
+ * Gets as offset
+ *
+ * @return integer
+ */
+ public function getOffset()
+ {
+ return $this->offset;
+ }
+
+ /**
+ * Sets a new offset
+ *
+ * @param integer $offset
+ * @return self
+ */
+ public function setOffset($offset)
+ {
+ $this->offset = $offset;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PayPalType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PayPalType.php
new file mode 100644
index 0000000..3965991
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PayPalType.php
@@ -0,0 +1,261 @@
+successUrl;
+ }
+
+ /**
+ * Sets a new successUrl
+ *
+ * @param string $successUrl
+ * @return self
+ */
+ public function setSuccessUrl($successUrl)
+ {
+ $this->successUrl = $successUrl;
+ return $this;
+ }
+
+ /**
+ * Gets as cancelUrl
+ *
+ * @return string
+ */
+ public function getCancelUrl()
+ {
+ return $this->cancelUrl;
+ }
+
+ /**
+ * Sets a new cancelUrl
+ *
+ * @param string $cancelUrl
+ * @return self
+ */
+ public function setCancelUrl($cancelUrl)
+ {
+ $this->cancelUrl = $cancelUrl;
+ return $this;
+ }
+
+ /**
+ * Gets as paypalLc
+ *
+ * @return string
+ */
+ public function getPaypalLc()
+ {
+ return $this->paypalLc;
+ }
+
+ /**
+ * Sets a new paypalLc
+ *
+ * @param string $paypalLc
+ * @return self
+ */
+ public function setPaypalLc($paypalLc)
+ {
+ $this->paypalLc = $paypalLc;
+ return $this;
+ }
+
+ /**
+ * Gets as paypalHdrImg
+ *
+ * @return string
+ */
+ public function getPaypalHdrImg()
+ {
+ return $this->paypalHdrImg;
+ }
+
+ /**
+ * Sets a new paypalHdrImg
+ *
+ * @param string $paypalHdrImg
+ * @return self
+ */
+ public function setPaypalHdrImg($paypalHdrImg)
+ {
+ $this->paypalHdrImg = $paypalHdrImg;
+ return $this;
+ }
+
+ /**
+ * Gets as paypalPayflowcolor
+ *
+ * @return string
+ */
+ public function getPaypalPayflowcolor()
+ {
+ return $this->paypalPayflowcolor;
+ }
+
+ /**
+ * Sets a new paypalPayflowcolor
+ *
+ * @param string $paypalPayflowcolor
+ * @return self
+ */
+ public function setPaypalPayflowcolor($paypalPayflowcolor)
+ {
+ $this->paypalPayflowcolor = $paypalPayflowcolor;
+ return $this;
+ }
+
+ /**
+ * Gets as payerID
+ *
+ * @return string
+ */
+ public function getPayerID()
+ {
+ return $this->payerID;
+ }
+
+ /**
+ * Sets a new payerID
+ *
+ * @param string $payerID
+ * @return self
+ */
+ public function setPayerID($payerID)
+ {
+ $this->payerID = $payerID;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentDetailsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentDetailsType.php
new file mode 100644
index 0000000..e4f26e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentDetailsType.php
@@ -0,0 +1,369 @@
+currency;
+ }
+
+ /**
+ * Sets a new currency
+ *
+ * @param string $currency
+ * @return self
+ */
+ public function setCurrency($currency)
+ {
+ $this->currency = $currency;
+ return $this;
+ }
+
+ /**
+ * Gets as promoCode
+ *
+ * @return string
+ */
+ public function getPromoCode()
+ {
+ return $this->promoCode;
+ }
+
+ /**
+ * Sets a new promoCode
+ *
+ * @param string $promoCode
+ * @return self
+ */
+ public function setPromoCode($promoCode)
+ {
+ $this->promoCode = $promoCode;
+ return $this;
+ }
+
+ /**
+ * Gets as misc
+ *
+ * @return string
+ */
+ public function getMisc()
+ {
+ return $this->misc;
+ }
+
+ /**
+ * Sets a new misc
+ *
+ * @param string $misc
+ * @return self
+ */
+ public function setMisc($misc)
+ {
+ $this->misc = $misc;
+ return $this;
+ }
+
+ /**
+ * Gets as giftWrap
+ *
+ * @return string
+ */
+ public function getGiftWrap()
+ {
+ return $this->giftWrap;
+ }
+
+ /**
+ * Sets a new giftWrap
+ *
+ * @param string $giftWrap
+ * @return self
+ */
+ public function setGiftWrap($giftWrap)
+ {
+ $this->giftWrap = $giftWrap;
+ return $this;
+ }
+
+ /**
+ * Gets as discount
+ *
+ * @return string
+ */
+ public function getDiscount()
+ {
+ return $this->discount;
+ }
+
+ /**
+ * Sets a new discount
+ *
+ * @param string $discount
+ * @return self
+ */
+ public function setDiscount($discount)
+ {
+ $this->discount = $discount;
+ return $this;
+ }
+
+ /**
+ * Gets as tax
+ *
+ * @return string
+ */
+ public function getTax()
+ {
+ return $this->tax;
+ }
+
+ /**
+ * Sets a new tax
+ *
+ * @param string $tax
+ * @return self
+ */
+ public function setTax($tax)
+ {
+ $this->tax = $tax;
+ return $this;
+ }
+
+ /**
+ * Gets as shippingHandling
+ *
+ * @return string
+ */
+ public function getShippingHandling()
+ {
+ return $this->shippingHandling;
+ }
+
+ /**
+ * Sets a new shippingHandling
+ *
+ * @param string $shippingHandling
+ * @return self
+ */
+ public function setShippingHandling($shippingHandling)
+ {
+ $this->shippingHandling = $shippingHandling;
+ return $this;
+ }
+
+ /**
+ * Gets as subTotal
+ *
+ * @return string
+ */
+ public function getSubTotal()
+ {
+ return $this->subTotal;
+ }
+
+ /**
+ * Sets a new subTotal
+ *
+ * @param string $subTotal
+ * @return self
+ */
+ public function setSubTotal($subTotal)
+ {
+ $this->subTotal = $subTotal;
+ return $this;
+ }
+
+ /**
+ * Gets as orderID
+ *
+ * @return string
+ */
+ public function getOrderID()
+ {
+ return $this->orderID;
+ }
+
+ /**
+ * Sets a new orderID
+ *
+ * @param string $orderID
+ * @return self
+ */
+ public function setOrderID($orderID)
+ {
+ $this->orderID = $orderID;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return string
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param string $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentEmvType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentEmvType.php
new file mode 100644
index 0000000..46bd2c9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentEmvType.php
@@ -0,0 +1,180 @@
+emvData;
+ }
+
+ /**
+ * Sets a new emvData
+ *
+ * @param mixed $emvData
+ * @return self
+ */
+ public function setEmvData($emvData)
+ {
+ $this->emvData = $emvData;
+ return $this;
+ }
+
+ /**
+ * Gets as emvDescriptor
+ *
+ * @return mixed
+ */
+ public function getEmvDescriptor()
+ {
+ return $this->emvDescriptor;
+ }
+
+ /**
+ * Sets a new emvDescriptor
+ *
+ * @param mixed $emvDescriptor
+ * @return self
+ */
+ public function setEmvDescriptor($emvDescriptor)
+ {
+ $this->emvDescriptor = $emvDescriptor;
+ return $this;
+ }
+
+ /**
+ * Gets as emvVersion
+ *
+ * @return mixed
+ */
+ public function getEmvVersion()
+ {
+ return $this->emvVersion;
+ }
+
+ /**
+ * Sets a new emvVersion
+ *
+ * @param mixed $emvVersion
+ * @return self
+ */
+ public function setEmvVersion($emvVersion)
+ {
+ $this->emvVersion = $emvVersion;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentMaskedType.php
new file mode 100644
index 0000000..b64252d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentMaskedType.php
@@ -0,0 +1,180 @@
+creditCard;
+ }
+
+ /**
+ * Sets a new creditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardMaskedType $creditCard
+ * @return self
+ */
+ public function setCreditCard(\net\authorize\api\contract\v1\CreditCardMaskedType $creditCard)
+ {
+ $this->creditCard = $creditCard;
+ return $this;
+ }
+
+ /**
+ * Gets as bankAccount
+ *
+ * @return \net\authorize\api\contract\v1\BankAccountMaskedType
+ */
+ public function getBankAccount()
+ {
+ return $this->bankAccount;
+ }
+
+ /**
+ * Sets a new bankAccount
+ *
+ * @param \net\authorize\api\contract\v1\BankAccountMaskedType $bankAccount
+ * @return self
+ */
+ public function setBankAccount(\net\authorize\api\contract\v1\BankAccountMaskedType $bankAccount)
+ {
+ $this->bankAccount = $bankAccount;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenInformation
+ *
+ * @return \net\authorize\api\contract\v1\TokenMaskedType
+ */
+ public function getTokenInformation()
+ {
+ return $this->tokenInformation;
+ }
+
+ /**
+ * Sets a new tokenInformation
+ *
+ * @param \net\authorize\api\contract\v1\TokenMaskedType $tokenInformation
+ * @return self
+ */
+ public function setTokenInformation(\net\authorize\api\contract\v1\TokenMaskedType $tokenInformation)
+ {
+ $this->tokenInformation = $tokenInformation;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentProfileType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentProfileType.php
new file mode 100644
index 0000000..c35fac1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentProfileType.php
@@ -0,0 +1,153 @@
+paymentProfileId;
+ }
+
+ /**
+ * Sets a new paymentProfileId
+ *
+ * @param string $paymentProfileId
+ * @return self
+ */
+ public function setPaymentProfileId($paymentProfileId)
+ {
+ $this->paymentProfileId = $paymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as cardCode
+ *
+ * @return string
+ */
+ public function getCardCode()
+ {
+ return $this->cardCode;
+ }
+
+ /**
+ * Sets a new cardCode
+ *
+ * @param string $cardCode
+ * @return self
+ */
+ public function setCardCode($cardCode)
+ {
+ $this->cardCode = $cardCode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType.php
new file mode 100644
index 0000000..8306a39
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType.php
@@ -0,0 +1,210 @@
+interval;
+ }
+
+ /**
+ * Sets a new interval
+ *
+ * @param \net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType
+ * $interval
+ * @return self
+ */
+ public function setInterval(\net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType $interval)
+ {
+ $this->interval = $interval;
+ return $this;
+ }
+
+ /**
+ * Gets as startDate
+ *
+ * @return \DateTime
+ */
+ public function getStartDate()
+ {
+ return $this->startDate;
+ }
+
+ /**
+ * Sets a new startDate
+ *
+ * @param \DateTime $startDate
+ * @return self
+ */
+ public function setStartDate(\DateTime $startDate)
+ {
+ $strDateOnly = $startDate->format("Y-m-d");
+ $this->startDate = \DateTime::createFromFormat("!Y-m-d", $strDateOnly);
+ return $this;
+ }
+
+ /**
+ * Gets as totalOccurrences
+ *
+ * @return integer
+ */
+ public function getTotalOccurrences()
+ {
+ return $this->totalOccurrences;
+ }
+
+ /**
+ * Sets a new totalOccurrences
+ *
+ * @param integer $totalOccurrences
+ * @return self
+ */
+ public function setTotalOccurrences($totalOccurrences)
+ {
+ $this->totalOccurrences = $totalOccurrences;
+ return $this;
+ }
+
+ /**
+ * Gets as trialOccurrences
+ *
+ * @return integer
+ */
+ public function getTrialOccurrences()
+ {
+ return $this->trialOccurrences;
+ }
+
+ /**
+ * Sets a new trialOccurrences
+ *
+ * @param integer $trialOccurrences
+ * @return self
+ */
+ public function setTrialOccurrences($trialOccurrences)
+ {
+ $this->trialOccurrences = $trialOccurrences;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType/IntervalAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType/IntervalAType.php
new file mode 100644
index 0000000..c5ba1d4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentScheduleType/IntervalAType.php
@@ -0,0 +1,150 @@
+length;
+ }
+
+ /**
+ * Sets a new length
+ *
+ * @param integer $length
+ * @return self
+ */
+ public function setLength($length)
+ {
+ $this->length = $length;
+ return $this;
+ }
+
+ /**
+ * Gets as unit
+ *
+ * @return string
+ */
+ public function getUnit()
+ {
+ return $this->unit;
+ }
+
+ /**
+ * Sets a new unit
+ *
+ * @param string $unit
+ * @return self
+ */
+ public function setUnit($unit)
+ {
+ $this->unit = $unit;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentSimpleType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentSimpleType.php
new file mode 100644
index 0000000..72d93de
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentSimpleType.php
@@ -0,0 +1,153 @@
+creditCard;
+ }
+
+ /**
+ * Sets a new creditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardSimpleType $creditCard
+ * @return self
+ */
+ public function setCreditCard(\net\authorize\api\contract\v1\CreditCardSimpleType $creditCard)
+ {
+ $this->creditCard = $creditCard;
+ return $this;
+ }
+
+ /**
+ * Gets as bankAccount
+ *
+ * @return \net\authorize\api\contract\v1\BankAccountType
+ */
+ public function getBankAccount()
+ {
+ return $this->bankAccount;
+ }
+
+ /**
+ * Sets a new bankAccount
+ *
+ * @param \net\authorize\api\contract\v1\BankAccountType $bankAccount
+ * @return self
+ */
+ public function setBankAccount(\net\authorize\api\contract\v1\BankAccountType $bankAccount)
+ {
+ $this->bankAccount = $bankAccount;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentType.php
new file mode 100644
index 0000000..5a25be1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PaymentType.php
@@ -0,0 +1,316 @@
+creditCard;
+ }
+
+ /**
+ * Sets a new creditCard
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardType $creditCard
+ * @return self
+ */
+ public function setCreditCard(\net\authorize\api\contract\v1\CreditCardType $creditCard)
+ {
+ $this->creditCard = $creditCard;
+ return $this;
+ }
+
+ /**
+ * Gets as bankAccount
+ *
+ * @return \net\authorize\api\contract\v1\BankAccountType
+ */
+ public function getBankAccount()
+ {
+ return $this->bankAccount;
+ }
+
+ /**
+ * Sets a new bankAccount
+ *
+ * @param \net\authorize\api\contract\v1\BankAccountType $bankAccount
+ * @return self
+ */
+ public function setBankAccount(\net\authorize\api\contract\v1\BankAccountType $bankAccount)
+ {
+ $this->bankAccount = $bankAccount;
+ return $this;
+ }
+
+ /**
+ * Gets as trackData
+ *
+ * @return \net\authorize\api\contract\v1\CreditCardTrackType
+ */
+ public function getTrackData()
+ {
+ return $this->trackData;
+ }
+
+ /**
+ * Sets a new trackData
+ *
+ * @param \net\authorize\api\contract\v1\CreditCardTrackType $trackData
+ * @return self
+ */
+ public function setTrackData(\net\authorize\api\contract\v1\CreditCardTrackType $trackData)
+ {
+ $this->trackData = $trackData;
+ return $this;
+ }
+
+ /**
+ * Gets as encryptedTrackData
+ *
+ * @return \net\authorize\api\contract\v1\EncryptedTrackDataType
+ */
+ public function getEncryptedTrackData()
+ {
+ return $this->encryptedTrackData;
+ }
+
+ /**
+ * Sets a new encryptedTrackData
+ *
+ * @param \net\authorize\api\contract\v1\EncryptedTrackDataType $encryptedTrackData
+ * @return self
+ */
+ public function setEncryptedTrackData(\net\authorize\api\contract\v1\EncryptedTrackDataType $encryptedTrackData)
+ {
+ $this->encryptedTrackData = $encryptedTrackData;
+ return $this;
+ }
+
+ /**
+ * Gets as payPal
+ *
+ * @return \net\authorize\api\contract\v1\PayPalType
+ */
+ public function getPayPal()
+ {
+ return $this->payPal;
+ }
+
+ /**
+ * Sets a new payPal
+ *
+ * @param \net\authorize\api\contract\v1\PayPalType $payPal
+ * @return self
+ */
+ public function setPayPal(\net\authorize\api\contract\v1\PayPalType $payPal)
+ {
+ $this->payPal = $payPal;
+ return $this;
+ }
+
+ /**
+ * Gets as opaqueData
+ *
+ * @return \net\authorize\api\contract\v1\OpaqueDataType
+ */
+ public function getOpaqueData()
+ {
+ return $this->opaqueData;
+ }
+
+ /**
+ * Sets a new opaqueData
+ *
+ * @param \net\authorize\api\contract\v1\OpaqueDataType $opaqueData
+ * @return self
+ */
+ public function setOpaqueData(\net\authorize\api\contract\v1\OpaqueDataType $opaqueData)
+ {
+ $this->opaqueData = $opaqueData;
+ return $this;
+ }
+
+ /**
+ * Gets as emv
+ *
+ * @return \net\authorize\api\contract\v1\PaymentEmvType
+ */
+ public function getEmv()
+ {
+ return $this->emv;
+ }
+
+ /**
+ * Sets a new emv
+ *
+ * @param \net\authorize\api\contract\v1\PaymentEmvType $emv
+ * @return self
+ */
+ public function setEmv(\net\authorize\api\contract\v1\PaymentEmvType $emv)
+ {
+ $this->emv = $emv;
+ return $this;
+ }
+
+ /**
+ * Gets as dataSource
+ *
+ * @return string
+ */
+ public function getDataSource()
+ {
+ return $this->dataSource;
+ }
+
+ /**
+ * Sets a new dataSource
+ *
+ * @param string $dataSource
+ * @return self
+ */
+ public function setDataSource($dataSource)
+ {
+ $this->dataSource = $dataSource;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/PermissionType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/PermissionType.php
new file mode 100644
index 0000000..87b06bf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/PermissionType.php
@@ -0,0 +1,126 @@
+permissionName;
+ }
+
+ /**
+ * Sets a new permissionName
+ *
+ * @param string $permissionName
+ * @return self
+ */
+ public function setPermissionName($permissionName)
+ {
+ $this->permissionName = $permissionName;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessingOptionsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessingOptionsType.php
new file mode 100644
index 0000000..e1ed42d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessingOptionsType.php
@@ -0,0 +1,207 @@
+isFirstRecurringPayment;
+ }
+
+ /**
+ * Sets a new isFirstRecurringPayment
+ *
+ * @param boolean $isFirstRecurringPayment
+ * @return self
+ */
+ public function setIsFirstRecurringPayment($isFirstRecurringPayment)
+ {
+ $this->isFirstRecurringPayment = $isFirstRecurringPayment;
+ return $this;
+ }
+
+ /**
+ * Gets as isFirstSubsequentAuth
+ *
+ * @return boolean
+ */
+ public function getIsFirstSubsequentAuth()
+ {
+ return $this->isFirstSubsequentAuth;
+ }
+
+ /**
+ * Sets a new isFirstSubsequentAuth
+ *
+ * @param boolean $isFirstSubsequentAuth
+ * @return self
+ */
+ public function setIsFirstSubsequentAuth($isFirstSubsequentAuth)
+ {
+ $this->isFirstSubsequentAuth = $isFirstSubsequentAuth;
+ return $this;
+ }
+
+ /**
+ * Gets as isSubsequentAuth
+ *
+ * @return boolean
+ */
+ public function getIsSubsequentAuth()
+ {
+ return $this->isSubsequentAuth;
+ }
+
+ /**
+ * Sets a new isSubsequentAuth
+ *
+ * @param boolean $isSubsequentAuth
+ * @return self
+ */
+ public function setIsSubsequentAuth($isSubsequentAuth)
+ {
+ $this->isSubsequentAuth = $isSubsequentAuth;
+ return $this;
+ }
+
+ /**
+ * Gets as isStoredCredentials
+ *
+ * @return boolean
+ */
+ public function getIsStoredCredentials()
+ {
+ return $this->isStoredCredentials;
+ }
+
+ /**
+ * Sets a new isStoredCredentials
+ *
+ * @param boolean $isStoredCredentials
+ * @return self
+ */
+ public function setIsStoredCredentials($isStoredCredentials)
+ {
+ $this->isStoredCredentials = $isStoredCredentials;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessorType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessorType.php
new file mode 100644
index 0000000..dc6bbff
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProcessorType.php
@@ -0,0 +1,214 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as id
+ *
+ * @return integer
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param integer $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Adds as cardType
+ *
+ * @return self
+ * @param string $cardType
+ */
+ public function addToCardTypes($cardType)
+ {
+ $this->cardTypes[] = $cardType;
+ return $this;
+ }
+
+ /**
+ * isset cardTypes
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetCardTypes($index)
+ {
+ return isset($this->cardTypes[$index]);
+ }
+
+ /**
+ * unset cardTypes
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetCardTypes($index)
+ {
+ unset($this->cardTypes[$index]);
+ }
+
+ /**
+ * Gets as cardTypes
+ *
+ * @return string[]
+ */
+ public function getCardTypes()
+ {
+ return $this->cardTypes;
+ }
+
+ /**
+ * Sets a new cardTypes
+ *
+ * @param string[] $cardTypes
+ * @return self
+ */
+ public function setCardTypes(array $cardTypes)
+ {
+ $this->cardTypes = $cardTypes;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAmountType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAmountType.php
new file mode 100644
index 0000000..2e8f374
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAmountType.php
@@ -0,0 +1,268 @@
+amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as tax
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getTax()
+ {
+ return $this->tax;
+ }
+
+ /**
+ * Sets a new tax
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $tax
+ * @return self
+ */
+ public function setTax(\net\authorize\api\contract\v1\ExtendedAmountType $tax)
+ {
+ $this->tax = $tax;
+ return $this;
+ }
+
+ /**
+ * Gets as shipping
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getShipping()
+ {
+ return $this->shipping;
+ }
+
+ /**
+ * Sets a new shipping
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $shipping
+ * @return self
+ */
+ public function setShipping(\net\authorize\api\contract\v1\ExtendedAmountType $shipping)
+ {
+ $this->shipping = $shipping;
+ return $this;
+ }
+
+ /**
+ * Gets as duty
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getDuty()
+ {
+ return $this->duty;
+ }
+
+ /**
+ * Sets a new duty
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $duty
+ * @return self
+ */
+ public function setDuty(\net\authorize\api\contract\v1\ExtendedAmountType $duty)
+ {
+ $this->duty = $duty;
+ return $this;
+ }
+
+ /**
+ * Adds as lineItems
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\LineItemType $lineItems
+ */
+ public function addToLineItems(\net\authorize\api\contract\v1\LineItemType $lineItems)
+ {
+ $this->lineItems[] = $lineItems;
+ return $this;
+ }
+
+ /**
+ * isset lineItems
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetLineItems($index)
+ {
+ return isset($this->lineItems[$index]);
+ }
+
+ /**
+ * unset lineItems
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetLineItems($index)
+ {
+ unset($this->lineItems[$index]);
+ }
+
+ /**
+ * Gets as lineItems
+ *
+ * @return \net\authorize\api\contract\v1\LineItemType[]
+ */
+ public function getLineItems()
+ {
+ return $this->lineItems;
+ }
+
+ /**
+ * Sets a new lineItems
+ *
+ * @param \net\authorize\api\contract\v1\LineItemType[] $lineItems
+ * @return self
+ */
+ public function setLineItems(array $lineItems)
+ {
+ $this->lineItems = $lineItems;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthCaptureType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthCaptureType.php
new file mode 100644
index 0000000..ddbe87d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthCaptureType.php
@@ -0,0 +1,99 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthOnlyType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthOnlyType.php
new file mode 100644
index 0000000..93e7350
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransAuthOnlyType.php
@@ -0,0 +1,99 @@
+ $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransCaptureOnlyType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransCaptureOnlyType.php
new file mode 100644
index 0000000..725b6e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransCaptureOnlyType.php
@@ -0,0 +1,126 @@
+approvalCode;
+ }
+
+ /**
+ * Sets a new approvalCode
+ *
+ * @param string $approvalCode
+ * @return self
+ */
+ public function setApprovalCode($approvalCode)
+ {
+ $this->approvalCode = $approvalCode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransOrderType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransOrderType.php
new file mode 100644
index 0000000..868757e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransOrderType.php
@@ -0,0 +1,372 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingAddressId
+ *
+ * @return string
+ */
+ public function getCustomerShippingAddressId()
+ {
+ return $this->customerShippingAddressId;
+ }
+
+ /**
+ * Sets a new customerShippingAddressId
+ *
+ * @param string $customerShippingAddressId
+ * @return self
+ */
+ public function setCustomerShippingAddressId($customerShippingAddressId)
+ {
+ $this->customerShippingAddressId = $customerShippingAddressId;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderExType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderExType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderExType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Gets as taxExempt
+ *
+ * @return boolean
+ */
+ public function getTaxExempt()
+ {
+ return $this->taxExempt;
+ }
+
+ /**
+ * Sets a new taxExempt
+ *
+ * @param boolean $taxExempt
+ * @return self
+ */
+ public function setTaxExempt($taxExempt)
+ {
+ $this->taxExempt = $taxExempt;
+ return $this;
+ }
+
+ /**
+ * Gets as recurringBilling
+ *
+ * @return boolean
+ */
+ public function getRecurringBilling()
+ {
+ return $this->recurringBilling;
+ }
+
+ /**
+ * Sets a new recurringBilling
+ *
+ * @param boolean $recurringBilling
+ * @return self
+ */
+ public function setRecurringBilling($recurringBilling)
+ {
+ $this->recurringBilling = $recurringBilling;
+ return $this;
+ }
+
+ /**
+ * Gets as cardCode
+ *
+ * @return string
+ */
+ public function getCardCode()
+ {
+ return $this->cardCode;
+ }
+
+ /**
+ * Sets a new cardCode
+ *
+ * @param string $cardCode
+ * @return self
+ */
+ public function setCardCode($cardCode)
+ {
+ $this->cardCode = $cardCode;
+ return $this;
+ }
+
+ /**
+ * Gets as splitTenderId
+ *
+ * @return string
+ */
+ public function getSplitTenderId()
+ {
+ return $this->splitTenderId;
+ }
+
+ /**
+ * Sets a new splitTenderId
+ *
+ * @param string $splitTenderId
+ * @return self
+ */
+ public function setSplitTenderId($splitTenderId)
+ {
+ $this->splitTenderId = $splitTenderId;
+ return $this;
+ }
+
+ /**
+ * Gets as processingOptions
+ *
+ * @return \net\authorize\api\contract\v1\ProcessingOptionsType
+ */
+ public function getProcessingOptions()
+ {
+ return $this->processingOptions;
+ }
+
+ /**
+ * Sets a new processingOptions
+ *
+ * @param \net\authorize\api\contract\v1\ProcessingOptionsType $processingOptions
+ * @return self
+ */
+ public function setProcessingOptions(\net\authorize\api\contract\v1\ProcessingOptionsType $processingOptions)
+ {
+ $this->processingOptions = $processingOptions;
+ return $this;
+ }
+
+ /**
+ * Gets as subsequentAuthInformation
+ *
+ * @return \net\authorize\api\contract\v1\SubsequentAuthInformationType
+ */
+ public function getSubsequentAuthInformation()
+ {
+ return $this->subsequentAuthInformation;
+ }
+
+ /**
+ * Sets a new subsequentAuthInformation
+ *
+ * @param \net\authorize\api\contract\v1\SubsequentAuthInformationType
+ * $subsequentAuthInformation
+ * @return self
+ */
+ public function setSubsequentAuthInformation(\net\authorize\api\contract\v1\SubsequentAuthInformationType $subsequentAuthInformation)
+ {
+ $this->subsequentAuthInformation = $subsequentAuthInformation;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransPriorAuthCaptureType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransPriorAuthCaptureType.php
new file mode 100644
index 0000000..065b177
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransPriorAuthCaptureType.php
@@ -0,0 +1,207 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingAddressId
+ *
+ * @return string
+ */
+ public function getCustomerShippingAddressId()
+ {
+ return $this->customerShippingAddressId;
+ }
+
+ /**
+ * Sets a new customerShippingAddressId
+ *
+ * @param string $customerShippingAddressId
+ * @return self
+ */
+ public function setCustomerShippingAddressId($customerShippingAddressId)
+ {
+ $this->customerShippingAddressId = $customerShippingAddressId;
+ return $this;
+ }
+
+ /**
+ * Gets as transId
+ *
+ * @return string
+ */
+ public function getTransId()
+ {
+ return $this->transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransRefundType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransRefundType.php
new file mode 100644
index 0000000..3e4901b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransRefundType.php
@@ -0,0 +1,315 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingAddressId
+ *
+ * @return string
+ */
+ public function getCustomerShippingAddressId()
+ {
+ return $this->customerShippingAddressId;
+ }
+
+ /**
+ * Sets a new customerShippingAddressId
+ *
+ * @param string $customerShippingAddressId
+ * @return self
+ */
+ public function setCustomerShippingAddressId($customerShippingAddressId)
+ {
+ $this->customerShippingAddressId = $customerShippingAddressId;
+ return $this;
+ }
+
+ /**
+ * Gets as creditCardNumberMasked
+ *
+ * @return string
+ */
+ public function getCreditCardNumberMasked()
+ {
+ return $this->creditCardNumberMasked;
+ }
+
+ /**
+ * Sets a new creditCardNumberMasked
+ *
+ * @param string $creditCardNumberMasked
+ * @return self
+ */
+ public function setCreditCardNumberMasked($creditCardNumberMasked)
+ {
+ $this->creditCardNumberMasked = $creditCardNumberMasked;
+ return $this;
+ }
+
+ /**
+ * Gets as bankRoutingNumberMasked
+ *
+ * @return string
+ */
+ public function getBankRoutingNumberMasked()
+ {
+ return $this->bankRoutingNumberMasked;
+ }
+
+ /**
+ * Sets a new bankRoutingNumberMasked
+ *
+ * @param string $bankRoutingNumberMasked
+ * @return self
+ */
+ public function setBankRoutingNumberMasked($bankRoutingNumberMasked)
+ {
+ $this->bankRoutingNumberMasked = $bankRoutingNumberMasked;
+ return $this;
+ }
+
+ /**
+ * Gets as bankAccountNumberMasked
+ *
+ * @return string
+ */
+ public function getBankAccountNumberMasked()
+ {
+ return $this->bankAccountNumberMasked;
+ }
+
+ /**
+ * Sets a new bankAccountNumberMasked
+ *
+ * @param string $bankAccountNumberMasked
+ * @return self
+ */
+ public function setBankAccountNumberMasked($bankAccountNumberMasked)
+ {
+ $this->bankAccountNumberMasked = $bankAccountNumberMasked;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderExType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderExType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderExType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Gets as transId
+ *
+ * @return string
+ */
+ public function getTransId()
+ {
+ return $this->transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransVoidType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransVoidType.php
new file mode 100644
index 0000000..90b1cea
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransVoidType.php
@@ -0,0 +1,207 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingAddressId
+ *
+ * @return string
+ */
+ public function getCustomerShippingAddressId()
+ {
+ return $this->customerShippingAddressId;
+ }
+
+ /**
+ * Sets a new customerShippingAddressId
+ *
+ * @param string $customerShippingAddressId
+ * @return self
+ */
+ public function setCustomerShippingAddressId($customerShippingAddressId)
+ {
+ $this->customerShippingAddressId = $customerShippingAddressId;
+ return $this;
+ }
+
+ /**
+ * Gets as transId
+ *
+ * @return string
+ */
+ public function getTransId()
+ {
+ return $this->transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransactionType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransactionType.php
new file mode 100644
index 0000000..c28d57a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ProfileTransactionType.php
@@ -0,0 +1,270 @@
+profileTransAuthCapture;
+ }
+
+ /**
+ * Sets a new profileTransAuthCapture
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransAuthCaptureType
+ * $profileTransAuthCapture
+ * @return self
+ */
+ public function setProfileTransAuthCapture(\net\authorize\api\contract\v1\ProfileTransAuthCaptureType $profileTransAuthCapture)
+ {
+ $this->profileTransAuthCapture = $profileTransAuthCapture;
+ return $this;
+ }
+
+ /**
+ * Gets as profileTransAuthOnly
+ *
+ * @return \net\authorize\api\contract\v1\ProfileTransAuthOnlyType
+ */
+ public function getProfileTransAuthOnly()
+ {
+ return $this->profileTransAuthOnly;
+ }
+
+ /**
+ * Sets a new profileTransAuthOnly
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransAuthOnlyType
+ * $profileTransAuthOnly
+ * @return self
+ */
+ public function setProfileTransAuthOnly(\net\authorize\api\contract\v1\ProfileTransAuthOnlyType $profileTransAuthOnly)
+ {
+ $this->profileTransAuthOnly = $profileTransAuthOnly;
+ return $this;
+ }
+
+ /**
+ * Gets as profileTransPriorAuthCapture
+ *
+ * @return \net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType
+ */
+ public function getProfileTransPriorAuthCapture()
+ {
+ return $this->profileTransPriorAuthCapture;
+ }
+
+ /**
+ * Sets a new profileTransPriorAuthCapture
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType
+ * $profileTransPriorAuthCapture
+ * @return self
+ */
+ public function setProfileTransPriorAuthCapture(\net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType $profileTransPriorAuthCapture)
+ {
+ $this->profileTransPriorAuthCapture = $profileTransPriorAuthCapture;
+ return $this;
+ }
+
+ /**
+ * Gets as profileTransCaptureOnly
+ *
+ * @return \net\authorize\api\contract\v1\ProfileTransCaptureOnlyType
+ */
+ public function getProfileTransCaptureOnly()
+ {
+ return $this->profileTransCaptureOnly;
+ }
+
+ /**
+ * Sets a new profileTransCaptureOnly
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransCaptureOnlyType
+ * $profileTransCaptureOnly
+ * @return self
+ */
+ public function setProfileTransCaptureOnly(\net\authorize\api\contract\v1\ProfileTransCaptureOnlyType $profileTransCaptureOnly)
+ {
+ $this->profileTransCaptureOnly = $profileTransCaptureOnly;
+ return $this;
+ }
+
+ /**
+ * Gets as profileTransRefund
+ *
+ * @return \net\authorize\api\contract\v1\ProfileTransRefundType
+ */
+ public function getProfileTransRefund()
+ {
+ return $this->profileTransRefund;
+ }
+
+ /**
+ * Sets a new profileTransRefund
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransRefundType $profileTransRefund
+ * @return self
+ */
+ public function setProfileTransRefund(\net\authorize\api\contract\v1\ProfileTransRefundType $profileTransRefund)
+ {
+ $this->profileTransRefund = $profileTransRefund;
+ return $this;
+ }
+
+ /**
+ * Gets as profileTransVoid
+ *
+ * @return \net\authorize\api\contract\v1\ProfileTransVoidType
+ */
+ public function getProfileTransVoid()
+ {
+ return $this->profileTransVoid;
+ }
+
+ /**
+ * Sets a new profileTransVoid
+ *
+ * @param \net\authorize\api\contract\v1\ProfileTransVoidType $profileTransVoid
+ * @return self
+ */
+ public function setProfileTransVoid(\net\authorize\api\contract\v1\ProfileTransVoidType $profileTransVoid)
+ {
+ $this->profileTransVoid = $profileTransVoid;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ReturnedItemType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ReturnedItemType.php
new file mode 100644
index 0000000..119965d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ReturnedItemType.php
@@ -0,0 +1,234 @@
+id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param string $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as dateUTC
+ *
+ * @return \DateTime
+ */
+ public function getDateUTC()
+ {
+ return $this->dateUTC;
+ }
+
+ /**
+ * Sets a new dateUTC
+ *
+ * @param \DateTime $dateUTC
+ * @return self
+ */
+ public function setDateUTC(\DateTime $dateUTC)
+ {
+ $this->dateUTC = $dateUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as dateLocal
+ *
+ * @return \DateTime
+ */
+ public function getDateLocal()
+ {
+ return $this->dateLocal;
+ }
+
+ /**
+ * Sets a new dateLocal
+ *
+ * @param \DateTime $dateLocal
+ * @return self
+ */
+ public function setDateLocal(\DateTime $dateLocal)
+ {
+ $this->dateLocal = $dateLocal;
+ return $this;
+ }
+
+ /**
+ * Gets as code
+ *
+ * @return string
+ */
+ public function getCode()
+ {
+ return $this->code;
+ }
+
+ /**
+ * Sets a new code
+ *
+ * @param string $code
+ * @return self
+ */
+ public function setCode($code)
+ {
+ $this->code = $code;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerErrorType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerErrorType.php
new file mode 100644
index 0000000..1ed92bd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerErrorType.php
@@ -0,0 +1,153 @@
+code;
+ }
+
+ /**
+ * Sets a new code
+ *
+ * @param string $code
+ * @return self
+ */
+ public function setCode($code)
+ {
+ $this->code = $code;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerRequest.php
new file mode 100644
index 0000000..e0b62fd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerRequest.php
@@ -0,0 +1,75 @@
+data;
+ }
+
+ /**
+ * Sets a new data
+ *
+ * @param \net\authorize\api\contract\v1\WebCheckOutDataType $data
+ * @return self
+ */
+ public function setData(\net\authorize\api\contract\v1\WebCheckOutDataType $data)
+ {
+ $this->data = $data;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerResponse.php
new file mode 100644
index 0000000..5f09e33
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SecurePaymentContainerResponse.php
@@ -0,0 +1,88 @@
+opaqueData;
+ }
+
+ /**
+ * Sets a new opaqueData
+ *
+ * @param \net\authorize\api\contract\v1\OpaqueDataType $opaqueData
+ * @return self
+ */
+ public function setOpaqueData(\net\authorize\api\contract\v1\OpaqueDataType $opaqueData)
+ {
+ $this->opaqueData = $opaqueData;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptRequest.php
new file mode 100644
index 0000000..7b24ee3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptRequest.php
@@ -0,0 +1,129 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerEmail
+ *
+ * @return string
+ */
+ public function getCustomerEmail()
+ {
+ return $this->customerEmail;
+ }
+
+ /**
+ * Sets a new customerEmail
+ *
+ * @param string $customerEmail
+ * @return self
+ */
+ public function setCustomerEmail($customerEmail)
+ {
+ $this->customerEmail = $customerEmail;
+ return $this;
+ }
+
+ /**
+ * Gets as emailSettings
+ *
+ * @return \net\authorize\api\contract\v1\EmailSettingsType
+ */
+ public function getEmailSettings()
+ {
+ return $this->emailSettings;
+ }
+
+ /**
+ * Sets a new emailSettings
+ *
+ * @param \net\authorize\api\contract\v1\EmailSettingsType $emailSettings
+ * @return self
+ */
+ public function setEmailSettings(\net\authorize\api\contract\v1\EmailSettingsType $emailSettings)
+ {
+ $this->emailSettings = $emailSettings;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptResponse.php
new file mode 100644
index 0000000..3267dac
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SendCustomerTransactionReceiptResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SettingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SettingType.php
new file mode 100644
index 0000000..d68f73a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SettingType.php
@@ -0,0 +1,153 @@
+settingName;
+ }
+
+ /**
+ * Sets a new settingName
+ *
+ * @param string $settingName
+ * @return self
+ */
+ public function setSettingName($settingName)
+ {
+ $this->settingName = $settingName;
+ return $this;
+ }
+
+ /**
+ * Gets as settingValue
+ *
+ * @return string
+ */
+ public function getSettingValue()
+ {
+ return $this->settingValue;
+ }
+
+ /**
+ * Sets a new settingValue
+ *
+ * @param string $settingValue
+ * @return self
+ */
+ public function setSettingValue($settingValue)
+ {
+ $this->settingValue = $settingValue;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SolutionType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SolutionType.php
new file mode 100644
index 0000000..d3aae7c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SolutionType.php
@@ -0,0 +1,180 @@
+id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param string $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as vendorName
+ *
+ * @return string
+ */
+ public function getVendorName()
+ {
+ return $this->vendorName;
+ }
+
+ /**
+ * Sets a new vendorName
+ *
+ * @param string $vendorName
+ * @return self
+ */
+ public function setVendorName($vendorName)
+ {
+ $this->vendorName = $vendorName;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SubMerchantType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubMerchantType.php
new file mode 100644
index 0000000..6c7e94c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubMerchantType.php
@@ -0,0 +1,396 @@
+identifier;
+ }
+
+ /**
+ * Sets a new identifier
+ *
+ * @param string $identifier
+ * @return self
+ */
+ public function setIdentifier($identifier)
+ {
+ $this->identifier = $identifier;
+ return $this;
+ }
+
+ /**
+ * Gets as doingBusinessAs
+ *
+ * @return string
+ */
+ public function getDoingBusinessAs()
+ {
+ return $this->doingBusinessAs;
+ }
+
+ /**
+ * Sets a new doingBusinessAs
+ *
+ * @param string $doingBusinessAs
+ * @return self
+ */
+ public function setDoingBusinessAs($doingBusinessAs)
+ {
+ $this->doingBusinessAs = $doingBusinessAs;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentServiceProviderName
+ *
+ * @return string
+ */
+ public function getPaymentServiceProviderName()
+ {
+ return $this->paymentServiceProviderName;
+ }
+
+ /**
+ * Sets a new paymentServiceProviderName
+ *
+ * @param string $paymentServiceProviderName
+ * @return self
+ */
+ public function setPaymentServiceProviderName($paymentServiceProviderName)
+ {
+ $this->paymentServiceProviderName = $paymentServiceProviderName;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentServiceFacilitator
+ *
+ * @return string
+ */
+ public function getPaymentServiceFacilitator()
+ {
+ return $this->paymentServiceFacilitator;
+ }
+
+ /**
+ * Sets a new paymentServiceFacilitator
+ *
+ * @param string $paymentServiceFacilitator
+ * @return self
+ */
+ public function setPaymentServiceFacilitator($paymentServiceFacilitator)
+ {
+ $this->paymentServiceFacilitator = $paymentServiceFacilitator;
+ return $this;
+ }
+
+ /**
+ * Gets as streetAddress
+ *
+ * @return string
+ */
+ public function getStreetAddress()
+ {
+ return $this->streetAddress;
+ }
+
+ /**
+ * Sets a new streetAddress
+ *
+ * @param string $streetAddress
+ * @return self
+ */
+ public function setStreetAddress($streetAddress)
+ {
+ $this->streetAddress = $streetAddress;
+ return $this;
+ }
+
+ /**
+ * Gets as phone
+ *
+ * @return string
+ */
+ public function getPhone()
+ {
+ return $this->phone;
+ }
+
+ /**
+ * Sets a new phone
+ *
+ * @param string $phone
+ * @return self
+ */
+ public function setPhone($phone)
+ {
+ $this->phone = $phone;
+ return $this;
+ }
+
+ /**
+ * Gets as email
+ *
+ * @return string
+ */
+ public function getEmail()
+ {
+ return $this->email;
+ }
+
+ /**
+ * Sets a new email
+ *
+ * @param string $email
+ * @return self
+ */
+ public function setEmail($email)
+ {
+ $this->email = $email;
+ return $this;
+ }
+
+ /**
+ * Gets as postalCode
+ *
+ * @return string
+ */
+ public function getPostalCode()
+ {
+ return $this->postalCode;
+ }
+
+ /**
+ * Sets a new postalCode
+ *
+ * @param string $postalCode
+ * @return self
+ */
+ public function setPostalCode($postalCode)
+ {
+ $this->postalCode = $postalCode;
+ return $this;
+ }
+
+ /**
+ * Gets as city
+ *
+ * @return string
+ */
+ public function getCity()
+ {
+ return $this->city;
+ }
+
+ /**
+ * Sets a new city
+ *
+ * @param string $city
+ * @return self
+ */
+ public function setCity($city)
+ {
+ $this->city = $city;
+ return $this;
+ }
+
+ /**
+ * Gets as regionCode
+ *
+ * @return string
+ */
+ public function getRegionCode()
+ {
+ return $this->regionCode;
+ }
+
+ /**
+ * Sets a new regionCode
+ *
+ * @param string $regionCode
+ * @return self
+ */
+ public function setRegionCode($regionCode)
+ {
+ $this->regionCode = $regionCode;
+ return $this;
+ }
+
+ /**
+ * Gets as countryCode
+ *
+ * @return string
+ */
+ public function getCountryCode()
+ {
+ return $this->countryCode;
+ }
+
+ /**
+ * Sets a new countryCode
+ *
+ * @param string $countryCode
+ * @return self
+ */
+ public function setCountryCode($countryCode)
+ {
+ $this->countryCode = $countryCode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionCustomerProfileType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionCustomerProfileType.php
new file mode 100644
index 0000000..896c89b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionCustomerProfileType.php
@@ -0,0 +1,155 @@
+paymentProfile;
+ }
+
+ /**
+ * Sets a new paymentProfile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType
+ * $paymentProfile
+ * @return self
+ */
+ public function setPaymentProfile(\net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType $paymentProfile)
+ {
+ $this->paymentProfile = $paymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as shippingProfile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressExType
+ */
+ public function getShippingProfile()
+ {
+ return $this->shippingProfile;
+ }
+
+ /**
+ * Sets a new shippingProfile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressExType $shippingProfile
+ * @return self
+ */
+ public function setShippingProfile(\net\authorize\api\contract\v1\CustomerAddressExType $shippingProfile)
+ {
+ $this->shippingProfile = $shippingProfile;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionDetailType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionDetailType.php
new file mode 100644
index 0000000..3ad321c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionDetailType.php
@@ -0,0 +1,531 @@
+id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param integer $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as name
+ *
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as status
+ *
+ * @return string
+ */
+ public function getStatus()
+ {
+ return $this->status;
+ }
+
+ /**
+ * Sets a new status
+ *
+ * @param string $status
+ * @return self
+ */
+ public function setStatus($status)
+ {
+ $this->status = $status;
+ return $this;
+ }
+
+ /**
+ * Gets as createTimeStampUTC
+ *
+ * @return \DateTime
+ */
+ public function getCreateTimeStampUTC()
+ {
+ return $this->createTimeStampUTC;
+ }
+
+ /**
+ * Sets a new createTimeStampUTC
+ *
+ * @param \DateTime $createTimeStampUTC
+ * @return self
+ */
+ public function setCreateTimeStampUTC(\DateTime $createTimeStampUTC)
+ {
+ $this->createTimeStampUTC = $createTimeStampUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as firstName
+ *
+ * @return string
+ */
+ public function getFirstName()
+ {
+ return $this->firstName;
+ }
+
+ /**
+ * Sets a new firstName
+ *
+ * @param string $firstName
+ * @return self
+ */
+ public function setFirstName($firstName)
+ {
+ $this->firstName = $firstName;
+ return $this;
+ }
+
+ /**
+ * Gets as lastName
+ *
+ * @return string
+ */
+ public function getLastName()
+ {
+ return $this->lastName;
+ }
+
+ /**
+ * Sets a new lastName
+ *
+ * @param string $lastName
+ * @return self
+ */
+ public function setLastName($lastName)
+ {
+ $this->lastName = $lastName;
+ return $this;
+ }
+
+ /**
+ * Gets as totalOccurrences
+ *
+ * @return integer
+ */
+ public function getTotalOccurrences()
+ {
+ return $this->totalOccurrences;
+ }
+
+ /**
+ * Sets a new totalOccurrences
+ *
+ * @param integer $totalOccurrences
+ * @return self
+ */
+ public function setTotalOccurrences($totalOccurrences)
+ {
+ $this->totalOccurrences = $totalOccurrences;
+ return $this;
+ }
+
+ /**
+ * Gets as pastOccurrences
+ *
+ * @return integer
+ */
+ public function getPastOccurrences()
+ {
+ return $this->pastOccurrences;
+ }
+
+ /**
+ * Sets a new pastOccurrences
+ *
+ * @param integer $pastOccurrences
+ * @return self
+ */
+ public function setPastOccurrences($pastOccurrences)
+ {
+ $this->pastOccurrences = $pastOccurrences;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentMethod
+ *
+ * @return string
+ */
+ public function getPaymentMethod()
+ {
+ return $this->paymentMethod;
+ }
+
+ /**
+ * Sets a new paymentMethod
+ *
+ * @param string $paymentMethod
+ * @return self
+ */
+ public function setPaymentMethod($paymentMethod)
+ {
+ $this->paymentMethod = $paymentMethod;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as invoice
+ *
+ * @return string
+ */
+ public function getInvoice()
+ {
+ return $this->invoice;
+ }
+
+ /**
+ * Sets a new invoice
+ *
+ * @param string $invoice
+ * @return self
+ */
+ public function setInvoice($invoice)
+ {
+ $this->invoice = $invoice;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return float
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as currencyCode
+ *
+ * @return string
+ */
+ public function getCurrencyCode()
+ {
+ return $this->currencyCode;
+ }
+
+ /**
+ * Sets a new currencyCode
+ *
+ * @param string $currencyCode
+ * @return self
+ */
+ public function setCurrencyCode($currencyCode)
+ {
+ $this->currencyCode = $currencyCode;
+ return $this;
+ }
+
+ /**
+ * Gets as customerProfileId
+ *
+ * @return integer
+ */
+ public function getCustomerProfileId()
+ {
+ return $this->customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param integer $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return integer
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param integer $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingProfileId
+ *
+ * @return integer
+ */
+ public function getCustomerShippingProfileId()
+ {
+ return $this->customerShippingProfileId;
+ }
+
+ /**
+ * Sets a new customerShippingProfileId
+ *
+ * @param integer $customerShippingProfileId
+ * @return self
+ */
+ public function setCustomerShippingProfileId($customerShippingProfileId)
+ {
+ $this->customerShippingProfileId = $customerShippingProfileId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionPaymentType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionPaymentType.php
new file mode 100644
index 0000000..4224b31
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubscriptionPaymentType.php
@@ -0,0 +1,153 @@
+id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param integer $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as payNum
+ *
+ * @return integer
+ */
+ public function getPayNum()
+ {
+ return $this->payNum;
+ }
+
+ /**
+ * Sets a new payNum
+ *
+ * @param integer $payNum
+ * @return self
+ */
+ public function setPayNum($payNum)
+ {
+ $this->payNum = $payNum;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/SubsequentAuthInformationType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubsequentAuthInformationType.php
new file mode 100644
index 0000000..1b365b5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/SubsequentAuthInformationType.php
@@ -0,0 +1,153 @@
+originalNetworkTransId;
+ }
+
+ /**
+ * Sets a new originalNetworkTransId
+ *
+ * @param string $originalNetworkTransId
+ * @return self
+ */
+ public function setOriginalNetworkTransId($originalNetworkTransId)
+ {
+ $this->originalNetworkTransId = $originalNetworkTransId;
+ return $this;
+ }
+
+ /**
+ * Gets as reason
+ *
+ * @return string
+ */
+ public function getReason()
+ {
+ return $this->reason;
+ }
+
+ /**
+ * Sets a new reason
+ *
+ * @param string $reason
+ * @return self
+ */
+ public function setReason($reason)
+ {
+ $this->reason = $reason;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TokenMaskedType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TokenMaskedType.php
new file mode 100644
index 0000000..3b958b4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TokenMaskedType.php
@@ -0,0 +1,207 @@
+tokenSource;
+ }
+
+ /**
+ * Sets a new tokenSource
+ *
+ * @param string $tokenSource
+ * @return self
+ */
+ public function setTokenSource($tokenSource)
+ {
+ $this->tokenSource = $tokenSource;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenNumber
+ *
+ * @return string
+ */
+ public function getTokenNumber()
+ {
+ return $this->tokenNumber;
+ }
+
+ /**
+ * Sets a new tokenNumber
+ *
+ * @param string $tokenNumber
+ * @return self
+ */
+ public function setTokenNumber($tokenNumber)
+ {
+ $this->tokenNumber = $tokenNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as expirationDate
+ *
+ * @return string
+ */
+ public function getExpirationDate()
+ {
+ return $this->expirationDate;
+ }
+
+ /**
+ * Sets a new expirationDate
+ *
+ * @param string $expirationDate
+ * @return self
+ */
+ public function setExpirationDate($expirationDate)
+ {
+ $this->expirationDate = $expirationDate;
+ return $this;
+ }
+
+ /**
+ * Gets as tokenRequestorId
+ *
+ * @return string
+ */
+ public function getTokenRequestorId()
+ {
+ return $this->tokenRequestorId;
+ }
+
+ /**
+ * Sets a new tokenRequestorId
+ *
+ * @param string $tokenRequestorId
+ * @return self
+ */
+ public function setTokenRequestorId($tokenRequestorId)
+ {
+ $this->tokenRequestorId = $tokenRequestorId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransRetailInfoType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransRetailInfoType.php
new file mode 100644
index 0000000..fa20739
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransRetailInfoType.php
@@ -0,0 +1,207 @@
+marketType;
+ }
+
+ /**
+ * Sets a new marketType
+ *
+ * @param string $marketType
+ * @return self
+ */
+ public function setMarketType($marketType)
+ {
+ $this->marketType = $marketType;
+ return $this;
+ }
+
+ /**
+ * Gets as deviceType
+ *
+ * @return string
+ */
+ public function getDeviceType()
+ {
+ return $this->deviceType;
+ }
+
+ /**
+ * Sets a new deviceType
+ *
+ * @param string $deviceType
+ * @return self
+ */
+ public function setDeviceType($deviceType)
+ {
+ $this->deviceType = $deviceType;
+ return $this;
+ }
+
+ /**
+ * Gets as customerSignature
+ *
+ * @return string
+ */
+ public function getCustomerSignature()
+ {
+ return $this->customerSignature;
+ }
+
+ /**
+ * Sets a new customerSignature
+ *
+ * @param string $customerSignature
+ * @return self
+ */
+ public function setCustomerSignature($customerSignature)
+ {
+ $this->customerSignature = $customerSignature;
+ return $this;
+ }
+
+ /**
+ * Gets as terminalNumber
+ *
+ * @return string
+ */
+ public function getTerminalNumber()
+ {
+ return $this->terminalNumber;
+ }
+
+ /**
+ * Sets a new terminalNumber
+ *
+ * @param string $terminalNumber
+ * @return self
+ */
+ public function setTerminalNumber($terminalNumber)
+ {
+ $this->terminalNumber = $terminalNumber;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType.php
new file mode 100644
index 0000000..ee1b475
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType.php
@@ -0,0 +1,1538 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as refTransId
+ *
+ * @return string
+ */
+ public function getRefTransId()
+ {
+ return $this->refTransId;
+ }
+
+ /**
+ * Sets a new refTransId
+ *
+ * @param string $refTransId
+ * @return self
+ */
+ public function setRefTransId($refTransId)
+ {
+ $this->refTransId = $refTransId;
+ return $this;
+ }
+
+ /**
+ * Gets as splitTenderId
+ *
+ * @return string
+ */
+ public function getSplitTenderId()
+ {
+ return $this->splitTenderId;
+ }
+
+ /**
+ * Sets a new splitTenderId
+ *
+ * @param string $splitTenderId
+ * @return self
+ */
+ public function setSplitTenderId($splitTenderId)
+ {
+ $this->splitTenderId = $splitTenderId;
+ return $this;
+ }
+
+ /**
+ * Gets as submitTimeUTC
+ *
+ * @return \DateTime
+ */
+ public function getSubmitTimeUTC()
+ {
+ return $this->submitTimeUTC;
+ }
+
+ /**
+ * Sets a new submitTimeUTC
+ *
+ * @param \DateTime $submitTimeUTC
+ * @return self
+ */
+ public function setSubmitTimeUTC(\DateTime $submitTimeUTC)
+ {
+ $this->submitTimeUTC = $submitTimeUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as submitTimeLocal
+ *
+ * @return \DateTime
+ */
+ public function getSubmitTimeLocal()
+ {
+ return $this->submitTimeLocal;
+ }
+
+ /**
+ * Sets a new submitTimeLocal
+ *
+ * @param \DateTime $submitTimeLocal
+ * @return self
+ */
+ public function setSubmitTimeLocal(\DateTime $submitTimeLocal)
+ {
+ $this->submitTimeLocal = $submitTimeLocal;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionType
+ *
+ * @return string
+ */
+ public function getTransactionType()
+ {
+ return $this->transactionType;
+ }
+
+ /**
+ * Sets a new transactionType
+ *
+ * @param string $transactionType
+ * @return self
+ */
+ public function setTransactionType($transactionType)
+ {
+ $this->transactionType = $transactionType;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionStatus
+ *
+ * @return string
+ */
+ public function getTransactionStatus()
+ {
+ return $this->transactionStatus;
+ }
+
+ /**
+ * Sets a new transactionStatus
+ *
+ * @param string $transactionStatus
+ * @return self
+ */
+ public function setTransactionStatus($transactionStatus)
+ {
+ $this->transactionStatus = $transactionStatus;
+ return $this;
+ }
+
+ /**
+ * Gets as responseCode
+ *
+ * @return integer
+ */
+ public function getResponseCode()
+ {
+ return $this->responseCode;
+ }
+
+ /**
+ * Sets a new responseCode
+ *
+ * @param integer $responseCode
+ * @return self
+ */
+ public function setResponseCode($responseCode)
+ {
+ $this->responseCode = $responseCode;
+ return $this;
+ }
+
+ /**
+ * Gets as responseReasonCode
+ *
+ * @return integer
+ */
+ public function getResponseReasonCode()
+ {
+ return $this->responseReasonCode;
+ }
+
+ /**
+ * Sets a new responseReasonCode
+ *
+ * @param integer $responseReasonCode
+ * @return self
+ */
+ public function setResponseReasonCode($responseReasonCode)
+ {
+ $this->responseReasonCode = $responseReasonCode;
+ return $this;
+ }
+
+ /**
+ * Gets as subscription
+ *
+ * @return \net\authorize\api\contract\v1\SubscriptionPaymentType
+ */
+ public function getSubscription()
+ {
+ return $this->subscription;
+ }
+
+ /**
+ * Sets a new subscription
+ *
+ * @param \net\authorize\api\contract\v1\SubscriptionPaymentType $subscription
+ * @return self
+ */
+ public function setSubscription(\net\authorize\api\contract\v1\SubscriptionPaymentType $subscription)
+ {
+ $this->subscription = $subscription;
+ return $this;
+ }
+
+ /**
+ * Gets as responseReasonDescription
+ *
+ * @return string
+ */
+ public function getResponseReasonDescription()
+ {
+ return $this->responseReasonDescription;
+ }
+
+ /**
+ * Sets a new responseReasonDescription
+ *
+ * @param string $responseReasonDescription
+ * @return self
+ */
+ public function setResponseReasonDescription($responseReasonDescription)
+ {
+ $this->responseReasonDescription = $responseReasonDescription;
+ return $this;
+ }
+
+ /**
+ * Gets as authCode
+ *
+ * @return string
+ */
+ public function getAuthCode()
+ {
+ return $this->authCode;
+ }
+
+ /**
+ * Sets a new authCode
+ *
+ * @param string $authCode
+ * @return self
+ */
+ public function setAuthCode($authCode)
+ {
+ $this->authCode = $authCode;
+ return $this;
+ }
+
+ /**
+ * Gets as aVSResponse
+ *
+ * @return string
+ */
+ public function getAVSResponse()
+ {
+ return $this->aVSResponse;
+ }
+
+ /**
+ * Sets a new aVSResponse
+ *
+ * @param string $aVSResponse
+ * @return self
+ */
+ public function setAVSResponse($aVSResponse)
+ {
+ $this->aVSResponse = $aVSResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as cardCodeResponse
+ *
+ * @return string
+ */
+ public function getCardCodeResponse()
+ {
+ return $this->cardCodeResponse;
+ }
+
+ /**
+ * Sets a new cardCodeResponse
+ *
+ * @param string $cardCodeResponse
+ * @return self
+ */
+ public function setCardCodeResponse($cardCodeResponse)
+ {
+ $this->cardCodeResponse = $cardCodeResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as cAVVResponse
+ *
+ * @return string
+ */
+ public function getCAVVResponse()
+ {
+ return $this->cAVVResponse;
+ }
+
+ /**
+ * Sets a new cAVVResponse
+ *
+ * @param string $cAVVResponse
+ * @return self
+ */
+ public function setCAVVResponse($cAVVResponse)
+ {
+ $this->cAVVResponse = $cAVVResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as fDSFilterAction
+ *
+ * @return string
+ */
+ public function getFDSFilterAction()
+ {
+ return $this->fDSFilterAction;
+ }
+
+ /**
+ * Sets a new fDSFilterAction
+ *
+ * @param string $fDSFilterAction
+ * @return self
+ */
+ public function setFDSFilterAction($fDSFilterAction)
+ {
+ $this->fDSFilterAction = $fDSFilterAction;
+ return $this;
+ }
+
+ /**
+ * Adds as fDSFilter
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\FDSFilterType $fDSFilter
+ */
+ public function addToFDSFilters(\net\authorize\api\contract\v1\FDSFilterType $fDSFilter)
+ {
+ $this->fDSFilters[] = $fDSFilter;
+ return $this;
+ }
+
+ /**
+ * isset fDSFilters
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetFDSFilters($index)
+ {
+ return isset($this->fDSFilters[$index]);
+ }
+
+ /**
+ * unset fDSFilters
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetFDSFilters($index)
+ {
+ unset($this->fDSFilters[$index]);
+ }
+
+ /**
+ * Gets as fDSFilters
+ *
+ * @return \net\authorize\api\contract\v1\FDSFilterType[]
+ */
+ public function getFDSFilters()
+ {
+ return $this->fDSFilters;
+ }
+
+ /**
+ * Sets a new fDSFilters
+ *
+ * @param \net\authorize\api\contract\v1\FDSFilterType[] $fDSFilters
+ * @return self
+ */
+ public function setFDSFilters(array $fDSFilters)
+ {
+ $this->fDSFilters = $fDSFilters;
+ return $this;
+ }
+
+ /**
+ * Gets as batch
+ *
+ * @return \net\authorize\api\contract\v1\BatchDetailsType
+ */
+ public function getBatch()
+ {
+ return $this->batch;
+ }
+
+ /**
+ * Sets a new batch
+ *
+ * @param \net\authorize\api\contract\v1\BatchDetailsType $batch
+ * @return self
+ */
+ public function setBatch(\net\authorize\api\contract\v1\BatchDetailsType $batch)
+ {
+ $this->batch = $batch;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderExType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderExType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderExType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Gets as requestedAmount
+ *
+ * @return float
+ */
+ public function getRequestedAmount()
+ {
+ return $this->requestedAmount;
+ }
+
+ /**
+ * Sets a new requestedAmount
+ *
+ * @param float $requestedAmount
+ * @return self
+ */
+ public function setRequestedAmount($requestedAmount)
+ {
+ $this->requestedAmount = $requestedAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as authAmount
+ *
+ * @return float
+ */
+ public function getAuthAmount()
+ {
+ return $this->authAmount;
+ }
+
+ /**
+ * Sets a new authAmount
+ *
+ * @param float $authAmount
+ * @return self
+ */
+ public function setAuthAmount($authAmount)
+ {
+ $this->authAmount = $authAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as settleAmount
+ *
+ * @return float
+ */
+ public function getSettleAmount()
+ {
+ return $this->settleAmount;
+ }
+
+ /**
+ * Sets a new settleAmount
+ *
+ * @param float $settleAmount
+ * @return self
+ */
+ public function setSettleAmount($settleAmount)
+ {
+ $this->settleAmount = $settleAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as tax
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getTax()
+ {
+ return $this->tax;
+ }
+
+ /**
+ * Sets a new tax
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $tax
+ * @return self
+ */
+ public function setTax(\net\authorize\api\contract\v1\ExtendedAmountType $tax)
+ {
+ $this->tax = $tax;
+ return $this;
+ }
+
+ /**
+ * Gets as shipping
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getShipping()
+ {
+ return $this->shipping;
+ }
+
+ /**
+ * Sets a new shipping
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $shipping
+ * @return self
+ */
+ public function setShipping(\net\authorize\api\contract\v1\ExtendedAmountType $shipping)
+ {
+ $this->shipping = $shipping;
+ return $this;
+ }
+
+ /**
+ * Gets as duty
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getDuty()
+ {
+ return $this->duty;
+ }
+
+ /**
+ * Sets a new duty
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $duty
+ * @return self
+ */
+ public function setDuty(\net\authorize\api\contract\v1\ExtendedAmountType $duty)
+ {
+ $this->duty = $duty;
+ return $this;
+ }
+
+ /**
+ * Adds as lineItem
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\LineItemType $lineItem
+ */
+ public function addToLineItems(\net\authorize\api\contract\v1\LineItemType $lineItem)
+ {
+ $this->lineItems[] = $lineItem;
+ return $this;
+ }
+
+ /**
+ * isset lineItems
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetLineItems($index)
+ {
+ return isset($this->lineItems[$index]);
+ }
+
+ /**
+ * unset lineItems
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetLineItems($index)
+ {
+ unset($this->lineItems[$index]);
+ }
+
+ /**
+ * Gets as lineItems
+ *
+ * @return \net\authorize\api\contract\v1\LineItemType[]
+ */
+ public function getLineItems()
+ {
+ return $this->lineItems;
+ }
+
+ /**
+ * Sets a new lineItems
+ *
+ * @param \net\authorize\api\contract\v1\LineItemType[] $lineItems
+ * @return self
+ */
+ public function setLineItems(array $lineItems)
+ {
+ $this->lineItems = $lineItems;
+ return $this;
+ }
+
+ /**
+ * Gets as prepaidBalanceRemaining
+ *
+ * @return float
+ */
+ public function getPrepaidBalanceRemaining()
+ {
+ return $this->prepaidBalanceRemaining;
+ }
+
+ /**
+ * Sets a new prepaidBalanceRemaining
+ *
+ * @param float $prepaidBalanceRemaining
+ * @return self
+ */
+ public function setPrepaidBalanceRemaining($prepaidBalanceRemaining)
+ {
+ $this->prepaidBalanceRemaining = $prepaidBalanceRemaining;
+ return $this;
+ }
+
+ /**
+ * Gets as taxExempt
+ *
+ * @return boolean
+ */
+ public function getTaxExempt()
+ {
+ return $this->taxExempt;
+ }
+
+ /**
+ * Sets a new taxExempt
+ *
+ * @param boolean $taxExempt
+ * @return self
+ */
+ public function setTaxExempt($taxExempt)
+ {
+ $this->taxExempt = $taxExempt;
+ return $this;
+ }
+
+ /**
+ * Gets as payment
+ *
+ * @return \net\authorize\api\contract\v1\PaymentMaskedType
+ */
+ public function getPayment()
+ {
+ return $this->payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentMaskedType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentMaskedType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+ /**
+ * Gets as customer
+ *
+ * @return \net\authorize\api\contract\v1\CustomerDataType
+ */
+ public function getCustomer()
+ {
+ return $this->customer;
+ }
+
+ /**
+ * Sets a new customer
+ *
+ * @param \net\authorize\api\contract\v1\CustomerDataType $customer
+ * @return self
+ */
+ public function setCustomer(\net\authorize\api\contract\v1\CustomerDataType $customer)
+ {
+ $this->customer = $customer;
+ return $this;
+ }
+
+ /**
+ * Gets as billTo
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getBillTo()
+ {
+ return $this->billTo;
+ }
+
+ /**
+ * Sets a new billTo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $billTo
+ * @return self
+ */
+ public function setBillTo(\net\authorize\api\contract\v1\CustomerAddressType $billTo)
+ {
+ $this->billTo = $billTo;
+ return $this;
+ }
+
+ /**
+ * Gets as shipTo
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipTo()
+ {
+ return $this->shipTo;
+ }
+
+ /**
+ * Sets a new shipTo
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipTo
+ * @return self
+ */
+ public function setShipTo(\net\authorize\api\contract\v1\NameAndAddressType $shipTo)
+ {
+ $this->shipTo = $shipTo;
+ return $this;
+ }
+
+ /**
+ * Gets as recurringBilling
+ *
+ * @return boolean
+ */
+ public function getRecurringBilling()
+ {
+ return $this->recurringBilling;
+ }
+
+ /**
+ * Sets a new recurringBilling
+ *
+ * @param boolean $recurringBilling
+ * @return self
+ */
+ public function setRecurringBilling($recurringBilling)
+ {
+ $this->recurringBilling = $recurringBilling;
+ return $this;
+ }
+
+ /**
+ * Gets as customerIP
+ *
+ * @return string
+ */
+ public function getCustomerIP()
+ {
+ return $this->customerIP;
+ }
+
+ /**
+ * Sets a new customerIP
+ *
+ * @param string $customerIP
+ * @return self
+ */
+ public function setCustomerIP($customerIP)
+ {
+ $this->customerIP = $customerIP;
+ return $this;
+ }
+
+ /**
+ * Gets as product
+ *
+ * @return string
+ */
+ public function getProduct()
+ {
+ return $this->product;
+ }
+
+ /**
+ * Sets a new product
+ *
+ * @param string $product
+ * @return self
+ */
+ public function setProduct($product)
+ {
+ $this->product = $product;
+ return $this;
+ }
+
+ /**
+ * Gets as entryMode
+ *
+ * @return string
+ */
+ public function getEntryMode()
+ {
+ return $this->entryMode;
+ }
+
+ /**
+ * Sets a new entryMode
+ *
+ * @param string $entryMode
+ * @return self
+ */
+ public function setEntryMode($entryMode)
+ {
+ $this->entryMode = $entryMode;
+ return $this;
+ }
+
+ /**
+ * Gets as marketType
+ *
+ * @return string
+ */
+ public function getMarketType()
+ {
+ return $this->marketType;
+ }
+
+ /**
+ * Sets a new marketType
+ *
+ * @param string $marketType
+ * @return self
+ */
+ public function setMarketType($marketType)
+ {
+ $this->marketType = $marketType;
+ return $this;
+ }
+
+ /**
+ * Gets as mobileDeviceId
+ *
+ * @return string
+ */
+ public function getMobileDeviceId()
+ {
+ return $this->mobileDeviceId;
+ }
+
+ /**
+ * Sets a new mobileDeviceId
+ *
+ * @param string $mobileDeviceId
+ * @return self
+ */
+ public function setMobileDeviceId($mobileDeviceId)
+ {
+ $this->mobileDeviceId = $mobileDeviceId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerSignature
+ *
+ * @return string
+ */
+ public function getCustomerSignature()
+ {
+ return $this->customerSignature;
+ }
+
+ /**
+ * Sets a new customerSignature
+ *
+ * @param string $customerSignature
+ * @return self
+ */
+ public function setCustomerSignature($customerSignature)
+ {
+ $this->customerSignature = $customerSignature;
+ return $this;
+ }
+
+ /**
+ * Adds as returnedItem
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\ReturnedItemType $returnedItem
+ */
+ public function addToReturnedItems(\net\authorize\api\contract\v1\ReturnedItemType $returnedItem)
+ {
+ $this->returnedItems[] = $returnedItem;
+ return $this;
+ }
+
+ /**
+ * isset returnedItems
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetReturnedItems($index)
+ {
+ return isset($this->returnedItems[$index]);
+ }
+
+ /**
+ * unset returnedItems
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetReturnedItems($index)
+ {
+ unset($this->returnedItems[$index]);
+ }
+
+ /**
+ * Gets as returnedItems
+ *
+ * @return \net\authorize\api\contract\v1\ReturnedItemType[]
+ */
+ public function getReturnedItems()
+ {
+ return $this->returnedItems;
+ }
+
+ /**
+ * Sets a new returnedItems
+ *
+ * @param \net\authorize\api\contract\v1\ReturnedItemType[] $returnedItems
+ * @return self
+ */
+ public function setReturnedItems(array $returnedItems)
+ {
+ $this->returnedItems = $returnedItems;
+ return $this;
+ }
+
+ /**
+ * Gets as solution
+ *
+ * @return \net\authorize\api\contract\v1\SolutionType
+ */
+ public function getSolution()
+ {
+ return $this->solution;
+ }
+
+ /**
+ * Sets a new solution
+ *
+ * @param \net\authorize\api\contract\v1\SolutionType $solution
+ * @return self
+ */
+ public function setSolution(\net\authorize\api\contract\v1\SolutionType $solution)
+ {
+ $this->solution = $solution;
+ return $this;
+ }
+
+ /**
+ * Adds as tag
+ *
+ * @return self
+ * @param
+ * \net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType
+ * $tag
+ */
+ public function addToEmvDetails(\net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType $tag)
+ {
+ $this->emvDetails[] = $tag;
+ return $this;
+ }
+
+ /**
+ * isset emvDetails
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetEmvDetails($index)
+ {
+ return isset($this->emvDetails[$index]);
+ }
+
+ /**
+ * unset emvDetails
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetEmvDetails($index)
+ {
+ unset($this->emvDetails[$index]);
+ }
+
+ /**
+ * Gets as emvDetails
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType[]
+ */
+ public function getEmvDetails()
+ {
+ return $this->emvDetails;
+ }
+
+ /**
+ * Sets a new emvDetails
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType[]
+ * $emvDetails
+ * @return self
+ */
+ public function setEmvDetails(array $emvDetails)
+ {
+ $this->emvDetails = $emvDetails;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileIdType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Gets as surcharge
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getSurcharge()
+ {
+ return $this->surcharge;
+ }
+
+ /**
+ * Sets a new surcharge
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $surcharge
+ * @return self
+ */
+ public function setSurcharge(\net\authorize\api\contract\v1\ExtendedAmountType $surcharge)
+ {
+ $this->surcharge = $surcharge;
+ return $this;
+ }
+
+ /**
+ * Gets as employeeId
+ *
+ * @return string
+ */
+ public function getEmployeeId()
+ {
+ return $this->employeeId;
+ }
+
+ /**
+ * Sets a new employeeId
+ *
+ * @param string $employeeId
+ * @return self
+ */
+ public function setEmployeeId($employeeId)
+ {
+ $this->employeeId = $employeeId;
+ return $this;
+ }
+
+ /**
+ * Gets as tip
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getTip()
+ {
+ return $this->tip;
+ }
+
+ /**
+ * Sets a new tip
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $tip
+ * @return self
+ */
+ public function setTip(\net\authorize\api\contract\v1\ExtendedAmountType $tip)
+ {
+ $this->tip = $tip;
+ return $this;
+ }
+
+ /**
+ * Gets as otherTax
+ *
+ * @return \net\authorize\api\contract\v1\OtherTaxType
+ */
+ public function getOtherTax()
+ {
+ return $this->otherTax;
+ }
+
+ /**
+ * Sets a new otherTax
+ *
+ * @param \net\authorize\api\contract\v1\OtherTaxType $otherTax
+ * @return self
+ */
+ public function setOtherTax(\net\authorize\api\contract\v1\OtherTaxType $otherTax)
+ {
+ $this->otherTax = $otherTax;
+ return $this;
+ }
+
+ /**
+ * Gets as shipFrom
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipFrom()
+ {
+ return $this->shipFrom;
+ }
+
+ /**
+ * Sets a new shipFrom
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipFrom
+ * @return self
+ */
+ public function setShipFrom(\net\authorize\api\contract\v1\NameAndAddressType $shipFrom)
+ {
+ $this->shipFrom = $shipFrom;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType.php
new file mode 100644
index 0000000..7d80827
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType.php
@@ -0,0 +1,164 @@
+tag[] = $tag;
+ return $this;
+ }
+
+ /**
+ * isset tag
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTag($index)
+ {
+ return isset($this->tag[$index]);
+ }
+
+ /**
+ * unset tag
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTag($index)
+ {
+ unset($this->tag[$index]);
+ }
+
+ /**
+ * Gets as tag
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType[]
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ /**
+ * Sets a new tag
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType[]
+ * $tag
+ * @return self
+ */
+ public function setTag(array $tag)
+ {
+ $this->tag = $tag;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType/TagAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType/TagAType.php
new file mode 100644
index 0000000..ad5dd5a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionDetailsType/EmvDetailsAType/TagAType.php
@@ -0,0 +1,150 @@
+tagId;
+ }
+
+ /**
+ * Sets a new tagId
+ *
+ * @param string $tagId
+ * @return self
+ */
+ public function setTagId($tagId)
+ {
+ $this->tagId = $tagId;
+ return $this;
+ }
+
+ /**
+ * Gets as data
+ *
+ * @return string
+ */
+ public function getData()
+ {
+ return $this->data;
+ }
+
+ /**
+ * Sets a new data
+ *
+ * @param string $data
+ * @return self
+ */
+ public function setData($data)
+ {
+ $this->data = $data;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionListSortingType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionListSortingType.php
new file mode 100644
index 0000000..77aecc6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionListSortingType.php
@@ -0,0 +1,153 @@
+orderBy;
+ }
+
+ /**
+ * Sets a new orderBy
+ *
+ * @param string $orderBy
+ * @return self
+ */
+ public function setOrderBy($orderBy)
+ {
+ $this->orderBy = $orderBy;
+ return $this;
+ }
+
+ /**
+ * Gets as orderDescending
+ *
+ * @return boolean
+ */
+ public function getOrderDescending()
+ {
+ return $this->orderDescending;
+ }
+
+ /**
+ * Sets a new orderDescending
+ *
+ * @param boolean $orderDescending
+ * @return self
+ */
+ public function setOrderDescending($orderDescending)
+ {
+ $this->orderDescending = $orderDescending;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType.php
new file mode 100644
index 0000000..0c355a1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType.php
@@ -0,0 +1,1175 @@
+transactionType;
+ }
+
+ /**
+ * Sets a new transactionType
+ *
+ * @param string $transactionType
+ * @return self
+ */
+ public function setTransactionType($transactionType)
+ {
+ $this->transactionType = $transactionType;
+ return $this;
+ }
+
+ /**
+ * Gets as amount
+ *
+ * @return float
+ */
+ public function getAmount()
+ {
+ return $this->amount;
+ }
+
+ /**
+ * Sets a new amount
+ *
+ * @param float $amount
+ * @return self
+ */
+ public function setAmount($amount)
+ {
+ $this->amount = $amount;
+ return $this;
+ }
+
+ /**
+ * Gets as currencyCode
+ *
+ * @return string
+ */
+ public function getCurrencyCode()
+ {
+ return $this->currencyCode;
+ }
+
+ /**
+ * Sets a new currencyCode
+ *
+ * @param string $currencyCode
+ * @return self
+ */
+ public function setCurrencyCode($currencyCode)
+ {
+ $this->currencyCode = $currencyCode;
+ return $this;
+ }
+
+ /**
+ * Gets as payment
+ *
+ * @return \net\authorize\api\contract\v1\PaymentType
+ */
+ public function getPayment()
+ {
+ return $this->payment;
+ }
+
+ /**
+ * Sets a new payment
+ *
+ * @param \net\authorize\api\contract\v1\PaymentType $payment
+ * @return self
+ */
+ public function setPayment(\net\authorize\api\contract\v1\PaymentType $payment)
+ {
+ $this->payment = $payment;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfilePaymentType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfilePaymentType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfilePaymentType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Gets as solution
+ *
+ * @return \net\authorize\api\contract\v1\SolutionType
+ */
+ public function getSolution()
+ {
+ return $this->solution;
+ }
+
+ /**
+ * Sets a new solution
+ *
+ * @param \net\authorize\api\contract\v1\SolutionType $solution
+ * @return self
+ */
+ public function setSolution(\net\authorize\api\contract\v1\SolutionType $solution)
+ {
+ $this->solution = $solution;
+ return $this;
+ }
+
+ /**
+ * Gets as callId
+ *
+ * @return string
+ */
+ public function getCallId()
+ {
+ return $this->callId;
+ }
+
+ /**
+ * Sets a new callId
+ *
+ * @param string $callId
+ * @return self
+ */
+ public function setCallId($callId)
+ {
+ $this->callId = $callId;
+ return $this;
+ }
+
+ /**
+ * Gets as terminalNumber
+ *
+ * @return string
+ */
+ public function getTerminalNumber()
+ {
+ return $this->terminalNumber;
+ }
+
+ /**
+ * Sets a new terminalNumber
+ *
+ * @param string $terminalNumber
+ * @return self
+ */
+ public function setTerminalNumber($terminalNumber)
+ {
+ $this->terminalNumber = $terminalNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as authCode
+ *
+ * @return string
+ */
+ public function getAuthCode()
+ {
+ return $this->authCode;
+ }
+
+ /**
+ * Sets a new authCode
+ *
+ * @param string $authCode
+ * @return self
+ */
+ public function setAuthCode($authCode)
+ {
+ $this->authCode = $authCode;
+ return $this;
+ }
+
+ /**
+ * Gets as refTransId
+ *
+ * @return string
+ */
+ public function getRefTransId()
+ {
+ return $this->refTransId;
+ }
+
+ /**
+ * Sets a new refTransId
+ *
+ * @param string $refTransId
+ * @return self
+ */
+ public function setRefTransId($refTransId)
+ {
+ $this->refTransId = $refTransId;
+ return $this;
+ }
+
+ /**
+ * Gets as splitTenderId
+ *
+ * @return string
+ */
+ public function getSplitTenderId()
+ {
+ return $this->splitTenderId;
+ }
+
+ /**
+ * Sets a new splitTenderId
+ *
+ * @param string $splitTenderId
+ * @return self
+ */
+ public function setSplitTenderId($splitTenderId)
+ {
+ $this->splitTenderId = $splitTenderId;
+ return $this;
+ }
+
+ /**
+ * Gets as order
+ *
+ * @return \net\authorize\api\contract\v1\OrderType
+ */
+ public function getOrder()
+ {
+ return $this->order;
+ }
+
+ /**
+ * Sets a new order
+ *
+ * @param \net\authorize\api\contract\v1\OrderType $order
+ * @return self
+ */
+ public function setOrder(\net\authorize\api\contract\v1\OrderType $order)
+ {
+ $this->order = $order;
+ return $this;
+ }
+
+ /**
+ * Adds as lineItem
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\LineItemType $lineItem
+ */
+ public function addToLineItems(\net\authorize\api\contract\v1\LineItemType $lineItem)
+ {
+ $this->lineItems[] = $lineItem;
+ return $this;
+ }
+
+ /**
+ * isset lineItems
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetLineItems($index)
+ {
+ return isset($this->lineItems[$index]);
+ }
+
+ /**
+ * unset lineItems
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetLineItems($index)
+ {
+ unset($this->lineItems[$index]);
+ }
+
+ /**
+ * Gets as lineItems
+ *
+ * @return \net\authorize\api\contract\v1\LineItemType[]
+ */
+ public function getLineItems()
+ {
+ return $this->lineItems;
+ }
+
+ /**
+ * Sets a new lineItems
+ *
+ * @param \net\authorize\api\contract\v1\LineItemType[] $lineItems
+ * @return self
+ */
+ public function setLineItems(array $lineItems)
+ {
+ $this->lineItems = $lineItems;
+ return $this;
+ }
+
+ /**
+ * Gets as tax
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getTax()
+ {
+ return $this->tax;
+ }
+
+ /**
+ * Sets a new tax
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $tax
+ * @return self
+ */
+ public function setTax(\net\authorize\api\contract\v1\ExtendedAmountType $tax)
+ {
+ $this->tax = $tax;
+ return $this;
+ }
+
+ /**
+ * Gets as duty
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getDuty()
+ {
+ return $this->duty;
+ }
+
+ /**
+ * Sets a new duty
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $duty
+ * @return self
+ */
+ public function setDuty(\net\authorize\api\contract\v1\ExtendedAmountType $duty)
+ {
+ $this->duty = $duty;
+ return $this;
+ }
+
+ /**
+ * Gets as shipping
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getShipping()
+ {
+ return $this->shipping;
+ }
+
+ /**
+ * Sets a new shipping
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $shipping
+ * @return self
+ */
+ public function setShipping(\net\authorize\api\contract\v1\ExtendedAmountType $shipping)
+ {
+ $this->shipping = $shipping;
+ return $this;
+ }
+
+ /**
+ * Gets as taxExempt
+ *
+ * @return boolean
+ */
+ public function getTaxExempt()
+ {
+ return $this->taxExempt;
+ }
+
+ /**
+ * Sets a new taxExempt
+ *
+ * @param boolean $taxExempt
+ * @return self
+ */
+ public function setTaxExempt($taxExempt)
+ {
+ $this->taxExempt = $taxExempt;
+ return $this;
+ }
+
+ /**
+ * Gets as poNumber
+ *
+ * @return string
+ */
+ public function getPoNumber()
+ {
+ return $this->poNumber;
+ }
+
+ /**
+ * Sets a new poNumber
+ *
+ * @param string $poNumber
+ * @return self
+ */
+ public function setPoNumber($poNumber)
+ {
+ $this->poNumber = $poNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as customer
+ *
+ * @return \net\authorize\api\contract\v1\CustomerDataType
+ */
+ public function getCustomer()
+ {
+ return $this->customer;
+ }
+
+ /**
+ * Sets a new customer
+ *
+ * @param \net\authorize\api\contract\v1\CustomerDataType $customer
+ * @return self
+ */
+ public function setCustomer(\net\authorize\api\contract\v1\CustomerDataType $customer)
+ {
+ $this->customer = $customer;
+ return $this;
+ }
+
+ /**
+ * Gets as billTo
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressType
+ */
+ public function getBillTo()
+ {
+ return $this->billTo;
+ }
+
+ /**
+ * Sets a new billTo
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressType $billTo
+ * @return self
+ */
+ public function setBillTo(\net\authorize\api\contract\v1\CustomerAddressType $billTo)
+ {
+ $this->billTo = $billTo;
+ return $this;
+ }
+
+ /**
+ * Gets as shipTo
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipTo()
+ {
+ return $this->shipTo;
+ }
+
+ /**
+ * Sets a new shipTo
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipTo
+ * @return self
+ */
+ public function setShipTo(\net\authorize\api\contract\v1\NameAndAddressType $shipTo)
+ {
+ $this->shipTo = $shipTo;
+ return $this;
+ }
+
+ /**
+ * Gets as customerIP
+ *
+ * @return string
+ */
+ public function getCustomerIP()
+ {
+ return $this->customerIP;
+ }
+
+ /**
+ * Sets a new customerIP
+ *
+ * @param string $customerIP
+ * @return self
+ */
+ public function setCustomerIP($customerIP)
+ {
+ $this->customerIP = $customerIP;
+ return $this;
+ }
+
+ /**
+ * Gets as cardholderAuthentication
+ *
+ * @return \net\authorize\api\contract\v1\CcAuthenticationType
+ */
+ public function getCardholderAuthentication()
+ {
+ return $this->cardholderAuthentication;
+ }
+
+ /**
+ * Sets a new cardholderAuthentication
+ *
+ * @param \net\authorize\api\contract\v1\CcAuthenticationType
+ * $cardholderAuthentication
+ * @return self
+ */
+ public function setCardholderAuthentication(\net\authorize\api\contract\v1\CcAuthenticationType $cardholderAuthentication)
+ {
+ $this->cardholderAuthentication = $cardholderAuthentication;
+ return $this;
+ }
+
+ /**
+ * Gets as retail
+ *
+ * @return \net\authorize\api\contract\v1\TransRetailInfoType
+ */
+ public function getRetail()
+ {
+ return $this->retail;
+ }
+
+ /**
+ * Sets a new retail
+ *
+ * @param \net\authorize\api\contract\v1\TransRetailInfoType $retail
+ * @return self
+ */
+ public function setRetail(\net\authorize\api\contract\v1\TransRetailInfoType $retail)
+ {
+ $this->retail = $retail;
+ return $this;
+ }
+
+ /**
+ * Gets as employeeId
+ *
+ * @return string
+ */
+ public function getEmployeeId()
+ {
+ return $this->employeeId;
+ }
+
+ /**
+ * Sets a new employeeId
+ *
+ * @param string $employeeId
+ * @return self
+ */
+ public function setEmployeeId($employeeId)
+ {
+ $this->employeeId = $employeeId;
+ return $this;
+ }
+
+ /**
+ * Adds as setting
+ *
+ * Allowed values for settingName are: emailCustomer, merchantEmail,
+ * allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling,
+ * duplicateWindow, testRequest.
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\SettingType $setting
+ */
+ public function addToTransactionSettings(\net\authorize\api\contract\v1\SettingType $setting)
+ {
+ $this->transactionSettings[] = $setting;
+ return $this;
+ }
+
+ /**
+ * isset transactionSettings
+ *
+ * Allowed values for settingName are: emailCustomer, merchantEmail,
+ * allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling,
+ * duplicateWindow, testRequest.
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTransactionSettings($index)
+ {
+ return isset($this->transactionSettings[$index]);
+ }
+
+ /**
+ * unset transactionSettings
+ *
+ * Allowed values for settingName are: emailCustomer, merchantEmail,
+ * allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling,
+ * duplicateWindow, testRequest.
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTransactionSettings($index)
+ {
+ unset($this->transactionSettings[$index]);
+ }
+
+ /**
+ * Gets as transactionSettings
+ *
+ * Allowed values for settingName are: emailCustomer, merchantEmail,
+ * allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling,
+ * duplicateWindow, testRequest.
+ *
+ * @return \net\authorize\api\contract\v1\SettingType[]
+ */
+ public function getTransactionSettings()
+ {
+ return $this->transactionSettings;
+ }
+
+ /**
+ * Sets a new transactionSettings
+ *
+ * Allowed values for settingName are: emailCustomer, merchantEmail,
+ * allowPartialAuth, headerEmailReceipt, footerEmailReceipt, recurringBilling,
+ * duplicateWindow, testRequest.
+ *
+ * @param \net\authorize\api\contract\v1\SettingType[] $transactionSettings
+ * @return self
+ */
+ public function setTransactionSettings(array $transactionSettings)
+ {
+ $this->transactionSettings = $transactionSettings;
+ return $this;
+ }
+
+ /**
+ * Adds as userField
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\UserFieldType $userField
+ */
+ public function addToUserFields(\net\authorize\api\contract\v1\UserFieldType $userField)
+ {
+ $this->userFields[] = $userField;
+ return $this;
+ }
+
+ /**
+ * isset userFields
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetUserFields($index)
+ {
+ return isset($this->userFields[$index]);
+ }
+
+ /**
+ * unset userFields
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetUserFields($index)
+ {
+ unset($this->userFields[$index]);
+ }
+
+ /**
+ * Gets as userFields
+ *
+ * @return \net\authorize\api\contract\v1\UserFieldType[]
+ */
+ public function getUserFields()
+ {
+ return $this->userFields;
+ }
+
+ /**
+ * Sets a new userFields
+ *
+ * @param \net\authorize\api\contract\v1\UserFieldType[] $userFields
+ * @return self
+ */
+ public function setUserFields(array $userFields)
+ {
+ $this->userFields = $userFields;
+ return $this;
+ }
+
+ /**
+ * Gets as surcharge
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getSurcharge()
+ {
+ return $this->surcharge;
+ }
+
+ /**
+ * Sets a new surcharge
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $surcharge
+ * @return self
+ */
+ public function setSurcharge(\net\authorize\api\contract\v1\ExtendedAmountType $surcharge)
+ {
+ $this->surcharge = $surcharge;
+ return $this;
+ }
+
+ /**
+ * Gets as merchantDescriptor
+ *
+ * @return string
+ */
+ public function getMerchantDescriptor()
+ {
+ return $this->merchantDescriptor;
+ }
+
+ /**
+ * Sets a new merchantDescriptor
+ *
+ * @param string $merchantDescriptor
+ * @return self
+ */
+ public function setMerchantDescriptor($merchantDescriptor)
+ {
+ $this->merchantDescriptor = $merchantDescriptor;
+ return $this;
+ }
+
+ /**
+ * Gets as subMerchant
+ *
+ * @return \net\authorize\api\contract\v1\SubMerchantType
+ */
+ public function getSubMerchant()
+ {
+ return $this->subMerchant;
+ }
+
+ /**
+ * Sets a new subMerchant
+ *
+ * @param \net\authorize\api\contract\v1\SubMerchantType $subMerchant
+ * @return self
+ */
+ public function setSubMerchant(\net\authorize\api\contract\v1\SubMerchantType $subMerchant)
+ {
+ $this->subMerchant = $subMerchant;
+ return $this;
+ }
+
+ /**
+ * Gets as tip
+ *
+ * @return \net\authorize\api\contract\v1\ExtendedAmountType
+ */
+ public function getTip()
+ {
+ return $this->tip;
+ }
+
+ /**
+ * Sets a new tip
+ *
+ * @param \net\authorize\api\contract\v1\ExtendedAmountType $tip
+ * @return self
+ */
+ public function setTip(\net\authorize\api\contract\v1\ExtendedAmountType $tip)
+ {
+ $this->tip = $tip;
+ return $this;
+ }
+
+ /**
+ * Gets as processingOptions
+ *
+ * @return \net\authorize\api\contract\v1\ProcessingOptionsType
+ */
+ public function getProcessingOptions()
+ {
+ return $this->processingOptions;
+ }
+
+ /**
+ * Sets a new processingOptions
+ *
+ * @param \net\authorize\api\contract\v1\ProcessingOptionsType $processingOptions
+ * @return self
+ */
+ public function setProcessingOptions(\net\authorize\api\contract\v1\ProcessingOptionsType $processingOptions)
+ {
+ $this->processingOptions = $processingOptions;
+ return $this;
+ }
+
+ /**
+ * Gets as subsequentAuthInformation
+ *
+ * @return \net\authorize\api\contract\v1\SubsequentAuthInformationType
+ */
+ public function getSubsequentAuthInformation()
+ {
+ return $this->subsequentAuthInformation;
+ }
+
+ /**
+ * Sets a new subsequentAuthInformation
+ *
+ * @param \net\authorize\api\contract\v1\SubsequentAuthInformationType
+ * $subsequentAuthInformation
+ * @return self
+ */
+ public function setSubsequentAuthInformation(\net\authorize\api\contract\v1\SubsequentAuthInformationType $subsequentAuthInformation)
+ {
+ $this->subsequentAuthInformation = $subsequentAuthInformation;
+ return $this;
+ }
+
+ /**
+ * Gets as otherTax
+ *
+ * @return \net\authorize\api\contract\v1\OtherTaxType
+ */
+ public function getOtherTax()
+ {
+ return $this->otherTax;
+ }
+
+ /**
+ * Sets a new otherTax
+ *
+ * @param \net\authorize\api\contract\v1\OtherTaxType $otherTax
+ * @return self
+ */
+ public function setOtherTax(\net\authorize\api\contract\v1\OtherTaxType $otherTax)
+ {
+ $this->otherTax = $otherTax;
+ return $this;
+ }
+
+ /**
+ * Gets as shipFrom
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipFrom()
+ {
+ return $this->shipFrom;
+ }
+
+ /**
+ * Sets a new shipFrom
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipFrom
+ * @return self
+ */
+ public function setShipFrom(\net\authorize\api\contract\v1\NameAndAddressType $shipFrom)
+ {
+ $this->shipFrom = $shipFrom;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType/UserFieldsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType/UserFieldsAType.php
new file mode 100644
index 0000000..436569a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionRequestType/UserFieldsAType.php
@@ -0,0 +1,157 @@
+userField[] = $userField;
+ return $this;
+ }
+
+ /**
+ * isset userField
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetUserField($index)
+ {
+ return isset($this->userField[$index]);
+ }
+
+ /**
+ * unset userField
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetUserField($index)
+ {
+ unset($this->userField[$index]);
+ }
+
+ /**
+ * Gets as userField
+ *
+ * @return \net\authorize\api\contract\v1\UserFieldType[]
+ */
+ public function getUserField()
+ {
+ return $this->userField;
+ }
+
+ /**
+ * Sets a new userField
+ *
+ * @param \net\authorize\api\contract\v1\UserFieldType[] $userField
+ * @return self
+ */
+ public function setUserField(array $userField)
+ {
+ $this->userField = $userField;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType.php
new file mode 100644
index 0000000..90cad61
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType.php
@@ -0,0 +1,942 @@
+responseCode;
+ }
+
+ /**
+ * Sets a new responseCode
+ *
+ * @param string $responseCode
+ * @return self
+ */
+ public function setResponseCode($responseCode)
+ {
+ $this->responseCode = $responseCode;
+ return $this;
+ }
+
+ /**
+ * Gets as rawResponseCode
+ *
+ * @return string
+ */
+ public function getRawResponseCode()
+ {
+ return $this->rawResponseCode;
+ }
+
+ /**
+ * Sets a new rawResponseCode
+ *
+ * @param string $rawResponseCode
+ * @return self
+ */
+ public function setRawResponseCode($rawResponseCode)
+ {
+ $this->rawResponseCode = $rawResponseCode;
+ return $this;
+ }
+
+ /**
+ * Gets as authCode
+ *
+ * @return string
+ */
+ public function getAuthCode()
+ {
+ return $this->authCode;
+ }
+
+ /**
+ * Sets a new authCode
+ *
+ * @param string $authCode
+ * @return self
+ */
+ public function setAuthCode($authCode)
+ {
+ $this->authCode = $authCode;
+ return $this;
+ }
+
+ /**
+ * Gets as avsResultCode
+ *
+ * @return string
+ */
+ public function getAvsResultCode()
+ {
+ return $this->avsResultCode;
+ }
+
+ /**
+ * Sets a new avsResultCode
+ *
+ * @param string $avsResultCode
+ * @return self
+ */
+ public function setAvsResultCode($avsResultCode)
+ {
+ $this->avsResultCode = $avsResultCode;
+ return $this;
+ }
+
+ /**
+ * Gets as cvvResultCode
+ *
+ * @return string
+ */
+ public function getCvvResultCode()
+ {
+ return $this->cvvResultCode;
+ }
+
+ /**
+ * Sets a new cvvResultCode
+ *
+ * @param string $cvvResultCode
+ * @return self
+ */
+ public function setCvvResultCode($cvvResultCode)
+ {
+ $this->cvvResultCode = $cvvResultCode;
+ return $this;
+ }
+
+ /**
+ * Gets as cavvResultCode
+ *
+ * @return string
+ */
+ public function getCavvResultCode()
+ {
+ return $this->cavvResultCode;
+ }
+
+ /**
+ * Sets a new cavvResultCode
+ *
+ * @param string $cavvResultCode
+ * @return self
+ */
+ public function setCavvResultCode($cavvResultCode)
+ {
+ $this->cavvResultCode = $cavvResultCode;
+ return $this;
+ }
+
+ /**
+ * Gets as transId
+ *
+ * @return string
+ */
+ public function getTransId()
+ {
+ return $this->transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as refTransID
+ *
+ * @return string
+ */
+ public function getRefTransID()
+ {
+ return $this->refTransID;
+ }
+
+ /**
+ * Sets a new refTransID
+ *
+ * @param string $refTransID
+ * @return self
+ */
+ public function setRefTransID($refTransID)
+ {
+ $this->refTransID = $refTransID;
+ return $this;
+ }
+
+ /**
+ * Gets as transHash
+ *
+ * @return string
+ */
+ public function getTransHash()
+ {
+ return $this->transHash;
+ }
+
+ /**
+ * Sets a new transHash
+ *
+ * @param string $transHash
+ * @return self
+ */
+ public function setTransHash($transHash)
+ {
+ $this->transHash = $transHash;
+ return $this;
+ }
+
+ /**
+ * Gets as testRequest
+ *
+ * @return string
+ */
+ public function getTestRequest()
+ {
+ return $this->testRequest;
+ }
+
+ /**
+ * Sets a new testRequest
+ *
+ * @param string $testRequest
+ * @return self
+ */
+ public function setTestRequest($testRequest)
+ {
+ $this->testRequest = $testRequest;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as entryMode
+ *
+ * @return string
+ */
+ public function getEntryMode()
+ {
+ return $this->entryMode;
+ }
+
+ /**
+ * Sets a new entryMode
+ *
+ * @param string $entryMode
+ * @return self
+ */
+ public function setEntryMode($entryMode)
+ {
+ $this->entryMode = $entryMode;
+ return $this;
+ }
+
+ /**
+ * Gets as accountType
+ *
+ * @return string
+ */
+ public function getAccountType()
+ {
+ return $this->accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as splitTenderId
+ *
+ * @return string
+ */
+ public function getSplitTenderId()
+ {
+ return $this->splitTenderId;
+ }
+
+ /**
+ * Sets a new splitTenderId
+ *
+ * @param string $splitTenderId
+ * @return self
+ */
+ public function setSplitTenderId($splitTenderId)
+ {
+ $this->splitTenderId = $splitTenderId;
+ return $this;
+ }
+
+ /**
+ * Gets as prePaidCard
+ *
+ * @return \net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType
+ */
+ public function getPrePaidCard()
+ {
+ return $this->prePaidCard;
+ }
+
+ /**
+ * Sets a new prePaidCard
+ *
+ * @param \net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType
+ * $prePaidCard
+ * @return self
+ */
+ public function setPrePaidCard(\net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType $prePaidCard)
+ {
+ $this->prePaidCard = $prePaidCard;
+ return $this;
+ }
+
+ /**
+ * Adds as message
+ *
+ * @return self
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType
+ * $message
+ */
+ public function addToMessages(\net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType $message)
+ {
+ $this->messages[] = $message;
+ return $this;
+ }
+
+ /**
+ * isset messages
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetMessages($index)
+ {
+ return isset($this->messages[$index]);
+ }
+
+ /**
+ * unset messages
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetMessages($index)
+ {
+ unset($this->messages[$index]);
+ }
+
+ /**
+ * Gets as messages
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType[]
+ */
+ public function getMessages()
+ {
+ return $this->messages;
+ }
+
+ /**
+ * Sets a new messages
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType[]
+ * $messages
+ * @return self
+ */
+ public function setMessages(array $messages)
+ {
+ $this->messages = $messages;
+ return $this;
+ }
+
+ /**
+ * Adds as error
+ *
+ * @return self
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType
+ * $error
+ */
+ public function addToErrors(\net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType $error)
+ {
+ $this->errors[] = $error;
+ return $this;
+ }
+
+ /**
+ * isset errors
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetErrors($index)
+ {
+ return isset($this->errors[$index]);
+ }
+
+ /**
+ * unset errors
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetErrors($index)
+ {
+ unset($this->errors[$index]);
+ }
+
+ /**
+ * Gets as errors
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType[]
+ */
+ public function getErrors()
+ {
+ return $this->errors;
+ }
+
+ /**
+ * Sets a new errors
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType[]
+ * $errors
+ * @return self
+ */
+ public function setErrors(array $errors)
+ {
+ $this->errors = $errors;
+ return $this;
+ }
+
+ /**
+ * Adds as splitTenderPayment
+ *
+ * @return self
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType
+ * $splitTenderPayment
+ */
+ public function addToSplitTenderPayments(\net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType $splitTenderPayment)
+ {
+ $this->splitTenderPayments[] = $splitTenderPayment;
+ return $this;
+ }
+
+ /**
+ * isset splitTenderPayments
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSplitTenderPayments($index)
+ {
+ return isset($this->splitTenderPayments[$index]);
+ }
+
+ /**
+ * unset splitTenderPayments
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSplitTenderPayments($index)
+ {
+ unset($this->splitTenderPayments[$index]);
+ }
+
+ /**
+ * Gets as splitTenderPayments
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType[]
+ */
+ public function getSplitTenderPayments()
+ {
+ return $this->splitTenderPayments;
+ }
+
+ /**
+ * Sets a new splitTenderPayments
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType[]
+ * $splitTenderPayments
+ * @return self
+ */
+ public function setSplitTenderPayments(array $splitTenderPayments)
+ {
+ $this->splitTenderPayments = $splitTenderPayments;
+ return $this;
+ }
+
+ /**
+ * Adds as userField
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\UserFieldType $userField
+ */
+ public function addToUserFields(\net\authorize\api\contract\v1\UserFieldType $userField)
+ {
+ $this->userFields[] = $userField;
+ return $this;
+ }
+
+ /**
+ * isset userFields
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetUserFields($index)
+ {
+ return isset($this->userFields[$index]);
+ }
+
+ /**
+ * unset userFields
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetUserFields($index)
+ {
+ unset($this->userFields[$index]);
+ }
+
+ /**
+ * Gets as userFields
+ *
+ * @return \net\authorize\api\contract\v1\UserFieldType[]
+ */
+ public function getUserFields()
+ {
+ return $this->userFields;
+ }
+
+ /**
+ * Sets a new userFields
+ *
+ * @param \net\authorize\api\contract\v1\UserFieldType[] $userFields
+ * @return self
+ */
+ public function setUserFields(array $userFields)
+ {
+ $this->userFields = $userFields;
+ return $this;
+ }
+
+ /**
+ * Gets as shipTo
+ *
+ * @return \net\authorize\api\contract\v1\NameAndAddressType
+ */
+ public function getShipTo()
+ {
+ return $this->shipTo;
+ }
+
+ /**
+ * Sets a new shipTo
+ *
+ * @param \net\authorize\api\contract\v1\NameAndAddressType $shipTo
+ * @return self
+ */
+ public function setShipTo(\net\authorize\api\contract\v1\NameAndAddressType $shipTo)
+ {
+ $this->shipTo = $shipTo;
+ return $this;
+ }
+
+ /**
+ * Gets as secureAcceptance
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType
+ */
+ public function getSecureAcceptance()
+ {
+ return $this->secureAcceptance;
+ }
+
+ /**
+ * Sets a new secureAcceptance
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType
+ * $secureAcceptance
+ * @return self
+ */
+ public function setSecureAcceptance(\net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType $secureAcceptance)
+ {
+ $this->secureAcceptance = $secureAcceptance;
+ return $this;
+ }
+
+ /**
+ * Gets as emvResponse
+ *
+ * @return \net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType
+ */
+ public function getEmvResponse()
+ {
+ return $this->emvResponse;
+ }
+
+ /**
+ * Sets a new emvResponse
+ *
+ * @param \net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType
+ * $emvResponse
+ * @return self
+ */
+ public function setEmvResponse(\net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType $emvResponse)
+ {
+ $this->emvResponse = $emvResponse;
+ return $this;
+ }
+
+ /**
+ * Gets as transHashSha2
+ *
+ * @return string
+ */
+ public function getTransHashSha2()
+ {
+ return $this->transHashSha2;
+ }
+
+ /**
+ * Sets a new transHashSha2
+ *
+ * @param string $transHashSha2
+ * @return self
+ */
+ public function setTransHashSha2($transHashSha2)
+ {
+ $this->transHashSha2 = $transHashSha2;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileIdType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+ /**
+ * Gets as networkTransId
+ *
+ * @return string
+ */
+ public function getNetworkTransId()
+ {
+ return $this->networkTransId;
+ }
+
+ /**
+ * Sets a new networkTransId
+ *
+ * @param string $networkTransId
+ * @return self
+ */
+ public function setNetworkTransId($networkTransId)
+ {
+ $this->networkTransId = $networkTransId;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType.php
new file mode 100644
index 0000000..7988105
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType.php
@@ -0,0 +1,184 @@
+tlvData;
+ }
+
+ /**
+ * Sets a new tlvData
+ *
+ * @param string $tlvData
+ * @return self
+ */
+ public function setTlvData($tlvData)
+ {
+ $this->tlvData = $tlvData;
+ return $this;
+ }
+
+ /**
+ * Adds as tag
+ *
+ * @return self
+ * @param \net\authorize\api\contract\v1\EmvTagType $tag
+ */
+ public function addToTags(\net\authorize\api\contract\v1\EmvTagType $tag)
+ {
+ $this->tags[] = $tag;
+ return $this;
+ }
+
+ /**
+ * isset tags
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTags($index)
+ {
+ return isset($this->tags[$index]);
+ }
+
+ /**
+ * unset tags
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTags($index)
+ {
+ unset($this->tags[$index]);
+ }
+
+ /**
+ * Gets as tags
+ *
+ * @return \net\authorize\api\contract\v1\EmvTagType[]
+ */
+ public function getTags()
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Sets a new tags
+ *
+ * @param \net\authorize\api\contract\v1\EmvTagType[] $tags
+ * @return self
+ */
+ public function setTags(array $tags)
+ {
+ $this->tags = $tags;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType/TagsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType/TagsAType.php
new file mode 100644
index 0000000..1523273
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/EmvResponseAType/TagsAType.php
@@ -0,0 +1,157 @@
+tag[] = $tag;
+ return $this;
+ }
+
+ /**
+ * isset tag
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetTag($index)
+ {
+ return isset($this->tag[$index]);
+ }
+
+ /**
+ * unset tag
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetTag($index)
+ {
+ unset($this->tag[$index]);
+ }
+
+ /**
+ * Gets as tag
+ *
+ * @return \net\authorize\api\contract\v1\EmvTagType[]
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ /**
+ * Sets a new tag
+ *
+ * @param \net\authorize\api\contract\v1\EmvTagType[] $tag
+ * @return self
+ */
+ public function setTag(array $tag)
+ {
+ $this->tag = $tag;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType.php
new file mode 100644
index 0000000..5c579fd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType.php
@@ -0,0 +1,164 @@
+error[] = $error;
+ return $this;
+ }
+
+ /**
+ * isset error
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetError($index)
+ {
+ return isset($this->error[$index]);
+ }
+
+ /**
+ * unset error
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetError($index)
+ {
+ unset($this->error[$index]);
+ }
+
+ /**
+ * Gets as error
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType[]
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+
+ /**
+ * Sets a new error
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType[]
+ * $error
+ * @return self
+ */
+ public function setError(array $error)
+ {
+ $this->error = $error;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType/ErrorAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType/ErrorAType.php
new file mode 100644
index 0000000..24ac9a9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/ErrorsAType/ErrorAType.php
@@ -0,0 +1,150 @@
+errorCode;
+ }
+
+ /**
+ * Sets a new errorCode
+ *
+ * @param string $errorCode
+ * @return self
+ */
+ public function setErrorCode($errorCode)
+ {
+ $this->errorCode = $errorCode;
+ return $this;
+ }
+
+ /**
+ * Gets as errorText
+ *
+ * @return string
+ */
+ public function getErrorText()
+ {
+ return $this->errorText;
+ }
+
+ /**
+ * Sets a new errorText
+ *
+ * @param string $errorText
+ * @return self
+ */
+ public function setErrorText($errorText)
+ {
+ $this->errorText = $errorText;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType.php
new file mode 100644
index 0000000..2eda2df
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType.php
@@ -0,0 +1,164 @@
+message[] = $message;
+ return $this;
+ }
+
+ /**
+ * isset message
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetMessage($index)
+ {
+ return isset($this->message[$index]);
+ }
+
+ /**
+ * unset message
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetMessage($index)
+ {
+ unset($this->message[$index]);
+ }
+
+ /**
+ * Gets as message
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType[]
+ */
+ public function getMessage()
+ {
+ return $this->message;
+ }
+
+ /**
+ * Sets a new message
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType[]
+ * $message
+ * @return self
+ */
+ public function setMessage(array $message)
+ {
+ $this->message = $message;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType/MessageAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType/MessageAType.php
new file mode 100644
index 0000000..2e2a730
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/MessagesAType/MessageAType.php
@@ -0,0 +1,150 @@
+code;
+ }
+
+ /**
+ * Sets a new code
+ *
+ * @param string $code
+ * @return self
+ */
+ public function setCode($code)
+ {
+ $this->code = $code;
+ return $this;
+ }
+
+ /**
+ * Gets as description
+ *
+ * @return string
+ */
+ public function getDescription()
+ {
+ return $this->description;
+ }
+
+ /**
+ * Sets a new description
+ *
+ * @param string $description
+ * @return self
+ */
+ public function setDescription($description)
+ {
+ $this->description = $description;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/PrePaidCardAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/PrePaidCardAType.php
new file mode 100644
index 0000000..06f2a51
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/PrePaidCardAType.php
@@ -0,0 +1,177 @@
+requestedAmount;
+ }
+
+ /**
+ * Sets a new requestedAmount
+ *
+ * @param string $requestedAmount
+ * @return self
+ */
+ public function setRequestedAmount($requestedAmount)
+ {
+ $this->requestedAmount = $requestedAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as approvedAmount
+ *
+ * @return string
+ */
+ public function getApprovedAmount()
+ {
+ return $this->approvedAmount;
+ }
+
+ /**
+ * Sets a new approvedAmount
+ *
+ * @param string $approvedAmount
+ * @return self
+ */
+ public function setApprovedAmount($approvedAmount)
+ {
+ $this->approvedAmount = $approvedAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as balanceOnCard
+ *
+ * @return string
+ */
+ public function getBalanceOnCard()
+ {
+ return $this->balanceOnCard;
+ }
+
+ /**
+ * Sets a new balanceOnCard
+ *
+ * @param string $balanceOnCard
+ * @return self
+ */
+ public function setBalanceOnCard($balanceOnCard)
+ {
+ $this->balanceOnCard = $balanceOnCard;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SecureAcceptanceAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SecureAcceptanceAType.php
new file mode 100644
index 0000000..9f948be
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SecureAcceptanceAType.php
@@ -0,0 +1,177 @@
+secureAcceptanceUrl;
+ }
+
+ /**
+ * Sets a new secureAcceptanceUrl
+ *
+ * @param string $secureAcceptanceUrl
+ * @return self
+ */
+ public function setSecureAcceptanceUrl($secureAcceptanceUrl)
+ {
+ $this->secureAcceptanceUrl = $secureAcceptanceUrl;
+ return $this;
+ }
+
+ /**
+ * Gets as payerID
+ *
+ * @return string
+ */
+ public function getPayerID()
+ {
+ return $this->payerID;
+ }
+
+ /**
+ * Sets a new payerID
+ *
+ * @param string $payerID
+ * @return self
+ */
+ public function setPayerID($payerID)
+ {
+ $this->payerID = $payerID;
+ return $this;
+ }
+
+ /**
+ * Gets as payerEmail
+ *
+ * @return string
+ */
+ public function getPayerEmail()
+ {
+ return $this->payerEmail;
+ }
+
+ /**
+ * Sets a new payerEmail
+ *
+ * @param string $payerEmail
+ * @return self
+ */
+ public function setPayerEmail($payerEmail)
+ {
+ $this->payerEmail = $payerEmail;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType.php
new file mode 100644
index 0000000..8c55326
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType.php
@@ -0,0 +1,164 @@
+splitTenderPayment[] = $splitTenderPayment;
+ return $this;
+ }
+
+ /**
+ * isset splitTenderPayment
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetSplitTenderPayment($index)
+ {
+ return isset($this->splitTenderPayment[$index]);
+ }
+
+ /**
+ * unset splitTenderPayment
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetSplitTenderPayment($index)
+ {
+ unset($this->splitTenderPayment[$index]);
+ }
+
+ /**
+ * Gets as splitTenderPayment
+ *
+ * @return
+ * \net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType[]
+ */
+ public function getSplitTenderPayment()
+ {
+ return $this->splitTenderPayment;
+ }
+
+ /**
+ * Sets a new splitTenderPayment
+ *
+ * @param
+ * \net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType[]
+ * $splitTenderPayment
+ * @return self
+ */
+ public function setSplitTenderPayment(array $splitTenderPayment)
+ {
+ $this->splitTenderPayment = $splitTenderPayment;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType/SplitTenderPaymentAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType/SplitTenderPaymentAType.php
new file mode 100644
index 0000000..69a9954
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/SplitTenderPaymentsAType/SplitTenderPaymentAType.php
@@ -0,0 +1,339 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as responseCode
+ *
+ * @return string
+ */
+ public function getResponseCode()
+ {
+ return $this->responseCode;
+ }
+
+ /**
+ * Sets a new responseCode
+ *
+ * @param string $responseCode
+ * @return self
+ */
+ public function setResponseCode($responseCode)
+ {
+ $this->responseCode = $responseCode;
+ return $this;
+ }
+
+ /**
+ * Gets as responseToCustomer
+ *
+ * @return string
+ */
+ public function getResponseToCustomer()
+ {
+ return $this->responseToCustomer;
+ }
+
+ /**
+ * Sets a new responseToCustomer
+ *
+ * @param string $responseToCustomer
+ * @return self
+ */
+ public function setResponseToCustomer($responseToCustomer)
+ {
+ $this->responseToCustomer = $responseToCustomer;
+ return $this;
+ }
+
+ /**
+ * Gets as authCode
+ *
+ * @return string
+ */
+ public function getAuthCode()
+ {
+ return $this->authCode;
+ }
+
+ /**
+ * Sets a new authCode
+ *
+ * @param string $authCode
+ * @return self
+ */
+ public function setAuthCode($authCode)
+ {
+ $this->authCode = $authCode;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as accountType
+ *
+ * @return string
+ */
+ public function getAccountType()
+ {
+ return $this->accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as requestedAmount
+ *
+ * @return string
+ */
+ public function getRequestedAmount()
+ {
+ return $this->requestedAmount;
+ }
+
+ /**
+ * Sets a new requestedAmount
+ *
+ * @param string $requestedAmount
+ * @return self
+ */
+ public function setRequestedAmount($requestedAmount)
+ {
+ $this->requestedAmount = $requestedAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as approvedAmount
+ *
+ * @return string
+ */
+ public function getApprovedAmount()
+ {
+ return $this->approvedAmount;
+ }
+
+ /**
+ * Sets a new approvedAmount
+ *
+ * @param string $approvedAmount
+ * @return self
+ */
+ public function setApprovedAmount($approvedAmount)
+ {
+ $this->approvedAmount = $approvedAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as balanceOnCard
+ *
+ * @return string
+ */
+ public function getBalanceOnCard()
+ {
+ return $this->balanceOnCard;
+ }
+
+ /**
+ * Sets a new balanceOnCard
+ *
+ * @param string $balanceOnCard
+ * @return self
+ */
+ public function setBalanceOnCard($balanceOnCard)
+ {
+ $this->balanceOnCard = $balanceOnCard;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/UserFieldsAType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/UserFieldsAType.php
new file mode 100644
index 0000000..c0350e8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionResponseType/UserFieldsAType.php
@@ -0,0 +1,157 @@
+userField[] = $userField;
+ return $this;
+ }
+
+ /**
+ * isset userField
+ *
+ * @param scalar $index
+ * @return boolean
+ */
+ public function issetUserField($index)
+ {
+ return isset($this->userField[$index]);
+ }
+
+ /**
+ * unset userField
+ *
+ * @param scalar $index
+ * @return void
+ */
+ public function unsetUserField($index)
+ {
+ unset($this->userField[$index]);
+ }
+
+ /**
+ * Gets as userField
+ *
+ * @return \net\authorize\api\contract\v1\UserFieldType[]
+ */
+ public function getUserField()
+ {
+ return $this->userField;
+ }
+
+ /**
+ * Sets a new userField
+ *
+ * @param \net\authorize\api\contract\v1\UserFieldType[] $userField
+ * @return self
+ */
+ public function setUserField(array $userField)
+ {
+ $this->userField = $userField;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionSummaryType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionSummaryType.php
new file mode 100644
index 0000000..0a7ac60
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/TransactionSummaryType.php
@@ -0,0 +1,558 @@
+transId;
+ }
+
+ /**
+ * Sets a new transId
+ *
+ * @param string $transId
+ * @return self
+ */
+ public function setTransId($transId)
+ {
+ $this->transId = $transId;
+ return $this;
+ }
+
+ /**
+ * Gets as submitTimeUTC
+ *
+ * @return \DateTime
+ */
+ public function getSubmitTimeUTC()
+ {
+ return $this->submitTimeUTC;
+ }
+
+ /**
+ * Sets a new submitTimeUTC
+ *
+ * @param \DateTime $submitTimeUTC
+ * @return self
+ */
+ public function setSubmitTimeUTC(\DateTime $submitTimeUTC)
+ {
+ $this->submitTimeUTC = $submitTimeUTC;
+ return $this;
+ }
+
+ /**
+ * Gets as submitTimeLocal
+ *
+ * @return \DateTime
+ */
+ public function getSubmitTimeLocal()
+ {
+ return $this->submitTimeLocal;
+ }
+
+ /**
+ * Sets a new submitTimeLocal
+ *
+ * @param \DateTime $submitTimeLocal
+ * @return self
+ */
+ public function setSubmitTimeLocal(\DateTime $submitTimeLocal)
+ {
+ $this->submitTimeLocal = $submitTimeLocal;
+ return $this;
+ }
+
+ /**
+ * Gets as transactionStatus
+ *
+ * @return string
+ */
+ public function getTransactionStatus()
+ {
+ return $this->transactionStatus;
+ }
+
+ /**
+ * Sets a new transactionStatus
+ *
+ * @param string $transactionStatus
+ * @return self
+ */
+ public function setTransactionStatus($transactionStatus)
+ {
+ $this->transactionStatus = $transactionStatus;
+ return $this;
+ }
+
+ /**
+ * Gets as invoiceNumber
+ *
+ * @return string
+ */
+ public function getInvoiceNumber()
+ {
+ return $this->invoiceNumber;
+ }
+
+ /**
+ * Sets a new invoiceNumber
+ *
+ * @param string $invoiceNumber
+ * @return self
+ */
+ public function setInvoiceNumber($invoiceNumber)
+ {
+ $this->invoiceNumber = $invoiceNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as firstName
+ *
+ * @return string
+ */
+ public function getFirstName()
+ {
+ return $this->firstName;
+ }
+
+ /**
+ * Sets a new firstName
+ *
+ * @param string $firstName
+ * @return self
+ */
+ public function setFirstName($firstName)
+ {
+ $this->firstName = $firstName;
+ return $this;
+ }
+
+ /**
+ * Gets as lastName
+ *
+ * @return string
+ */
+ public function getLastName()
+ {
+ return $this->lastName;
+ }
+
+ /**
+ * Sets a new lastName
+ *
+ * @param string $lastName
+ * @return self
+ */
+ public function setLastName($lastName)
+ {
+ $this->lastName = $lastName;
+ return $this;
+ }
+
+ /**
+ * Gets as accountType
+ *
+ * @return string
+ */
+ public function getAccountType()
+ {
+ return $this->accountType;
+ }
+
+ /**
+ * Sets a new accountType
+ *
+ * @param string $accountType
+ * @return self
+ */
+ public function setAccountType($accountType)
+ {
+ $this->accountType = $accountType;
+ return $this;
+ }
+
+ /**
+ * Gets as accountNumber
+ *
+ * @return string
+ */
+ public function getAccountNumber()
+ {
+ return $this->accountNumber;
+ }
+
+ /**
+ * Sets a new accountNumber
+ *
+ * @param string $accountNumber
+ * @return self
+ */
+ public function setAccountNumber($accountNumber)
+ {
+ $this->accountNumber = $accountNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as settleAmount
+ *
+ * @return float
+ */
+ public function getSettleAmount()
+ {
+ return $this->settleAmount;
+ }
+
+ /**
+ * Sets a new settleAmount
+ *
+ * @param float $settleAmount
+ * @return self
+ */
+ public function setSettleAmount($settleAmount)
+ {
+ $this->settleAmount = $settleAmount;
+ return $this;
+ }
+
+ /**
+ * Gets as marketType
+ *
+ * @return string
+ */
+ public function getMarketType()
+ {
+ return $this->marketType;
+ }
+
+ /**
+ * Sets a new marketType
+ *
+ * @param string $marketType
+ * @return self
+ */
+ public function setMarketType($marketType)
+ {
+ $this->marketType = $marketType;
+ return $this;
+ }
+
+ /**
+ * Gets as product
+ *
+ * @return string
+ */
+ public function getProduct()
+ {
+ return $this->product;
+ }
+
+ /**
+ * Sets a new product
+ *
+ * @param string $product
+ * @return self
+ */
+ public function setProduct($product)
+ {
+ $this->product = $product;
+ return $this;
+ }
+
+ /**
+ * Gets as mobileDeviceId
+ *
+ * @return string
+ */
+ public function getMobileDeviceId()
+ {
+ return $this->mobileDeviceId;
+ }
+
+ /**
+ * Sets a new mobileDeviceId
+ *
+ * @param string $mobileDeviceId
+ * @return self
+ */
+ public function setMobileDeviceId($mobileDeviceId)
+ {
+ $this->mobileDeviceId = $mobileDeviceId;
+ return $this;
+ }
+
+ /**
+ * Gets as subscription
+ *
+ * @return \net\authorize\api\contract\v1\SubscriptionPaymentType
+ */
+ public function getSubscription()
+ {
+ return $this->subscription;
+ }
+
+ /**
+ * Sets a new subscription
+ *
+ * @param \net\authorize\api\contract\v1\SubscriptionPaymentType $subscription
+ * @return self
+ */
+ public function setSubscription(\net\authorize\api\contract\v1\SubscriptionPaymentType $subscription)
+ {
+ $this->subscription = $subscription;
+ return $this;
+ }
+
+ /**
+ * Gets as hasReturnedItems
+ *
+ * @return boolean
+ */
+ public function getHasReturnedItems()
+ {
+ return $this->hasReturnedItems;
+ }
+
+ /**
+ * Sets a new hasReturnedItems
+ *
+ * @param boolean $hasReturnedItems
+ * @return self
+ */
+ public function setHasReturnedItems($hasReturnedItems)
+ {
+ $this->hasReturnedItems = $hasReturnedItems;
+ return $this;
+ }
+
+ /**
+ * Gets as fraudInformation
+ *
+ * @return \net\authorize\api\contract\v1\FraudInformationType
+ */
+ public function getFraudInformation()
+ {
+ return $this->fraudInformation;
+ }
+
+ /**
+ * Sets a new fraudInformation
+ *
+ * @param \net\authorize\api\contract\v1\FraudInformationType $fraudInformation
+ * @return self
+ */
+ public function setFraudInformation(\net\authorize\api\contract\v1\FraudInformationType $fraudInformation)
+ {
+ $this->fraudInformation = $fraudInformation;
+ return $this;
+ }
+
+ /**
+ * Gets as profile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerProfileIdType
+ */
+ public function getProfile()
+ {
+ return $this->profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileIdType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileIdType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileRequest.php
new file mode 100644
index 0000000..ffd62d5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileRequest.php
@@ -0,0 +1,131 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as paymentProfile
+ *
+ * @return \net\authorize\api\contract\v1\CustomerPaymentProfileExType
+ */
+ public function getPaymentProfile()
+ {
+ return $this->paymentProfile;
+ }
+
+ /**
+ * Sets a new paymentProfile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerPaymentProfileExType
+ * $paymentProfile
+ * @return self
+ */
+ public function setPaymentProfile(\net\authorize\api\contract\v1\CustomerPaymentProfileExType $paymentProfile)
+ {
+ $this->paymentProfile = $paymentProfile;
+ return $this;
+ }
+
+ /**
+ * Gets as validationMode
+ *
+ * @return string
+ */
+ public function getValidationMode()
+ {
+ return $this->validationMode;
+ }
+
+ /**
+ * Sets a new validationMode
+ *
+ * @param string $validationMode
+ * @return self
+ */
+ public function setValidationMode($validationMode)
+ {
+ $this->validationMode = $validationMode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileResponse.php
new file mode 100644
index 0000000..b7e847b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerPaymentProfileResponse.php
@@ -0,0 +1,88 @@
+validationDirectResponse;
+ }
+
+ /**
+ * Sets a new validationDirectResponse
+ *
+ * @param string $validationDirectResponse
+ * @return self
+ */
+ public function setValidationDirectResponse($validationDirectResponse)
+ {
+ $this->validationDirectResponse = $validationDirectResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileRequest.php
new file mode 100644
index 0000000..8d686a2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileRequest.php
@@ -0,0 +1,75 @@
+profile;
+ }
+
+ /**
+ * Sets a new profile
+ *
+ * @param \net\authorize\api\contract\v1\CustomerProfileExType $profile
+ * @return self
+ */
+ public function setProfile(\net\authorize\api\contract\v1\CustomerProfileExType $profile)
+ {
+ $this->profile = $profile;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileResponse.php
new file mode 100644
index 0000000..969e069
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerProfileResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressRequest.php
new file mode 100644
index 0000000..31188c8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressRequest.php
@@ -0,0 +1,129 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as address
+ *
+ * @return \net\authorize\api\contract\v1\CustomerAddressExType
+ */
+ public function getAddress()
+ {
+ return $this->address;
+ }
+
+ /**
+ * Sets a new address
+ *
+ * @param \net\authorize\api\contract\v1\CustomerAddressExType $address
+ * @return self
+ */
+ public function setAddress(\net\authorize\api\contract\v1\CustomerAddressExType $address)
+ {
+ $this->address = $address;
+ return $this;
+ }
+
+ /**
+ * Gets as defaultShippingAddress
+ *
+ * @return boolean
+ */
+ public function getDefaultShippingAddress()
+ {
+ return $this->defaultShippingAddress;
+ }
+
+ /**
+ * Sets a new defaultShippingAddress
+ *
+ * @param boolean $defaultShippingAddress
+ * @return self
+ */
+ public function setDefaultShippingAddress($defaultShippingAddress)
+ {
+ $this->defaultShippingAddress = $defaultShippingAddress;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressResponse.php
new file mode 100644
index 0000000..d3f842d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateCustomerShippingAddressResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionRequest.php
new file mode 100644
index 0000000..94398ad
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionRequest.php
@@ -0,0 +1,77 @@
+heldTransactionRequest;
+ }
+
+ /**
+ * Sets a new heldTransactionRequest
+ *
+ * @param \net\authorize\api\contract\v1\HeldTransactionRequestType
+ * $heldTransactionRequest
+ * @return self
+ */
+ public function setHeldTransactionRequest(\net\authorize\api\contract\v1\HeldTransactionRequestType $heldTransactionRequest)
+ {
+ $this->heldTransactionRequest = $heldTransactionRequest;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionResponse.php
new file mode 100644
index 0000000..22cb344
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateHeldTransactionResponse.php
@@ -0,0 +1,90 @@
+transactionResponse;
+ }
+
+ /**
+ * Sets a new transactionResponse
+ *
+ * @param \net\authorize\api\contract\v1\TransactionResponseType
+ * $transactionResponse
+ * @return self
+ */
+ public function setTransactionResponse(\net\authorize\api\contract\v1\TransactionResponseType $transactionResponse)
+ {
+ $this->transactionResponse = $transactionResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsRequest.php
new file mode 100644
index 0000000..a59b591
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsRequest.php
@@ -0,0 +1,75 @@
+isTestMode;
+ }
+
+ /**
+ * Sets a new isTestMode
+ *
+ * @param boolean $isTestMode
+ * @return self
+ */
+ public function setIsTestMode($isTestMode)
+ {
+ $this->isTestMode = $isTestMode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsResponse.php
new file mode 100644
index 0000000..0ad82b4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateMerchantDetailsResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupRequest.php
new file mode 100644
index 0000000..99b744a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupRequest.php
@@ -0,0 +1,102 @@
+splitTenderId;
+ }
+
+ /**
+ * Sets a new splitTenderId
+ *
+ * @param string $splitTenderId
+ * @return self
+ */
+ public function setSplitTenderId($splitTenderId)
+ {
+ $this->splitTenderId = $splitTenderId;
+ return $this;
+ }
+
+ /**
+ * Gets as splitTenderStatus
+ *
+ * @return string
+ */
+ public function getSplitTenderStatus()
+ {
+ return $this->splitTenderStatus;
+ }
+
+ /**
+ * Sets a new splitTenderStatus
+ *
+ * @param string $splitTenderStatus
+ * @return self
+ */
+ public function setSplitTenderStatus($splitTenderStatus)
+ {
+ $this->splitTenderStatus = $splitTenderStatus;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupResponse.php
new file mode 100644
index 0000000..6104060
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UpdateSplitTenderGroupResponse.php
@@ -0,0 +1,61 @@
+ $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/UserFieldType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/UserFieldType.php
new file mode 100644
index 0000000..83d1eda
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/UserFieldType.php
@@ -0,0 +1,153 @@
+name;
+ }
+
+ /**
+ * Sets a new name
+ *
+ * @param string $name
+ * @return self
+ */
+ public function setName($name)
+ {
+ $this->name = $name;
+ return $this;
+ }
+
+ /**
+ * Gets as value
+ *
+ * @return string
+ */
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ /**
+ * Sets a new value
+ *
+ * @param string $value
+ * @return self
+ */
+ public function setValue($value)
+ {
+ $this->value = $value;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileRequest.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileRequest.php
new file mode 100644
index 0000000..cfc51e0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileRequest.php
@@ -0,0 +1,183 @@
+customerProfileId;
+ }
+
+ /**
+ * Sets a new customerProfileId
+ *
+ * @param string $customerProfileId
+ * @return self
+ */
+ public function setCustomerProfileId($customerProfileId)
+ {
+ $this->customerProfileId = $customerProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerPaymentProfileId
+ *
+ * @return string
+ */
+ public function getCustomerPaymentProfileId()
+ {
+ return $this->customerPaymentProfileId;
+ }
+
+ /**
+ * Sets a new customerPaymentProfileId
+ *
+ * @param string $customerPaymentProfileId
+ * @return self
+ */
+ public function setCustomerPaymentProfileId($customerPaymentProfileId)
+ {
+ $this->customerPaymentProfileId = $customerPaymentProfileId;
+ return $this;
+ }
+
+ /**
+ * Gets as customerShippingAddressId
+ *
+ * @return string
+ */
+ public function getCustomerShippingAddressId()
+ {
+ return $this->customerShippingAddressId;
+ }
+
+ /**
+ * Sets a new customerShippingAddressId
+ *
+ * @param string $customerShippingAddressId
+ * @return self
+ */
+ public function setCustomerShippingAddressId($customerShippingAddressId)
+ {
+ $this->customerShippingAddressId = $customerShippingAddressId;
+ return $this;
+ }
+
+ /**
+ * Gets as cardCode
+ *
+ * @return string
+ */
+ public function getCardCode()
+ {
+ return $this->cardCode;
+ }
+
+ /**
+ * Sets a new cardCode
+ *
+ * @param string $cardCode
+ * @return self
+ */
+ public function setCardCode($cardCode)
+ {
+ $this->cardCode = $cardCode;
+ return $this;
+ }
+
+ /**
+ * Gets as validationMode
+ *
+ * @return string
+ */
+ public function getValidationMode()
+ {
+ return $this->validationMode;
+ }
+
+ /**
+ * Sets a new validationMode
+ *
+ * @param string $validationMode
+ * @return self
+ */
+ public function setValidationMode($validationMode)
+ {
+ $this->validationMode = $validationMode;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileResponse.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileResponse.php
new file mode 100644
index 0000000..ec9871a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/ValidateCustomerPaymentProfileResponse.php
@@ -0,0 +1,88 @@
+directResponse;
+ }
+
+ /**
+ * Sets a new directResponse
+ *
+ * @param string $directResponse
+ * @return self
+ */
+ public function setDirectResponse($directResponse)
+ {
+ $this->directResponse = $directResponse;
+ return $this;
+ }
+
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataType.php
new file mode 100644
index 0000000..b210753
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataType.php
@@ -0,0 +1,207 @@
+type;
+ }
+
+ /**
+ * Sets a new type
+ *
+ * @param string $type
+ * @return self
+ */
+ public function setType($type)
+ {
+ $this->type = $type;
+ return $this;
+ }
+
+ /**
+ * Gets as id
+ *
+ * @return string
+ */
+ public function getId()
+ {
+ return $this->id;
+ }
+
+ /**
+ * Sets a new id
+ *
+ * @param string $id
+ * @return self
+ */
+ public function setId($id)
+ {
+ $this->id = $id;
+ return $this;
+ }
+
+ /**
+ * Gets as token
+ *
+ * @return \net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType
+ */
+ public function getToken()
+ {
+ return $this->token;
+ }
+
+ /**
+ * Sets a new token
+ *
+ * @param \net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType $token
+ * @return self
+ */
+ public function setToken(\net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType $token)
+ {
+ $this->token = $token;
+ return $this;
+ }
+
+ /**
+ * Gets as bankToken
+ *
+ * @return \net\authorize\api\contract\v1\BankAccountType
+ */
+ public function getBankToken()
+ {
+ return $this->bankToken;
+ }
+
+ /**
+ * Sets a new bankToken
+ *
+ * @param \net\authorize\api\contract\v1\BankAccountType $bankToken
+ * @return self
+ */
+ public function setBankToken(\net\authorize\api\contract\v1\BankAccountType $bankToken)
+ {
+ $this->bankToken = $bankToken;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataTypeTokenType.php b/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataTypeTokenType.php
new file mode 100644
index 0000000..e26d593
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/contract/v1/WebCheckOutDataTypeTokenType.php
@@ -0,0 +1,234 @@
+cardNumber;
+ }
+
+ /**
+ * Sets a new cardNumber
+ *
+ * @param string $cardNumber
+ * @return self
+ */
+ public function setCardNumber($cardNumber)
+ {
+ $this->cardNumber = $cardNumber;
+ return $this;
+ }
+
+ /**
+ * Gets as expirationDate
+ *
+ * @return string
+ */
+ public function getExpirationDate()
+ {
+ return $this->expirationDate;
+ }
+
+ /**
+ * Sets a new expirationDate
+ *
+ * @param string $expirationDate
+ * @return self
+ */
+ public function setExpirationDate($expirationDate)
+ {
+ $this->expirationDate = $expirationDate;
+ return $this;
+ }
+
+ /**
+ * Gets as cardCode
+ *
+ * @return string
+ */
+ public function getCardCode()
+ {
+ return $this->cardCode;
+ }
+
+ /**
+ * Sets a new cardCode
+ *
+ * @param string $cardCode
+ * @return self
+ */
+ public function setCardCode($cardCode)
+ {
+ $this->cardCode = $cardCode;
+ return $this;
+ }
+
+ /**
+ * Gets as zip
+ *
+ * @return string
+ */
+ public function getZip()
+ {
+ return $this->zip;
+ }
+
+ /**
+ * Sets a new zip
+ *
+ * @param string $zip
+ * @return self
+ */
+ public function setZip($zip)
+ {
+ $this->zip = $zip;
+ return $this;
+ }
+
+ /**
+ * Gets as fullName
+ *
+ * @return string
+ */
+ public function getFullName()
+ {
+ return $this->fullName;
+ }
+
+ /**
+ * Sets a new fullName
+ *
+ * @param string $fullName
+ * @return self
+ */
+ public function setFullName($fullName)
+ {
+ $this->fullName = $fullName;
+ return $this;
+ }
+
+
+ // Json Serialize Code
+ public function jsonSerialize(){
+ $values = array_filter((array)get_object_vars($this),
+ function ($val){
+ return !is_null($val);
+ });
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($values as $key => $value){
+ $classDetails = $mapper->getClass(get_class() , $key);
+ if (isset($value)){
+ if ($classDetails->className === 'Date'){
+ $dateTime = $value->format('Y-m-d');
+ $values[$key] = $dateTime;
+ }
+ else if ($classDetails->className === 'DateTime'){
+ $dateTime = $value->format('Y-m-d\TH:i:s\Z');
+ $values[$key] = $dateTime;
+ }
+ if (is_array($value)){
+ if (!$classDetails->isInlineArray){
+ $subKey = $classDetails->arrayEntryname;
+ $subArray = [$subKey => $value];
+ $values[$key] = $subArray;
+ }
+ }
+ }
+ }
+ if (get_parent_class() == ""){
+ return $values;
+ }
+ else{
+ return array_merge(parent::jsonSerialize(), $values);
+ }
+ }
+
+ // Json Set Code
+ public function set($data)
+ {
+ if(is_array($data) ||Â is_object($data)) {
+ $mapper = \net\authorize\util\Mapper::Instance();
+ foreach($data AS $key => $value) {
+ $classDetails = $mapper->getClass(get_class() , $key);
+
+ if($classDetails !== NULL ) {
+ if ($classDetails->isArray) {
+ if ($classDetails->isCustomDefined) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new $classDetails->className;
+ $type->set($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ foreach($value AS $keyChild => $valueChild) {
+ $type = new \DateTime($valueChild);
+ $this->{'addTo' . $key}($type);
+ }
+ }
+ else {
+ foreach($value AS $keyChild => $valueChild) {
+ $this->{'addTo' . $key}($valueChild);
+ }
+ }
+ }
+ else {
+ if ($classDetails->isCustomDefined){
+ $type = new $classDetails->className;
+ $type->set($value);
+ $this->{'set' . $key}($type);
+ }
+ else if ($classDetails->className === 'DateTime' || $classDetails->className === 'Date' ) {
+ $type = new \DateTime($value);
+ $this->{'set' . $key}($type);
+ }
+ else {
+ $this->{'set' . $key}($value);
+ }
+ }
+ }
+ }
+ }
+ }
+
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBCancelSubscriptionController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBCancelSubscriptionController.php
new file mode 100644
index 0000000..971bf9d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBCancelSubscriptionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBCreateSubscriptionController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBCreateSubscriptionController.php
new file mode 100644
index 0000000..b0163a5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBCreateSubscriptionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionController.php
new file mode 100644
index 0000000..aa05587
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionListController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionListController.php
new file mode 100644
index 0000000..97b0358
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionListController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionStatusController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionStatusController.php
new file mode 100644
index 0000000..6a925ea
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBGetSubscriptionStatusController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ARBUpdateSubscriptionController.php b/class/payment/authorize/lib/net/authorize/api/controller/ARBUpdateSubscriptionController.php
new file mode 100644
index 0000000..d97071b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ARBUpdateSubscriptionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/AuthenticateTestController.php b/class/payment/authorize/lib/net/authorize/api/controller/AuthenticateTestController.php
new file mode 100644
index 0000000..51dd542
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/AuthenticateTestController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerPaymentProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerPaymentProfileController.php
new file mode 100644
index 0000000..f54d585
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerPaymentProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileController.php
new file mode 100644
index 0000000..bb16bc4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileFromTransactionController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileFromTransactionController.php
new file mode 100644
index 0000000..f0b51ac
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileFromTransactionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileTransactionController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileTransactionController.php
new file mode 100644
index 0000000..e0d9e97
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerProfileTransactionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerShippingAddressController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerShippingAddressController.php
new file mode 100644
index 0000000..5b53531
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateCustomerShippingAddressController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/CreateTransactionController.php b/class/payment/authorize/lib/net/authorize/api/controller/CreateTransactionController.php
new file mode 100644
index 0000000..a65aedd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/CreateTransactionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/DecryptPaymentDataController.php b/class/payment/authorize/lib/net/authorize/api/controller/DecryptPaymentDataController.php
new file mode 100644
index 0000000..c95ed4f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/DecryptPaymentDataController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerPaymentProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerPaymentProfileController.php
new file mode 100644
index 0000000..2b170f0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerPaymentProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerProfileController.php
new file mode 100644
index 0000000..c05bec2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerShippingAddressController.php b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerShippingAddressController.php
new file mode 100644
index 0000000..2c56a4d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/DeleteCustomerShippingAddressController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobDetailsController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobDetailsController.php
new file mode 100644
index 0000000..03935ea
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobDetailsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobSummaryController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobSummaryController.php
new file mode 100644
index 0000000..95f0bdd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetAUJobSummaryController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetBatchStatisticsController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetBatchStatisticsController.php
new file mode 100644
index 0000000..44ce234
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetBatchStatisticsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileController.php
new file mode 100644
index 0000000..bc79ce2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileListController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileListController.php
new file mode 100644
index 0000000..ed221f6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerPaymentProfileListController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileController.php
new file mode 100644
index 0000000..f1dedb6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileIdsController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileIdsController.php
new file mode 100644
index 0000000..3ac8a48
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerProfileIdsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerShippingAddressController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerShippingAddressController.php
new file mode 100644
index 0000000..6750eb2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetCustomerShippingAddressController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetHostedPaymentPageController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetHostedPaymentPageController.php
new file mode 100644
index 0000000..1e20ca3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetHostedPaymentPageController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetHostedProfilePageController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetHostedProfilePageController.php
new file mode 100644
index 0000000..656635c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetHostedProfilePageController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetMerchantDetailsController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetMerchantDetailsController.php
new file mode 100644
index 0000000..fa1aa3d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetMerchantDetailsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetSettledBatchListController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetSettledBatchListController.php
new file mode 100644
index 0000000..13af45f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetSettledBatchListController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionDetailsController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionDetailsController.php
new file mode 100644
index 0000000..9eb050b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionDetailsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListController.php
new file mode 100644
index 0000000..8626c75
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListForCustomerController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListForCustomerController.php
new file mode 100644
index 0000000..5a62c7c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetTransactionListForCustomerController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/GetUnsettledTransactionListController.php b/class/payment/authorize/lib/net/authorize/api/controller/GetUnsettledTransactionListController.php
new file mode 100644
index 0000000..76e50ca
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/GetUnsettledTransactionListController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/IsAliveController.php b/class/payment/authorize/lib/net/authorize/api/controller/IsAliveController.php
new file mode 100644
index 0000000..efe010f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/IsAliveController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/LogoutController.php b/class/payment/authorize/lib/net/authorize/api/controller/LogoutController.php
new file mode 100644
index 0000000..adb3f81
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/LogoutController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceLoginController.php b/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceLoginController.php
new file mode 100644
index 0000000..3d8a4f2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceLoginController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceRegistrationController.php b/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceRegistrationController.php
new file mode 100644
index 0000000..2b3cfb4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/MobileDeviceRegistrationController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/SecurePaymentContainerController.php b/class/payment/authorize/lib/net/authorize/api/controller/SecurePaymentContainerController.php
new file mode 100644
index 0000000..6fd7d8a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/SecurePaymentContainerController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/SendCustomerTransactionReceiptController.php b/class/payment/authorize/lib/net/authorize/api/controller/SendCustomerTransactionReceiptController.php
new file mode 100644
index 0000000..c6f8df8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/SendCustomerTransactionReceiptController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerPaymentProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerPaymentProfileController.php
new file mode 100644
index 0000000..f21be31
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerPaymentProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerProfileController.php
new file mode 100644
index 0000000..8a86ed1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerShippingAddressController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerShippingAddressController.php
new file mode 100644
index 0000000..cc36334
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateCustomerShippingAddressController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateHeldTransactionController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateHeldTransactionController.php
new file mode 100644
index 0000000..c575bb9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateHeldTransactionController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateMerchantDetailsController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateMerchantDetailsController.php
new file mode 100644
index 0000000..a480ae5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateMerchantDetailsController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/UpdateSplitTenderGroupController.php b/class/payment/authorize/lib/net/authorize/api/controller/UpdateSplitTenderGroupController.php
new file mode 100644
index 0000000..db4e1fc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/UpdateSplitTenderGroupController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/ValidateCustomerPaymentProfileController.php b/class/payment/authorize/lib/net/authorize/api/controller/ValidateCustomerPaymentProfileController.php
new file mode 100644
index 0000000..6792ca6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/ValidateCustomerPaymentProfileController.php
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/base/ApiOperationBase.php b/class/payment/authorize/lib/net/authorize/api/controller/base/ApiOperationBase.php
new file mode 100644
index 0000000..bb62d68
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/base/ApiOperationBase.php
@@ -0,0 +1,180 @@
+logger = LogFactory::getLog(get_class($this));
+
+ if ( null == $request)
+ {
+ throw new InvalidArgumentException( "request cannot be null");
+ }
+
+ if ( null == $responseType || '' == $responseType)
+ {
+ throw new InvalidArgumentException( "responseType cannot be null or empty");
+ }
+
+ if ( null != $this->apiResponse)
+ {
+ throw new InvalidArgumentException( "response has to be null");
+ }
+
+ $this->apiRequest = $request;
+ $this->validate();
+
+ $this->apiResponseType = $responseType;
+ $this->httpClient = new HttpClient;
+
+/* $serializerBuilder = SerializerBuilder::create();
+ $serializerBuilder->addMetadataDir( __DIR__ . '/../../yml/v1', 'net\authorize\api\contract\v1');//..\..\yml\v1\ //'/../lib/net/authorize/api/yml/v1'
+ $serializerBuilder->configureHandlers(
+ function (HandlerRegistryInterface $h)
+
+ use($serializerBuilder)
+ {
+ $serializerBuilder->addDefaultHandlers();
+ $h->registerSubscribingHandler(new BaseTypesHandler()); // XMLSchema List handling
+ $h->registerSubscribingHandler(new XmlSchemaDateHandler()); // XMLSchema date handling
+ }
+ );
+ $this->serializer = $serializerBuilder->build();*/
+ }
+
+ /**
+ * Retrieves response
+ * @return \net\authorize\api\contract\v1\AnetApiResponseType
+ */
+ public function getApiResponse()
+ {
+ return $this->apiResponse;
+ }
+
+ /**
+ * Sends request and retrieves response
+ * @return \net\authorize\api\contract\v1\AnetApiResponseType
+ */
+ public function executeWithApiResponse($endPoint = \net\authorize\api\constants\ANetEnvironment::CUSTOM)
+ {
+ $this->execute($endPoint);
+ return $this->apiResponse;
+ }
+
+ public function execute($endPoint = \net\authorize\api\constants\ANetEnvironment::CUSTOM)
+ {
+ $this->beforeExecute();
+
+ $this->apiRequest->setClientId("sdk-php-" . \net\authorize\api\constants\ANetEnvironment::VERSION);
+
+ $this->logger->info("Request Creation Begin");
+ $this->logger->debug($this->apiRequest);
+ // $xmlRequest = $this->serializer->serialize($this->apiRequest, 'xml');
+ //$requestArray = [lcfirst((new \ReflectionClass($this->apiRequest))->getShortName()) => $this->apiRequest];
+
+ // $requestRoot = (new \net\authorize\api\contract\v1\Mapper)->getXmlName((new \ReflectionClass($this->apiRequest))->getName());
+ // $requestRoot = (\net\authorize\api\contract\v1\Mapper::Instance())->getXmlName((new \ReflectionClass($this->apiRequest))->getName());
+ $mapper = \net\authorize\util\Mapper::Instance();
+ $requestRoot = $mapper->getXmlName((new \ReflectionClass($this->apiRequest))->getName());
+
+ $requestArray = [$requestRoot => $this->apiRequest];
+
+ $this->logger->info("Request Creation End");
+
+ $this->httpClient->setPostUrl( $endPoint);
+ /*$xmlResponse = $this->httpClient->_sendRequest($xmlRequest);
+ if ( null == $xmlResponse)
+ {
+ throw new \Exception( "Error getting valid response from api. Check log file for error details");
+ }
+ $this->logger->info("Response De-Serialization Begin");
+ $this->apiResponse = $this->serializer->deserialize( $xmlResponse, $this->apiResponseType , 'xml');
+ $this->logger->info("Response De-Serialization End");*/
+
+ $jsonResponse = $this->httpClient->_sendRequest(json_encode($requestArray));
+ if($jsonResponse != null){
+ //decoding json and removing bom
+ $possibleBOM = substr($jsonResponse, 0, 3);
+ $utfBOM = pack("CCC", 0xef, 0xbb, 0xbf);
+
+ if (0 === strncmp($possibleBOM, $utfBOM, 3)) {
+ $response = json_decode( substr($jsonResponse,3), true);
+ }
+ else {
+ $response = json_decode($jsonResponse, true);
+ }
+ $this->apiResponse = new $this->apiResponseType();
+ $this->apiResponse->set($response);
+ }
+ else {
+ $this->logger->error("Error getting response from API");
+ $this->apiResponse = null;
+ }
+
+ $this->afterExecute();
+ }
+
+ private function validate()
+ {
+ $merchantAuthentication = $this->apiRequest->getMerchantAuthentication();
+ if ( null == $merchantAuthentication)
+ {
+ throw new \InvalidArgumentException( "MerchantAuthentication cannot be null");
+ }
+
+ $this->validateRequest();
+ }
+
+ protected function beforeExecute() {}
+ protected function afterExecute() {}
+ protected function validateRequest() {} //need to make this abstract
+
+ protected function now()
+ {
+ return date( DATE_RFC2822);
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/controller/base/IApiOperation.php b/class/payment/authorize/lib/net/authorize/api/controller/base/IApiOperation.php
new file mode 100644
index 0000000..fa198e7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/controller/base/IApiOperation.php
@@ -0,0 +1,26 @@
+ GetResults();
+ */
+}
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiRequestType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiRequestType.yml
new file mode 100644
index 0000000..3d9d723
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiRequestType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\ANetApiRequestType:
+ properties:
+ merchantAuthentication:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantAuthentication
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantAuthentication
+ setter: setMerchantAuthentication
+ type: net\authorize\api\contract\v1\MerchantAuthenticationType
+ clientId:
+ expose: true
+ access_type: public_method
+ serialized_name: clientId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getClientId
+ setter: setClientId
+ type: string
+ refId:
+ expose: true
+ access_type: public_method
+ serialized_name: refId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefId
+ setter: setRefId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiResponseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiResponseType.yml
new file mode 100644
index 0000000..f73aaae
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ANetApiResponseType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\ANetApiResponseType:
+ properties:
+ refId:
+ expose: true
+ access_type: public_method
+ serialized_name: refId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefId
+ setter: setRefId
+ type: string
+ messages:
+ expose: true
+ access_type: public_method
+ serialized_name: messages
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMessages
+ setter: setMessages
+ type: net\authorize\api\contract\v1\MessagesType
+ sessionToken:
+ expose: true
+ access_type: public_method
+ serialized_name: sessionToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSessionToken
+ setter: setSessionToken
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionRequest.yml
new file mode 100644
index 0000000..f72ffa9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBCancelSubscriptionRequest:
+ xml_root_name: ARBCancelSubscriptionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscriptionId:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionId
+ setter: setSubscriptionId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionResponse.yml
new file mode 100644
index 0000000..ec8fb19
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCancelSubscriptionResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\ARBCancelSubscriptionResponse:
+ xml_root_name: ARBCancelSubscriptionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionRequest.yml
new file mode 100644
index 0000000..a18a21c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBCreateSubscriptionRequest:
+ xml_root_name: ARBCreateSubscriptionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscription:
+ expose: true
+ access_type: public_method
+ serialized_name: subscription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscription
+ setter: setSubscription
+ type: net\authorize\api\contract\v1\ARBSubscriptionType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionResponse.yml
new file mode 100644
index 0000000..6a0572f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBCreateSubscriptionResponse.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\ARBCreateSubscriptionResponse:
+ xml_root_name: ARBCreateSubscriptionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscriptionId:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionId
+ setter: setSubscriptionId
+ type: string
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListRequest.yml
new file mode 100644
index 0000000..895b5f0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionListRequest:
+ xml_root_name: ARBGetSubscriptionListRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ searchType:
+ expose: true
+ access_type: public_method
+ serialized_name: searchType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSearchType
+ setter: setSearchType
+ type: string
+ sorting:
+ expose: true
+ access_type: public_method
+ serialized_name: sorting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSorting
+ setter: setSorting
+ type: net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListResponse.yml
new file mode 100644
index 0000000..4879152
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListResponse.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionListResponse:
+ xml_root_name: ARBGetSubscriptionListResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ totalNumInResultSet:
+ expose: true
+ access_type: public_method
+ serialized_name: totalNumInResultSet
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalNumInResultSet
+ setter: setTotalNumInResultSet
+ type: integer
+ subscriptionDetails:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionDetails
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionDetails
+ setter: setSubscriptionDetails
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: subscriptionDetail
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListSortingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListSortingType.yml
new file mode 100644
index 0000000..37aa0d7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionListSortingType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionListSortingType:
+ properties:
+ orderBy:
+ expose: true
+ access_type: public_method
+ serialized_name: orderBy
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderBy
+ setter: setOrderBy
+ type: string
+ orderDescending:
+ expose: true
+ access_type: public_method
+ serialized_name: orderDescending
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderDescending
+ setter: setOrderDescending
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionRequest.yml
new file mode 100644
index 0000000..5211834
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionRequest:
+ xml_root_name: ARBGetSubscriptionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscriptionId:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionId
+ setter: setSubscriptionId
+ type: string
+ includeTransactions:
+ expose: true
+ access_type: public_method
+ serialized_name: includeTransactions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIncludeTransactions
+ setter: setIncludeTransactions
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionResponse.yml
new file mode 100644
index 0000000..82d1134
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionResponse:
+ xml_root_name: ARBGetSubscriptionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscription:
+ expose: true
+ access_type: public_method
+ serialized_name: subscription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscription
+ setter: setSubscription
+ type: net\authorize\api\contract\v1\ARBSubscriptionMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusRequest.yml
new file mode 100644
index 0000000..956cc0b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionStatusRequest:
+ xml_root_name: ARBGetSubscriptionStatusRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscriptionId:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionId
+ setter: setSubscriptionId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusResponse.yml
new file mode 100644
index 0000000..4aabf0f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBGetSubscriptionStatusResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBGetSubscriptionStatusResponse:
+ xml_root_name: ARBGetSubscriptionStatusResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ status:
+ expose: true
+ access_type: public_method
+ serialized_name: status
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStatus
+ setter: setStatus
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionMaskedType.yml
new file mode 100644
index 0000000..59077e9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionMaskedType.yml
@@ -0,0 +1,87 @@
+net\authorize\api\contract\v1\ARBSubscriptionMaskedType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ paymentSchedule:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentSchedule
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentSchedule
+ setter: setPaymentSchedule
+ type: net\authorize\api\contract\v1\PaymentScheduleType
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ trialAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: trialAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrialAmount
+ setter: setTrialAmount
+ type: float
+ status:
+ expose: true
+ access_type: public_method
+ serialized_name: status
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStatus
+ setter: setStatus
+ type: string
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\SubscriptionCustomerProfileType
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderType
+ arbTransactions:
+ expose: true
+ access_type: public_method
+ serialized_name: arbTransactions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getArbTransactions
+ setter: setArbTransactions
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: arbTransaction
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionType.yml
new file mode 100644
index 0000000..38e3ddd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBSubscriptionType.yml
@@ -0,0 +1,102 @@
+net\authorize\api\contract\v1\ARBSubscriptionType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ paymentSchedule:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentSchedule
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentSchedule
+ setter: setPaymentSchedule
+ type: net\authorize\api\contract\v1\PaymentScheduleType
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ trialAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: trialAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrialAmount
+ setter: setTrialAmount
+ type: float
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentType
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderType
+ customer:
+ expose: true
+ access_type: public_method
+ serialized_name: customer
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomer
+ setter: setCustomer
+ type: net\authorize\api\contract\v1\CustomerType
+ billTo:
+ expose: true
+ access_type: public_method
+ serialized_name: billTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillTo
+ setter: setBillTo
+ type: net\authorize\api\contract\v1\NameAndAddressType
+ shipTo:
+ expose: true
+ access_type: public_method
+ serialized_name: shipTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipTo
+ setter: setShipTo
+ type: net\authorize\api\contract\v1\NameAndAddressType
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionRequest.yml
new file mode 100644
index 0000000..1c8d8c8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\ARBUpdateSubscriptionRequest:
+ xml_root_name: ARBUpdateSubscriptionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ subscriptionId:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionId
+ setter: setSubscriptionId
+ type: string
+ subscription:
+ expose: true
+ access_type: public_method
+ serialized_name: subscription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscription
+ setter: setSubscription
+ type: net\authorize\api\contract\v1\ARBSubscriptionType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionResponse.yml
new file mode 100644
index 0000000..edfe613
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ARBUpdateSubscriptionResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ARBUpdateSubscriptionResponse:
+ xml_root_name: ARBUpdateSubscriptionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ArbTransactionType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ArbTransactionType.yml
new file mode 100644
index 0000000..20e3374
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ArbTransactionType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\ArbTransactionType:
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ response:
+ expose: true
+ access_type: public_method
+ serialized_name: response
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponse
+ setter: setResponse
+ type: string
+ submitTimeUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: submitTimeUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubmitTimeUTC
+ setter: setSubmitTimeUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ payNum:
+ expose: true
+ access_type: public_method
+ serialized_name: payNum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayNum
+ setter: setPayNum
+ type: integer
+ attemptNum:
+ expose: true
+ access_type: public_method
+ serialized_name: attemptNum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAttemptNum
+ setter: setAttemptNum
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ArrayOfSettingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ArrayOfSettingType.yml
new file mode 100644
index 0000000..d0ba924
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ArrayOfSettingType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\ArrayOfSettingType:
+ properties:
+ setting:
+ expose: true
+ access_type: public_method
+ serialized_name: setting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSetting
+ setter: setSetting
+ xml_list:
+ inline: true
+ entry_name: setting
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDeleteType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDeleteType.yml
new file mode 100644
index 0000000..ccb8e38
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDeleteType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\AuDeleteType:
+ properties:
+ creditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: creditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreditCard
+ setter: setCreditCard
+ type: net\authorize\api\contract\v1\CreditCardMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDetailsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDetailsType.yml
new file mode 100644
index 0000000..06e04ff
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuDetailsType.yml
@@ -0,0 +1,72 @@
+net\authorize\api\contract\v1\AuDetailsType:
+ properties:
+ customerProfileID:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileID
+ setter: setCustomerProfileID
+ type: integer
+ customerPaymentProfileID:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileID
+ setter: setCustomerPaymentProfileID
+ type: integer
+ firstName:
+ expose: true
+ access_type: public_method
+ serialized_name: firstName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFirstName
+ setter: setFirstName
+ type: string
+ lastName:
+ expose: true
+ access_type: public_method
+ serialized_name: lastName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLastName
+ setter: setLastName
+ type: string
+ updateTimeUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: updateTimeUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUpdateTimeUTC
+ setter: setUpdateTimeUTC
+ type: string
+ auReasonCode:
+ expose: true
+ access_type: public_method
+ serialized_name: auReasonCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuReasonCode
+ setter: setAuReasonCode
+ type: string
+ reasonDescription:
+ expose: true
+ access_type: public_method
+ serialized_name: reasonDescription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReasonDescription
+ setter: setReasonDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuResponseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuResponseType.yml
new file mode 100644
index 0000000..6326835
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuResponseType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\AuResponseType:
+ properties:
+ auReasonCode:
+ expose: true
+ access_type: public_method
+ serialized_name: auReasonCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuReasonCode
+ setter: setAuReasonCode
+ type: string
+ profileCount:
+ expose: true
+ access_type: public_method
+ serialized_name: profileCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileCount
+ setter: setProfileCount
+ type: integer
+ reasonDescription:
+ expose: true
+ access_type: public_method
+ serialized_name: reasonDescription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReasonDescription
+ setter: setReasonDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuUpdateType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuUpdateType.yml
new file mode 100644
index 0000000..0c40f9d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuUpdateType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\AuUpdateType:
+ properties:
+ newCreditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: newCreditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNewCreditCard
+ setter: setNewCreditCard
+ type: net\authorize\api\contract\v1\CreditCardMaskedType
+ oldCreditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: oldCreditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOldCreditCard
+ setter: setOldCreditCard
+ type: net\authorize\api\contract\v1\CreditCardMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestRequest.yml
new file mode 100644
index 0000000..5aae660
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestRequest.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\AuthenticateTestRequest:
+ xml_root_name: authenticateTestRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestResponse.yml
new file mode 100644
index 0000000..48822dc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/AuthenticateTestResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\AuthenticateTestResponse:
+ xml_root_name: authenticateTestResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountMaskedType.yml
new file mode 100644
index 0000000..aedad16
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountMaskedType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\BankAccountMaskedType:
+ properties:
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ routingNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: routingNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRoutingNumber
+ setter: setRoutingNumber
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ nameOnAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: nameOnAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNameOnAccount
+ setter: setNameOnAccount
+ type: string
+ echeckType:
+ expose: true
+ access_type: public_method
+ serialized_name: echeckType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEcheckType
+ setter: setEcheckType
+ type: string
+ bankName:
+ expose: true
+ access_type: public_method
+ serialized_name: bankName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankName
+ setter: setBankName
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountType.yml
new file mode 100644
index 0000000..25e59b4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/BankAccountType.yml
@@ -0,0 +1,72 @@
+net\authorize\api\contract\v1\BankAccountType:
+ properties:
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ routingNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: routingNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRoutingNumber
+ setter: setRoutingNumber
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ nameOnAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: nameOnAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNameOnAccount
+ setter: setNameOnAccount
+ type: string
+ echeckType:
+ expose: true
+ access_type: public_method
+ serialized_name: echeckType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEcheckType
+ setter: setEcheckType
+ type: string
+ bankName:
+ expose: true
+ access_type: public_method
+ serialized_name: bankName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankName
+ setter: setBankName
+ type: string
+ checkNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: checkNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCheckNumber
+ setter: setCheckNumber
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchDetailsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchDetailsType.yml
new file mode 100644
index 0000000..4f80473
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchDetailsType.yml
@@ -0,0 +1,87 @@
+net\authorize\api\contract\v1\BatchDetailsType:
+ properties:
+ batchId:
+ expose: true
+ access_type: public_method
+ serialized_name: batchId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatchId
+ setter: setBatchId
+ type: string
+ settlementTimeUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: settlementTimeUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettlementTimeUTC
+ setter: setSettlementTimeUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ settlementTimeLocal:
+ expose: true
+ access_type: public_method
+ serialized_name: settlementTimeLocal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettlementTimeLocal
+ setter: setSettlementTimeLocal
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ settlementState:
+ expose: true
+ access_type: public_method
+ serialized_name: settlementState
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettlementState
+ setter: setSettlementState
+ type: string
+ paymentMethod:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentMethod
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentMethod
+ setter: setPaymentMethod
+ type: string
+ marketType:
+ expose: true
+ access_type: public_method
+ serialized_name: marketType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMarketType
+ setter: setMarketType
+ type: string
+ product:
+ expose: true
+ access_type: public_method
+ serialized_name: product
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProduct
+ setter: setProduct
+ type: string
+ statistics:
+ expose: true
+ access_type: public_method
+ serialized_name: statistics
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStatistics
+ setter: setStatistics
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: statistic
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchStatisticType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchStatisticType.yml
new file mode 100644
index 0000000..5239a19
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/BatchStatisticType.yml
@@ -0,0 +1,212 @@
+net\authorize\api\contract\v1\BatchStatisticType:
+ properties:
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ chargeAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeAmount
+ setter: setChargeAmount
+ type: float
+ chargeCount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeCount
+ setter: setChargeCount
+ type: integer
+ refundAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundAmount
+ setter: setRefundAmount
+ type: float
+ refundCount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundCount
+ setter: setRefundCount
+ type: integer
+ voidCount:
+ expose: true
+ access_type: public_method
+ serialized_name: voidCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVoidCount
+ setter: setVoidCount
+ type: integer
+ declineCount:
+ expose: true
+ access_type: public_method
+ serialized_name: declineCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDeclineCount
+ setter: setDeclineCount
+ type: integer
+ errorCount:
+ expose: true
+ access_type: public_method
+ serialized_name: errorCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getErrorCount
+ setter: setErrorCount
+ type: integer
+ returnedItemAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: returnedItemAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReturnedItemAmount
+ setter: setReturnedItemAmount
+ type: float
+ returnedItemCount:
+ expose: true
+ access_type: public_method
+ serialized_name: returnedItemCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReturnedItemCount
+ setter: setReturnedItemCount
+ type: integer
+ chargebackAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargebackAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargebackAmount
+ setter: setChargebackAmount
+ type: float
+ chargebackCount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargebackCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargebackCount
+ setter: setChargebackCount
+ type: integer
+ correctionNoticeCount:
+ expose: true
+ access_type: public_method
+ serialized_name: correctionNoticeCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCorrectionNoticeCount
+ setter: setCorrectionNoticeCount
+ type: integer
+ chargeChargeBackAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeChargeBackAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeChargeBackAmount
+ setter: setChargeChargeBackAmount
+ type: float
+ chargeChargeBackCount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeChargeBackCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeChargeBackCount
+ setter: setChargeChargeBackCount
+ type: integer
+ refundChargeBackAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundChargeBackAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundChargeBackAmount
+ setter: setRefundChargeBackAmount
+ type: float
+ refundChargeBackCount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundChargeBackCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundChargeBackCount
+ setter: setRefundChargeBackCount
+ type: integer
+ chargeReturnedItemsAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeReturnedItemsAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeReturnedItemsAmount
+ setter: setChargeReturnedItemsAmount
+ type: float
+ chargeReturnedItemsCount:
+ expose: true
+ access_type: public_method
+ serialized_name: chargeReturnedItemsCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getChargeReturnedItemsCount
+ setter: setChargeReturnedItemsCount
+ type: integer
+ refundReturnedItemsAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundReturnedItemsAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundReturnedItemsAmount
+ setter: setRefundReturnedItemsAmount
+ type: float
+ refundReturnedItemsCount:
+ expose: true
+ access_type: public_method
+ serialized_name: refundReturnedItemsCount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefundReturnedItemsCount
+ setter: setRefundReturnedItemsCount
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CardArtType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CardArtType.yml
new file mode 100644
index 0000000..b612e5a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CardArtType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\CardArtType:
+ properties:
+ cardBrand:
+ expose: true
+ access_type: public_method
+ serialized_name: cardBrand
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardBrand
+ setter: setCardBrand
+ type: string
+ cardImageHeight:
+ expose: true
+ access_type: public_method
+ serialized_name: cardImageHeight
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardImageHeight
+ setter: setCardImageHeight
+ type: string
+ cardImageUrl:
+ expose: true
+ access_type: public_method
+ serialized_name: cardImageUrl
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardImageUrl
+ setter: setCardImageUrl
+ type: string
+ cardImageWidth:
+ expose: true
+ access_type: public_method
+ serialized_name: cardImageWidth
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardImageWidth
+ setter: setCardImageWidth
+ type: string
+ cardType:
+ expose: true
+ access_type: public_method
+ serialized_name: cardType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardType
+ setter: setCardType
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CcAuthenticationType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CcAuthenticationType.yml
new file mode 100644
index 0000000..1910287
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CcAuthenticationType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\CcAuthenticationType:
+ properties:
+ authenticationIndicator:
+ expose: true
+ access_type: public_method
+ serialized_name: authenticationIndicator
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthenticationIndicator
+ setter: setAuthenticationIndicator
+ type: string
+ cardholderAuthenticationValue:
+ expose: true
+ access_type: public_method
+ serialized_name: cardholderAuthenticationValue
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardholderAuthenticationValue
+ setter: setCardholderAuthenticationValue
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileRequest.yml
new file mode 100644
index 0000000..b6e6190
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\CreateCustomerPaymentProfileRequest:
+ xml_root_name: createCustomerPaymentProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ paymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfile
+ setter: setPaymentProfile
+ type: net\authorize\api\contract\v1\CustomerPaymentProfileType
+ validationMode:
+ expose: true
+ access_type: public_method
+ serialized_name: validationMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationMode
+ setter: setValidationMode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileResponse.yml
new file mode 100644
index 0000000..f6eef72
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerPaymentProfileResponse.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\CreateCustomerPaymentProfileResponse:
+ xml_root_name: createCustomerPaymentProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ validationDirectResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: validationDirectResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationDirectResponse
+ setter: setValidationDirectResponse
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileFromTransactionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileFromTransactionRequest.yml
new file mode 100644
index 0000000..1908131
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileFromTransactionRequest.yml
@@ -0,0 +1,64 @@
+net\authorize\api\contract\v1\CreateCustomerProfileFromTransactionRequest:
+ xml_root_name: createCustomerProfileFromTransactionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ customer:
+ expose: true
+ access_type: public_method
+ serialized_name: customer
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomer
+ setter: setCustomer
+ type: net\authorize\api\contract\v1\CustomerProfileBaseType
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ defaultPaymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultPaymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultPaymentProfile
+ setter: setDefaultPaymentProfile
+ type: boolean
+ defaultShippingAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultShippingAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultShippingAddress
+ setter: setDefaultShippingAddress
+ type: boolean
+ profileType:
+ expose: true
+ access_type: public_method
+ serialized_name: profileType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileType
+ setter: setProfileType
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileRequest.yml
new file mode 100644
index 0000000..983c000
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\CreateCustomerProfileRequest:
+ xml_root_name: createCustomerProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileType
+ validationMode:
+ expose: true
+ access_type: public_method
+ serialized_name: validationMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationMode
+ setter: setValidationMode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileResponse.yml
new file mode 100644
index 0000000..97728a7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileResponse.yml
@@ -0,0 +1,59 @@
+net\authorize\api\contract\v1\CreateCustomerProfileResponse:
+ xml_root_name: createCustomerProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileIdList:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileIdList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileIdList
+ setter: setCustomerPaymentProfileIdList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: numericString
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ customerShippingAddressIdList:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressIdList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressIdList
+ setter: setCustomerShippingAddressIdList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: numericString
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ validationDirectResponseList:
+ expose: true
+ access_type: public_method
+ serialized_name: validationDirectResponseList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationDirectResponseList
+ setter: setValidationDirectResponseList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: string
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionRequest.yml
new file mode 100644
index 0000000..bd1cb87
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\CreateCustomerProfileTransactionRequest:
+ xml_root_name: createCustomerProfileTransactionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transaction:
+ expose: true
+ access_type: public_method
+ serialized_name: transaction
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransaction
+ setter: setTransaction
+ type: net\authorize\api\contract\v1\ProfileTransactionType
+ extraOptions:
+ expose: true
+ access_type: public_method
+ serialized_name: extraOptions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getExtraOptions
+ setter: setExtraOptions
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionResponse.yml
new file mode 100644
index 0000000..1e9152d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerProfileTransactionResponse.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\CreateCustomerProfileTransactionResponse:
+ xml_root_name: createCustomerProfileTransactionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactionResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionResponse
+ setter: setTransactionResponse
+ type: net\authorize\api\contract\v1\TransactionResponseType
+ directResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: directResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDirectResponse
+ setter: setDirectResponse
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressRequest.yml
new file mode 100644
index 0000000..eb04eb5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\CreateCustomerShippingAddressRequest:
+ xml_root_name: createCustomerShippingAddressRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ address:
+ expose: true
+ access_type: public_method
+ serialized_name: address
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAddress
+ setter: setAddress
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ defaultShippingAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultShippingAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultShippingAddress
+ setter: setDefaultShippingAddress
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressResponse.yml
new file mode 100644
index 0000000..163d3b1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateCustomerShippingAddressResponse.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\CreateCustomerShippingAddressResponse:
+ xml_root_name: createCustomerShippingAddressResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerAddressId
+ setter: setCustomerAddressId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateProfileResponseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateProfileResponseType.yml
new file mode 100644
index 0000000..8cc1f73
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateProfileResponseType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\CreateProfileResponseType:
+ properties:
+ messages:
+ expose: true
+ access_type: public_method
+ serialized_name: messages
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMessages
+ setter: setMessages
+ type: net\authorize\api\contract\v1\MessagesType
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileIdList:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileIdList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileIdList
+ setter: setCustomerPaymentProfileIdList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: numericString
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ customerShippingAddressIdList:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressIdList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressIdList
+ setter: setCustomerShippingAddressIdList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: numericString
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionRequest.yml
new file mode 100644
index 0000000..5bcaeea
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\CreateTransactionRequest:
+ xml_root_name: createTransactionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactionRequest:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionRequest
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionRequest
+ setter: setTransactionRequest
+ type: net\authorize\api\contract\v1\TransactionRequestType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionResponse.yml
new file mode 100644
index 0000000..2d82c00
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreateTransactionResponse.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\CreateTransactionResponse:
+ xml_root_name: createTransactionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactionResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionResponse
+ setter: setTransactionResponse
+ type: net\authorize\api\contract\v1\TransactionResponseType
+ profileResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: profileResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileResponse
+ setter: setProfileResponse
+ type: net\authorize\api\contract\v1\CreateProfileResponseType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardMaskedType.yml
new file mode 100644
index 0000000..765b34b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardMaskedType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\CreditCardMaskedType:
+ properties:
+ cardNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: cardNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardNumber
+ setter: setCardNumber
+ type: string
+ expirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: expirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getExpirationDate
+ setter: setExpirationDate
+ type: string
+ cardType:
+ expose: true
+ access_type: public_method
+ serialized_name: cardType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardType
+ setter: setCardType
+ type: string
+ cardArt:
+ expose: true
+ access_type: public_method
+ serialized_name: cardArt
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardArt
+ setter: setCardArt
+ type: net\authorize\api\contract\v1\CardArtType
+ issuerNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: issuerNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIssuerNumber
+ setter: setIssuerNumber
+ type: string
+ isPaymentToken:
+ expose: true
+ access_type: public_method
+ serialized_name: isPaymentToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsPaymentToken
+ setter: setIsPaymentToken
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardSimpleType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardSimpleType.yml
new file mode 100644
index 0000000..583b868
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardSimpleType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\CreditCardSimpleType:
+ properties:
+ cardNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: cardNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardNumber
+ setter: setCardNumber
+ type: string
+ expirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: expirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getExpirationDate
+ setter: setExpirationDate
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardTrackType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardTrackType.yml
new file mode 100644
index 0000000..c90d3a5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardTrackType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\CreditCardTrackType:
+ properties:
+ track1:
+ expose: true
+ access_type: public_method
+ serialized_name: track1
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrack1
+ setter: setTrack1
+ type: string
+ track2:
+ expose: true
+ access_type: public_method
+ serialized_name: track2
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrack2
+ setter: setTrack2
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardType.yml
new file mode 100644
index 0000000..952063c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CreditCardType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\CreditCardType:
+ properties:
+ cardCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCode
+ setter: setCardCode
+ type: string
+ isPaymentToken:
+ expose: true
+ access_type: public_method
+ serialized_name: isPaymentToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsPaymentToken
+ setter: setIsPaymentToken
+ type: boolean
+ cryptogram:
+ expose: true
+ access_type: public_method
+ serialized_name: cryptogram
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCryptogram
+ setter: setCryptogram
+ type: string
+ tokenRequestorName:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenRequestorName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenRequestorName
+ setter: setTokenRequestorName
+ type: string
+ tokenRequestorId:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenRequestorId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenRequestorId
+ setter: setTokenRequestorId
+ type: string
+ tokenRequestorEci:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenRequestorEci
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenRequestorEci
+ setter: setTokenRequestorEci
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressExType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressExType.yml
new file mode 100644
index 0000000..52a7456
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressExType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\CustomerAddressExType:
+ properties:
+ customerAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerAddressId
+ setter: setCustomerAddressId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressType.yml
new file mode 100644
index 0000000..ad17521
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerAddressType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\CustomerAddressType:
+ properties:
+ phoneNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: phoneNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPhoneNumber
+ setter: setPhoneNumber
+ type: string
+ faxNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: faxNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFaxNumber
+ setter: setFaxNumber
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerDataType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerDataType.yml
new file mode 100644
index 0000000..48bab8e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerDataType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\CustomerDataType:
+ properties:
+ type:
+ expose: true
+ access_type: public_method
+ serialized_name: type
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getType
+ setter: setType
+ type: string
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
+ driversLicense:
+ expose: true
+ access_type: public_method
+ serialized_name: driversLicense
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDriversLicense
+ setter: setDriversLicense
+ type: net\authorize\api\contract\v1\DriversLicenseType
+ taxId:
+ expose: true
+ access_type: public_method
+ serialized_name: taxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxId
+ setter: setTaxId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileBaseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileBaseType.yml
new file mode 100644
index 0000000..4817018
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileBaseType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileBaseType:
+ properties:
+ customerType:
+ expose: true
+ access_type: public_method
+ serialized_name: customerType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerType
+ setter: setCustomerType
+ type: string
+ billTo:
+ expose: true
+ access_type: public_method
+ serialized_name: billTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillTo
+ setter: setBillTo
+ type: net\authorize\api\contract\v1\CustomerAddressType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileExType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileExType.yml
new file mode 100644
index 0000000..189dddb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileExType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileExType:
+ properties:
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileListItemType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileListItemType.yml
new file mode 100644
index 0000000..f7e38e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileListItemType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileListItemType:
+ properties:
+ defaultPaymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultPaymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultPaymentProfile
+ setter: setDefaultPaymentProfile
+ type: boolean
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: integer
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: integer
+ billTo:
+ expose: true
+ access_type: public_method
+ serialized_name: billTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillTo
+ setter: setBillTo
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileMaskedType.yml
new file mode 100644
index 0000000..cad9700
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileMaskedType.yml
@@ -0,0 +1,77 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ defaultPaymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultPaymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultPaymentProfile
+ setter: setDefaultPaymentProfile
+ type: boolean
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentMaskedType
+ driversLicense:
+ expose: true
+ access_type: public_method
+ serialized_name: driversLicense
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDriversLicense
+ setter: setDriversLicense
+ type: net\authorize\api\contract\v1\DriversLicenseMaskedType
+ taxId:
+ expose: true
+ access_type: public_method
+ serialized_name: taxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxId
+ setter: setTaxId
+ type: string
+ subscriptionIds:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionIds
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionIds
+ setter: setSubscriptionIds
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: subscriptionId
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileSortingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileSortingType.yml
new file mode 100644
index 0000000..1d554ff
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileSortingType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileSortingType:
+ properties:
+ orderBy:
+ expose: true
+ access_type: public_method
+ serialized_name: orderBy
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderBy
+ setter: setOrderBy
+ type: string
+ orderDescending:
+ expose: true
+ access_type: public_method
+ serialized_name: orderDescending
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderDescending
+ setter: setOrderDescending
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileType.yml
new file mode 100644
index 0000000..c7169e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerPaymentProfileType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\CustomerPaymentProfileType:
+ properties:
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentType
+ driversLicense:
+ expose: true
+ access_type: public_method
+ serialized_name: driversLicense
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDriversLicense
+ setter: setDriversLicense
+ type: net\authorize\api\contract\v1\DriversLicenseType
+ taxId:
+ expose: true
+ access_type: public_method
+ serialized_name: taxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxId
+ setter: setTaxId
+ type: string
+ defaultPaymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultPaymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultPaymentProfile
+ setter: setDefaultPaymentProfile
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileBaseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileBaseType.yml
new file mode 100644
index 0000000..ccbcd89
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileBaseType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\CustomerProfileBaseType:
+ properties:
+ merchantCustomerId:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantCustomerId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantCustomerId
+ setter: setMerchantCustomerId
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileExType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileExType.yml
new file mode 100644
index 0000000..7886a5a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileExType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\CustomerProfileExType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileIdType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileIdType.yml
new file mode 100644
index 0000000..e77f00a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileIdType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\CustomerProfileIdType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerAddressId
+ setter: setCustomerAddressId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileInfoExType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileInfoExType.yml
new file mode 100644
index 0000000..4a1832f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileInfoExType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\CustomerProfileInfoExType:
+ properties:
+ profileType:
+ expose: true
+ access_type: public_method
+ serialized_name: profileType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileType
+ setter: setProfileType
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileMaskedType.yml
new file mode 100644
index 0000000..7b4b85d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileMaskedType.yml
@@ -0,0 +1,40 @@
+net\authorize\api\contract\v1\CustomerProfileMaskedType:
+ properties:
+ paymentProfiles:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfiles
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfiles
+ setter: setPaymentProfiles
+ xml_list:
+ inline: true
+ entry_name: paymentProfiles
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
+ shipToList:
+ expose: true
+ access_type: public_method
+ serialized_name: shipToList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipToList
+ setter: setShipToList
+ xml_list:
+ inline: true
+ entry_name: shipToList
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
+ profileType:
+ expose: true
+ access_type: public_method
+ serialized_name: profileType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileType
+ setter: setProfileType
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfilePaymentType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfilePaymentType.yml
new file mode 100644
index 0000000..a211963
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfilePaymentType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\CustomerProfilePaymentType:
+ properties:
+ createProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: createProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreateProfile
+ setter: setCreateProfile
+ type: boolean
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ paymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfile
+ setter: setPaymentProfile
+ type: net\authorize\api\contract\v1\PaymentProfileType
+ shippingProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: shippingProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShippingProfileId
+ setter: setShippingProfileId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileSummaryType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileSummaryType.yml
new file mode 100644
index 0000000..8fff893
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileSummaryType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\CustomerProfileSummaryType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
+ merchantCustomerId:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantCustomerId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantCustomerId
+ setter: setMerchantCustomerId
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
+ createdDate:
+ expose: true
+ access_type: public_method
+ serialized_name: createdDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreatedDate
+ setter: setCreatedDate
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileType.yml
new file mode 100644
index 0000000..f7f0910
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerProfileType.yml
@@ -0,0 +1,40 @@
+net\authorize\api\contract\v1\CustomerProfileType:
+ properties:
+ paymentProfiles:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfiles
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfiles
+ setter: setPaymentProfiles
+ xml_list:
+ inline: true
+ entry_name: paymentProfiles
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
+ shipToList:
+ expose: true
+ access_type: public_method
+ serialized_name: shipToList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipToList
+ setter: setShipToList
+ xml_list:
+ inline: true
+ entry_name: shipToList
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
+ profileType:
+ expose: true
+ access_type: public_method
+ serialized_name: profileType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileType
+ setter: setProfileType
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerType.yml
new file mode 100644
index 0000000..827f7a5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/CustomerType.yml
@@ -0,0 +1,72 @@
+net\authorize\api\contract\v1\CustomerType:
+ properties:
+ type:
+ expose: true
+ access_type: public_method
+ serialized_name: type
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getType
+ setter: setType
+ type: string
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
+ phoneNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: phoneNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPhoneNumber
+ setter: setPhoneNumber
+ type: string
+ faxNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: faxNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFaxNumber
+ setter: setFaxNumber
+ type: string
+ driversLicense:
+ expose: true
+ access_type: public_method
+ serialized_name: driversLicense
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDriversLicense
+ setter: setDriversLicense
+ type: net\authorize\api\contract\v1\DriversLicenseType
+ taxId:
+ expose: true
+ access_type: public_method
+ serialized_name: taxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxId
+ setter: setTaxId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataRequest.yml
new file mode 100644
index 0000000..59c66cf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\DecryptPaymentDataRequest:
+ xml_root_name: decryptPaymentDataRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ opaqueData:
+ expose: true
+ access_type: public_method
+ serialized_name: opaqueData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOpaqueData
+ setter: setOpaqueData
+ type: net\authorize\api\contract\v1\OpaqueDataType
+ callId:
+ expose: true
+ access_type: public_method
+ serialized_name: callId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCallId
+ setter: setCallId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataResponse.yml
new file mode 100644
index 0000000..5fb3411
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DecryptPaymentDataResponse.yml
@@ -0,0 +1,44 @@
+net\authorize\api\contract\v1\DecryptPaymentDataResponse:
+ xml_root_name: decryptPaymentDataResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ shippingInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: shippingInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShippingInfo
+ setter: setShippingInfo
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ billingInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: billingInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillingInfo
+ setter: setBillingInfo
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ cardInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: cardInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardInfo
+ setter: setCardInfo
+ type: net\authorize\api\contract\v1\CreditCardMaskedType
+ paymentDetails:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentDetails
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentDetails
+ setter: setPaymentDetails
+ type: net\authorize\api\contract\v1\PaymentDetailsType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileRequest.yml
new file mode 100644
index 0000000..92c8442
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\DeleteCustomerPaymentProfileRequest:
+ xml_root_name: deleteCustomerPaymentProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileResponse.yml
new file mode 100644
index 0000000..1746ffb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerPaymentProfileResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\DeleteCustomerPaymentProfileResponse:
+ xml_root_name: deleteCustomerPaymentProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileRequest.yml
new file mode 100644
index 0000000..aececc7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\DeleteCustomerProfileRequest:
+ xml_root_name: deleteCustomerProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileResponse.yml
new file mode 100644
index 0000000..7717a8e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerProfileResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\DeleteCustomerProfileResponse:
+ xml_root_name: deleteCustomerProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressRequest.yml
new file mode 100644
index 0000000..8f40189
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\DeleteCustomerShippingAddressRequest:
+ xml_root_name: deleteCustomerShippingAddressRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerAddressId
+ setter: setCustomerAddressId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressResponse.yml
new file mode 100644
index 0000000..685f496
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DeleteCustomerShippingAddressResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\DeleteCustomerShippingAddressResponse:
+ xml_root_name: deleteCustomerShippingAddressResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseMaskedType.yml
new file mode 100644
index 0000000..7e656ff
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseMaskedType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\DriversLicenseMaskedType:
+ properties:
+ number:
+ expose: true
+ access_type: public_method
+ serialized_name: number
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNumber
+ setter: setNumber
+ type: string
+ state:
+ expose: true
+ access_type: public_method
+ serialized_name: state
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getState
+ setter: setState
+ type: string
+ dateOfBirth:
+ expose: true
+ access_type: public_method
+ serialized_name: dateOfBirth
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDateOfBirth
+ setter: setDateOfBirth
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseType.yml
new file mode 100644
index 0000000..9e5d557
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/DriversLicenseType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\DriversLicenseType:
+ properties:
+ number:
+ expose: true
+ access_type: public_method
+ serialized_name: number
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNumber
+ setter: setNumber
+ type: string
+ state:
+ expose: true
+ access_type: public_method
+ serialized_name: state
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getState
+ setter: setState
+ type: string
+ dateOfBirth:
+ expose: true
+ access_type: public_method
+ serialized_name: dateOfBirth
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDateOfBirth
+ setter: setDateOfBirth
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/EmailSettingsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/EmailSettingsType.yml
new file mode 100644
index 0000000..47f5c09
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/EmailSettingsType.yml
@@ -0,0 +1,11 @@
+net\authorize\api\contract\v1\EmailSettingsType:
+ properties:
+ version:
+ expose: true
+ access_type: public_method
+ serialized_name: version
+ accessor:
+ getter: getVersion
+ setter: setVersion
+ xml_attribute: true
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/EmvTagType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/EmvTagType.yml
new file mode 100644
index 0000000..1924dc5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/EmvTagType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\EmvTagType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ value:
+ expose: true
+ access_type: public_method
+ serialized_name: value
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValue
+ setter: setValue
+ type: string
+ formatted:
+ expose: true
+ access_type: public_method
+ serialized_name: formatted
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFormatted
+ setter: setFormatted
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/EncryptedTrackDataType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/EncryptedTrackDataType.yml
new file mode 100644
index 0000000..284e5e0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/EncryptedTrackDataType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\EncryptedTrackDataType:
+ properties:
+ formOfPayment:
+ expose: true
+ access_type: public_method
+ serialized_name: FormOfPayment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFormOfPayment
+ setter: setFormOfPayment
+ type: net\authorize\api\contract\v1\KeyBlockType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/EnumCollection.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/EnumCollection.yml
new file mode 100644
index 0000000..224631f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/EnumCollection.yml
@@ -0,0 +1,104 @@
+net\authorize\api\contract\v1\EnumCollection:
+ xml_root_name: EnumCollection
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileSummaryType:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileSummaryType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileSummaryType
+ setter: setCustomerProfileSummaryType
+ type: net\authorize\api\contract\v1\CustomerProfileSummaryType
+ paymentSimpleType:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentSimpleType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentSimpleType
+ setter: setPaymentSimpleType
+ type: net\authorize\api\contract\v1\PaymentSimpleType
+ accountTypeEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: accountTypeEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountTypeEnum
+ setter: setAccountTypeEnum
+ type: string
+ cardTypeEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: cardTypeEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardTypeEnum
+ setter: setCardTypeEnum
+ type: string
+ fDSFilterActionEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: FDSFilterActionEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFDSFilterActionEnum
+ setter: setFDSFilterActionEnum
+ type: string
+ permissionsEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: permissionsEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPermissionsEnum
+ setter: setPermissionsEnum
+ type: string
+ settingNameEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: settingNameEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettingNameEnum
+ setter: setSettingNameEnum
+ type: string
+ settlementStateEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: settlementStateEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettlementStateEnum
+ setter: setSettlementStateEnum
+ type: string
+ transactionStatusEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionStatusEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionStatusEnum
+ setter: setTransactionStatusEnum
+ type: string
+ transactionTypeEnum:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionTypeEnum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionTypeEnum
+ setter: setTransactionTypeEnum
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ErrorResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ErrorResponse.yml
new file mode 100644
index 0000000..424327b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ErrorResponse.yml
@@ -0,0 +1,3 @@
+net\authorize\api\contract\v1\ErrorResponse:
+ xml_root_name: ErrorResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ExtendedAmountType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ExtendedAmountType.yml
new file mode 100644
index 0000000..7724cd5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ExtendedAmountType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\ExtendedAmountType:
+ properties:
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/FDSFilterType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/FDSFilterType.yml
new file mode 100644
index 0000000..1290639
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/FDSFilterType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\FDSFilterType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ action:
+ expose: true
+ access_type: public_method
+ serialized_name: action
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAction
+ setter: setAction
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/FingerPrintType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/FingerPrintType.yml
new file mode 100644
index 0000000..c17707e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/FingerPrintType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\FingerPrintType:
+ properties:
+ hashValue:
+ expose: true
+ access_type: public_method
+ serialized_name: hashValue
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getHashValue
+ setter: setHashValue
+ type: string
+ sequence:
+ expose: true
+ access_type: public_method
+ serialized_name: sequence
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSequence
+ setter: setSequence
+ type: string
+ timestamp:
+ expose: true
+ access_type: public_method
+ serialized_name: timestamp
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTimestamp
+ setter: setTimestamp
+ type: string
+ currencyCode:
+ expose: true
+ access_type: public_method
+ serialized_name: currencyCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCurrencyCode
+ setter: setCurrencyCode
+ type: string
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/FraudInformationType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/FraudInformationType.yml
new file mode 100644
index 0000000..2b0d05b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/FraudInformationType.yml
@@ -0,0 +1,27 @@
+net\authorize\api\contract\v1\FraudInformationType:
+ properties:
+ fraudFilterList:
+ expose: true
+ access_type: public_method
+ serialized_name: fraudFilterList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFraudFilterList
+ setter: setFraudFilterList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: fraudFilter
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ fraudAction:
+ expose: true
+ access_type: public_method
+ serialized_name: fraudAction
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFraudAction
+ setter: setFraudAction
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsRequest.yml
new file mode 100644
index 0000000..b2aac5a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\GetAUJobDetailsRequest:
+ xml_root_name: getAUJobDetailsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ month:
+ expose: true
+ access_type: public_method
+ serialized_name: month
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMonth
+ setter: setMonth
+ type: string
+ modifiedTypeFilter:
+ expose: true
+ access_type: public_method
+ serialized_name: modifiedTypeFilter
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getModifiedTypeFilter
+ setter: setModifiedTypeFilter
+ type: string
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsResponse.yml
new file mode 100644
index 0000000..2223f0c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobDetailsResponse.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\GetAUJobDetailsResponse:
+ xml_root_name: getAUJobDetailsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ totalNumInResultSet:
+ expose: true
+ access_type: public_method
+ serialized_name: totalNumInResultSet
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalNumInResultSet
+ setter: setTotalNumInResultSet
+ type: integer
+ auDetails:
+ expose: true
+ access_type: public_method
+ serialized_name: auDetails
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuDetails
+ setter: setAuDetails
+ type: net\authorize\api\contract\v1\ListOfAUDetailsType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryRequest.yml
new file mode 100644
index 0000000..4cb5b3b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetAUJobSummaryRequest:
+ xml_root_name: getAUJobSummaryRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ month:
+ expose: true
+ access_type: public_method
+ serialized_name: month
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMonth
+ setter: setMonth
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryResponse.yml
new file mode 100644
index 0000000..d25e862
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetAUJobSummaryResponse.yml
@@ -0,0 +1,19 @@
+net\authorize\api\contract\v1\GetAUJobSummaryResponse:
+ xml_root_name: getAUJobSummaryResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ auSummary:
+ expose: true
+ access_type: public_method
+ serialized_name: auSummary
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuSummary
+ setter: setAuSummary
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: auResponse
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsRequest.yml
new file mode 100644
index 0000000..1276390
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetBatchStatisticsRequest:
+ xml_root_name: getBatchStatisticsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ batchId:
+ expose: true
+ access_type: public_method
+ serialized_name: batchId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatchId
+ setter: setBatchId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsResponse.yml
new file mode 100644
index 0000000..19af71a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetBatchStatisticsResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetBatchStatisticsResponse:
+ xml_root_name: getBatchStatisticsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ batch:
+ expose: true
+ access_type: public_method
+ serialized_name: batch
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatch
+ setter: setBatch
+ type: net\authorize\api\contract\v1\BatchDetailsType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListRequest.yml
new file mode 100644
index 0000000..4ac8c1b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListRequest.yml
@@ -0,0 +1,44 @@
+net\authorize\api\contract\v1\GetCustomerPaymentProfileListRequest:
+ xml_root_name: getCustomerPaymentProfileListRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ searchType:
+ expose: true
+ access_type: public_method
+ serialized_name: searchType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSearchType
+ setter: setSearchType
+ type: string
+ month:
+ expose: true
+ access_type: public_method
+ serialized_name: month
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMonth
+ setter: setMonth
+ type: string
+ sorting:
+ expose: true
+ access_type: public_method
+ serialized_name: sorting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSorting
+ setter: setSorting
+ type: net\authorize\api\contract\v1\CustomerPaymentProfileSortingType
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListResponse.yml
new file mode 100644
index 0000000..cfbf7bf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileListResponse.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetCustomerPaymentProfileListResponse:
+ xml_root_name: getCustomerPaymentProfileListResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ totalNumInResultSet:
+ expose: true
+ access_type: public_method
+ serialized_name: totalNumInResultSet
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalNumInResultSet
+ setter: setTotalNumInResultSet
+ type: integer
+ paymentProfiles:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfiles
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfiles
+ setter: setPaymentProfiles
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: paymentProfile
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileRequest.yml
new file mode 100644
index 0000000..8c59d16
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileRequest.yml
@@ -0,0 +1,44 @@
+net\authorize\api\contract\v1\GetCustomerPaymentProfileRequest:
+ xml_root_name: getCustomerPaymentProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ unmaskExpirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: unmaskExpirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUnmaskExpirationDate
+ setter: setUnmaskExpirationDate
+ type: boolean
+ includeIssuerInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: includeIssuerInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIncludeIssuerInfo
+ setter: setIncludeIssuerInfo
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileResponse.yml
new file mode 100644
index 0000000..44caecc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerPaymentProfileResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetCustomerPaymentProfileResponse:
+ xml_root_name: getCustomerPaymentProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ paymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfile
+ setter: setPaymentProfile
+ type: net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsRequest.yml
new file mode 100644
index 0000000..494a3e6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsRequest.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\GetCustomerProfileIdsRequest:
+ xml_root_name: getCustomerProfileIdsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsResponse.yml
new file mode 100644
index 0000000..6cf82f7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileIdsResponse.yml
@@ -0,0 +1,19 @@
+net\authorize\api\contract\v1\GetCustomerProfileIdsResponse:
+ xml_root_name: getCustomerProfileIdsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ ids:
+ expose: true
+ access_type: public_method
+ serialized_name: ids
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIds
+ setter: setIds
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: numericString
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileRequest.yml
new file mode 100644
index 0000000..f5a4e29
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileRequest.yml
@@ -0,0 +1,54 @@
+net\authorize\api\contract\v1\GetCustomerProfileRequest:
+ xml_root_name: getCustomerProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ merchantCustomerId:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantCustomerId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantCustomerId
+ setter: setMerchantCustomerId
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
+ unmaskExpirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: unmaskExpirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUnmaskExpirationDate
+ setter: setUnmaskExpirationDate
+ type: boolean
+ includeIssuerInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: includeIssuerInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIncludeIssuerInfo
+ setter: setIncludeIssuerInfo
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileResponse.yml
new file mode 100644
index 0000000..8fdd24e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerProfileResponse.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetCustomerProfileResponse:
+ xml_root_name: getCustomerProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileMaskedType
+ subscriptionIds:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionIds
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionIds
+ setter: setSubscriptionIds
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: subscriptionId
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressRequest.yml
new file mode 100644
index 0000000..89d6e9f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\GetCustomerShippingAddressRequest:
+ xml_root_name: getCustomerShippingAddressRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerAddressId
+ setter: setCustomerAddressId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressResponse.yml
new file mode 100644
index 0000000..ab0b75e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetCustomerShippingAddressResponse.yml
@@ -0,0 +1,39 @@
+net\authorize\api\contract\v1\GetCustomerShippingAddressResponse:
+ xml_root_name: getCustomerShippingAddressResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ defaultShippingAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultShippingAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultShippingAddress
+ setter: setDefaultShippingAddress
+ type: boolean
+ address:
+ expose: true
+ access_type: public_method
+ serialized_name: address
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAddress
+ setter: setAddress
+ type: net\authorize\api\contract\v1\CustomerAddressExType
+ subscriptionIds:
+ expose: true
+ access_type: public_method
+ serialized_name: subscriptionIds
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscriptionIds
+ setter: setSubscriptionIds
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: subscriptionId
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageRequest.yml
new file mode 100644
index 0000000..d157454
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageRequest.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetHostedPaymentPageRequest:
+ xml_root_name: getHostedPaymentPageRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactionRequest:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionRequest
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionRequest
+ setter: setTransactionRequest
+ type: net\authorize\api\contract\v1\TransactionRequestType
+ hostedPaymentSettings:
+ expose: true
+ access_type: public_method
+ serialized_name: hostedPaymentSettings
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getHostedPaymentSettings
+ setter: setHostedPaymentSettings
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: setting
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageResponse.yml
new file mode 100644
index 0000000..682709c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedPaymentPageResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetHostedPaymentPageResponse:
+ xml_root_name: getHostedPaymentPageResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ token:
+ expose: true
+ access_type: public_method
+ serialized_name: token
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getToken
+ setter: setToken
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageRequest.yml
new file mode 100644
index 0000000..6b55341
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageRequest.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetHostedProfilePageRequest:
+ xml_root_name: getHostedProfilePageRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ hostedProfileSettings:
+ expose: true
+ access_type: public_method
+ serialized_name: hostedProfileSettings
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getHostedProfileSettings
+ setter: setHostedProfileSettings
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: setting
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageResponse.yml
new file mode 100644
index 0000000..d4b5565
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetHostedProfilePageResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetHostedProfilePageResponse:
+ xml_root_name: getHostedProfilePageResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ token:
+ expose: true
+ access_type: public_method
+ serialized_name: token
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getToken
+ setter: setToken
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsRequest.yml
new file mode 100644
index 0000000..8b7fe32
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsRequest.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\GetMerchantDetailsRequest:
+ xml_root_name: getMerchantDetailsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsResponse.yml
new file mode 100644
index 0000000..c45c695
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetMerchantDetailsResponse.yml
@@ -0,0 +1,119 @@
+net\authorize\api\contract\v1\GetMerchantDetailsResponse:
+ xml_root_name: getMerchantDetailsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ isTestMode:
+ expose: true
+ access_type: public_method
+ serialized_name: isTestMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsTestMode
+ setter: setIsTestMode
+ type: boolean
+ processors:
+ expose: true
+ access_type: public_method
+ serialized_name: processors
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProcessors
+ setter: setProcessors
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: processor
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ merchantName:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantName
+ setter: setMerchantName
+ type: string
+ gatewayId:
+ expose: true
+ access_type: public_method
+ serialized_name: gatewayId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getGatewayId
+ setter: setGatewayId
+ type: string
+ marketTypes:
+ expose: true
+ access_type: public_method
+ serialized_name: marketTypes
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMarketTypes
+ setter: setMarketTypes
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: marketType
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ productCodes:
+ expose: true
+ access_type: public_method
+ serialized_name: productCodes
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProductCodes
+ setter: setProductCodes
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: productCode
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ paymentMethods:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentMethods
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentMethods
+ setter: setPaymentMethods
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: paymentMethod
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ currencies:
+ expose: true
+ access_type: public_method
+ serialized_name: currencies
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCurrencies
+ setter: setCurrencies
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: currency
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ publicClientKey:
+ expose: true
+ access_type: public_method
+ serialized_name: publicClientKey
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPublicClientKey
+ setter: setPublicClientKey
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListRequest.yml
new file mode 100644
index 0000000..5a90e02
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\GetSettledBatchListRequest:
+ xml_root_name: getSettledBatchListRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ includeStatistics:
+ expose: true
+ access_type: public_method
+ serialized_name: includeStatistics
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIncludeStatistics
+ setter: setIncludeStatistics
+ type: boolean
+ firstSettlementDate:
+ expose: true
+ access_type: public_method
+ serialized_name: firstSettlementDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFirstSettlementDate
+ setter: setFirstSettlementDate
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ lastSettlementDate:
+ expose: true
+ access_type: public_method
+ serialized_name: lastSettlementDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLastSettlementDate
+ setter: setLastSettlementDate
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListResponse.yml
new file mode 100644
index 0000000..4e61ee3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetSettledBatchListResponse.yml
@@ -0,0 +1,19 @@
+net\authorize\api\contract\v1\GetSettledBatchListResponse:
+ xml_root_name: getSettledBatchListResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ batchList:
+ expose: true
+ access_type: public_method
+ serialized_name: batchList
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatchList
+ setter: setBatchList
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: batch
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsRequest.yml
new file mode 100644
index 0000000..13a1776
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\GetTransactionDetailsRequest:
+ xml_root_name: getTransactionDetailsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsResponse.yml
new file mode 100644
index 0000000..df4d3e9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionDetailsResponse.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\GetTransactionDetailsResponse:
+ xml_root_name: getTransactionDetailsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transaction:
+ expose: true
+ access_type: public_method
+ serialized_name: transaction
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransaction
+ setter: setTransaction
+ type: net\authorize\api\contract\v1\TransactionDetailsType
+ clientId:
+ expose: true
+ access_type: public_method
+ serialized_name: clientId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getClientId
+ setter: setClientId
+ type: string
+ transrefId:
+ expose: true
+ access_type: public_method
+ serialized_name: transrefId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransrefId
+ setter: setTransrefId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListForCustomerRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListForCustomerRequest.yml
new file mode 100644
index 0000000..a009c36
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListForCustomerRequest.yml
@@ -0,0 +1,44 @@
+net\authorize\api\contract\v1\GetTransactionListForCustomerRequest:
+ xml_root_name: getTransactionListForCustomerRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ sorting:
+ expose: true
+ access_type: public_method
+ serialized_name: sorting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSorting
+ setter: setSorting
+ type: net\authorize\api\contract\v1\TransactionListSortingType
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListRequest.yml
new file mode 100644
index 0000000..74d8708
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\GetTransactionListRequest:
+ xml_root_name: getTransactionListRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ batchId:
+ expose: true
+ access_type: public_method
+ serialized_name: batchId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatchId
+ setter: setBatchId
+ type: string
+ sorting:
+ expose: true
+ access_type: public_method
+ serialized_name: sorting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSorting
+ setter: setSorting
+ type: net\authorize\api\contract\v1\TransactionListSortingType
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListResponse.yml
new file mode 100644
index 0000000..04b81c7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetTransactionListResponse.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetTransactionListResponse:
+ xml_root_name: getTransactionListResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactions:
+ expose: true
+ access_type: public_method
+ serialized_name: transactions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactions
+ setter: setTransactions
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: transaction
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ totalNumInResultSet:
+ expose: true
+ access_type: public_method
+ serialized_name: totalNumInResultSet
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalNumInResultSet
+ setter: setTotalNumInResultSet
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListRequest.yml
new file mode 100644
index 0000000..bae400e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\GetUnsettledTransactionListRequest:
+ xml_root_name: getUnsettledTransactionListRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ status:
+ expose: true
+ access_type: public_method
+ serialized_name: status
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStatus
+ setter: setStatus
+ type: string
+ sorting:
+ expose: true
+ access_type: public_method
+ serialized_name: sorting
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSorting
+ setter: setSorting
+ type: net\authorize\api\contract\v1\TransactionListSortingType
+ paging:
+ expose: true
+ access_type: public_method
+ serialized_name: paging
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaging
+ setter: setPaging
+ type: net\authorize\api\contract\v1\PagingType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListResponse.yml
new file mode 100644
index 0000000..6da36dc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/GetUnsettledTransactionListResponse.yml
@@ -0,0 +1,29 @@
+net\authorize\api\contract\v1\GetUnsettledTransactionListResponse:
+ xml_root_name: getUnsettledTransactionListResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactions:
+ expose: true
+ access_type: public_method
+ serialized_name: transactions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactions
+ setter: setTransactions
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: transaction
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ totalNumInResultSet:
+ expose: true
+ access_type: public_method
+ serialized_name: totalNumInResultSet
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalNumInResultSet
+ setter: setTotalNumInResultSet
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/HeldTransactionRequestType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/HeldTransactionRequestType.yml
new file mode 100644
index 0000000..1cd8b4f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/HeldTransactionRequestType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\HeldTransactionRequestType:
+ properties:
+ action:
+ expose: true
+ access_type: public_method
+ serialized_name: action
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAction
+ setter: setAction
+ type: string
+ refTransId:
+ expose: true
+ access_type: public_method
+ serialized_name: refTransId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefTransId
+ setter: setRefTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ImpersonationAuthenticationType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ImpersonationAuthenticationType.yml
new file mode 100644
index 0000000..71ce07f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ImpersonationAuthenticationType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\ImpersonationAuthenticationType:
+ properties:
+ partnerLoginId:
+ expose: true
+ access_type: public_method
+ serialized_name: partnerLoginId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPartnerLoginId
+ setter: setPartnerLoginId
+ type: string
+ partnerTransactionKey:
+ expose: true
+ access_type: public_method
+ serialized_name: partnerTransactionKey
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPartnerTransactionKey
+ setter: setPartnerTransactionKey
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveRequest.yml
new file mode 100644
index 0000000..3c10170
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\IsAliveRequest:
+ xml_root_name: isAliveRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ refId:
+ expose: true
+ access_type: public_method
+ serialized_name: refId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefId
+ setter: setRefId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveResponse.yml
new file mode 100644
index 0000000..8623707
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/IsAliveResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\IsAliveResponse:
+ xml_root_name: isAliveResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyBlockType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyBlockType.yml
new file mode 100644
index 0000000..18a6060
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyBlockType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\KeyBlockType:
+ properties:
+ value:
+ expose: true
+ access_type: public_method
+ serialized_name: Value
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValue
+ setter: setValue
+ type: net\authorize\api\contract\v1\KeyValueType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.DeviceInfoAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.DeviceInfoAType.yml
new file mode 100644
index 0000000..1b1b19f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.DeviceInfoAType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType:
+ properties:
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: Description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.EncryptedDataAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.EncryptedDataAType.yml
new file mode 100644
index 0000000..6477955
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.EncryptedDataAType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType:
+ properties:
+ value:
+ expose: true
+ access_type: public_method
+ serialized_name: Value
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValue
+ setter: setValue
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.ModeAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.ModeAType.yml
new file mode 100644
index 0000000..05df4da
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.ModeAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType:
+ properties:
+ pIN:
+ expose: true
+ access_type: public_method
+ serialized_name: PIN
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPIN
+ setter: setPIN
+ type: string
+ data:
+ expose: true
+ access_type: public_method
+ serialized_name: Data
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getData
+ setter: setData
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.yml
new file mode 100644
index 0000000..0f9827d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.DUKPTAType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType:
+ properties:
+ operation:
+ expose: true
+ access_type: public_method
+ serialized_name: Operation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOperation
+ setter: setOperation
+ type: string
+ mode:
+ expose: true
+ access_type: public_method
+ serialized_name: Mode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMode
+ setter: setMode
+ type: net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\ModeAType
+ deviceInfo:
+ expose: true
+ access_type: public_method
+ serialized_name: DeviceInfo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDeviceInfo
+ setter: setDeviceInfo
+ type: net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\DeviceInfoAType
+ encryptedData:
+ expose: true
+ access_type: public_method
+ serialized_name: EncryptedData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEncryptedData
+ setter: setEncryptedData
+ type: net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType\EncryptedDataAType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.yml
new file mode 100644
index 0000000..293c411
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyManagementSchemeType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\KeyManagementSchemeType:
+ properties:
+ dUKPT:
+ expose: true
+ access_type: public_method
+ serialized_name: DUKPT
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDUKPT
+ setter: setDUKPT
+ type: net\authorize\api\contract\v1\KeyManagementSchemeType\DUKPTAType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyValueType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyValueType.yml
new file mode 100644
index 0000000..44b733f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/KeyValueType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\KeyValueType:
+ properties:
+ encoding:
+ expose: true
+ access_type: public_method
+ serialized_name: Encoding
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEncoding
+ setter: setEncoding
+ type: string
+ encryptionAlgorithm:
+ expose: true
+ access_type: public_method
+ serialized_name: EncryptionAlgorithm
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEncryptionAlgorithm
+ setter: setEncryptionAlgorithm
+ type: string
+ scheme:
+ expose: true
+ access_type: public_method
+ serialized_name: Scheme
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getScheme
+ setter: setScheme
+ type: net\authorize\api\contract\v1\KeyManagementSchemeType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/LineItemType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/LineItemType.yml
new file mode 100644
index 0000000..4437b2a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/LineItemType.yml
@@ -0,0 +1,262 @@
+net\authorize\api\contract\v1\LineItemType:
+ properties:
+ itemId:
+ expose: true
+ access_type: public_method
+ serialized_name: itemId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getItemId
+ setter: setItemId
+ type: string
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
+ quantity:
+ expose: true
+ access_type: public_method
+ serialized_name: quantity
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getQuantity
+ setter: setQuantity
+ type: float
+ unitPrice:
+ expose: true
+ access_type: public_method
+ serialized_name: unitPrice
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUnitPrice
+ setter: setUnitPrice
+ type: float
+ taxable:
+ expose: true
+ access_type: public_method
+ serialized_name: taxable
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxable
+ setter: setTaxable
+ type: boolean
+ unitOfMeasure:
+ expose: true
+ access_type: public_method
+ serialized_name: unitOfMeasure
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUnitOfMeasure
+ setter: setUnitOfMeasure
+ type: string
+ typeOfSupply:
+ expose: true
+ access_type: public_method
+ serialized_name: typeOfSupply
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTypeOfSupply
+ setter: setTypeOfSupply
+ type: string
+ taxRate:
+ expose: true
+ access_type: public_method
+ serialized_name: taxRate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxRate
+ setter: setTaxRate
+ type: float
+ taxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: taxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxAmount
+ setter: setTaxAmount
+ type: float
+ nationalTax:
+ expose: true
+ access_type: public_method
+ serialized_name: nationalTax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNationalTax
+ setter: setNationalTax
+ type: float
+ localTax:
+ expose: true
+ access_type: public_method
+ serialized_name: localTax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLocalTax
+ setter: setLocalTax
+ type: float
+ vatRate:
+ expose: true
+ access_type: public_method
+ serialized_name: vatRate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVatRate
+ setter: setVatRate
+ type: float
+ alternateTaxId:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxId
+ setter: setAlternateTaxId
+ type: string
+ alternateTaxType:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxType
+ setter: setAlternateTaxType
+ type: string
+ alternateTaxTypeApplied:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxTypeApplied
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxTypeApplied
+ setter: setAlternateTaxTypeApplied
+ type: string
+ alternateTaxRate:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxRate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxRate
+ setter: setAlternateTaxRate
+ type: float
+ alternateTaxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxAmount
+ setter: setAlternateTaxAmount
+ type: float
+ totalAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: totalAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalAmount
+ setter: setTotalAmount
+ type: float
+ commodityCode:
+ expose: true
+ access_type: public_method
+ serialized_name: commodityCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCommodityCode
+ setter: setCommodityCode
+ type: string
+ productCode:
+ expose: true
+ access_type: public_method
+ serialized_name: productCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProductCode
+ setter: setProductCode
+ type: string
+ productSKU:
+ expose: true
+ access_type: public_method
+ serialized_name: productSKU
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProductSKU
+ setter: setProductSKU
+ type: string
+ discountRate:
+ expose: true
+ access_type: public_method
+ serialized_name: discountRate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDiscountRate
+ setter: setDiscountRate
+ type: float
+ discountAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: discountAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDiscountAmount
+ setter: setDiscountAmount
+ type: float
+ taxIncludedInTotal:
+ expose: true
+ access_type: public_method
+ serialized_name: taxIncludedInTotal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxIncludedInTotal
+ setter: setTaxIncludedInTotal
+ type: boolean
+ taxIsAfterDiscount:
+ expose: true
+ access_type: public_method
+ serialized_name: taxIsAfterDiscount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxIsAfterDiscount
+ setter: setTaxIsAfterDiscount
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ListOfAUDetailsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ListOfAUDetailsType.yml
new file mode 100644
index 0000000..5d7eda9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ListOfAUDetailsType.yml
@@ -0,0 +1,30 @@
+net\authorize\api\contract\v1\ListOfAUDetailsType:
+ properties:
+ auUpdate:
+ expose: true
+ access_type: public_method
+ serialized_name: auUpdate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuUpdate
+ setter: setAuUpdate
+ xml_list:
+ inline: true
+ entry_name: auUpdate
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
+ auDelete:
+ expose: true
+ access_type: public_method
+ serialized_name: auDelete
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuDelete
+ setter: setAuDelete
+ xml_list:
+ inline: true
+ entry_name: auDelete
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutRequest.yml
new file mode 100644
index 0000000..b234bfd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutRequest.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\LogoutRequest:
+ xml_root_name: logoutRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutResponse.yml
new file mode 100644
index 0000000..ca0627b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/LogoutResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\LogoutResponse:
+ xml_root_name: logoutResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantAuthenticationType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantAuthenticationType.yml
new file mode 100644
index 0000000..f0f79a9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantAuthenticationType.yml
@@ -0,0 +1,92 @@
+net\authorize\api\contract\v1\MerchantAuthenticationType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ transactionKey:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionKey
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionKey
+ setter: setTransactionKey
+ type: string
+ sessionToken:
+ expose: true
+ access_type: public_method
+ serialized_name: sessionToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSessionToken
+ setter: setSessionToken
+ type: string
+ password:
+ expose: true
+ access_type: public_method
+ serialized_name: password
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPassword
+ setter: setPassword
+ type: string
+ impersonationAuthentication:
+ expose: true
+ access_type: public_method
+ serialized_name: impersonationAuthentication
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getImpersonationAuthentication
+ setter: setImpersonationAuthentication
+ type: net\authorize\api\contract\v1\ImpersonationAuthenticationType
+ fingerPrint:
+ expose: true
+ access_type: public_method
+ serialized_name: fingerPrint
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFingerPrint
+ setter: setFingerPrint
+ type: net\authorize\api\contract\v1\FingerPrintType
+ clientKey:
+ expose: true
+ access_type: public_method
+ serialized_name: clientKey
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getClientKey
+ setter: setClientKey
+ type: string
+ accessToken:
+ expose: true
+ access_type: public_method
+ serialized_name: accessToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccessToken
+ setter: setAccessToken
+ type: string
+ mobileDeviceId:
+ expose: true
+ access_type: public_method
+ serialized_name: mobileDeviceId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMobileDeviceId
+ setter: setMobileDeviceId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantContactType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantContactType.yml
new file mode 100644
index 0000000..37dfab6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MerchantContactType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\MerchantContactType:
+ properties:
+ merchantName:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantName
+ setter: setMerchantName
+ type: string
+ merchantAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantAddress
+ setter: setMerchantAddress
+ type: string
+ merchantCity:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantCity
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantCity
+ setter: setMerchantCity
+ type: string
+ merchantState:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantState
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantState
+ setter: setMerchantState
+ type: string
+ merchantZip:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantZip
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantZip
+ setter: setMerchantZip
+ type: string
+ merchantPhone:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantPhone
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantPhone
+ setter: setMerchantPhone
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.MessageAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.MessageAType.yml
new file mode 100644
index 0000000..ca973ed
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.MessageAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\MessagesType\MessageAType:
+ properties:
+ code:
+ expose: true
+ access_type: public_method
+ serialized_name: code
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCode
+ setter: setCode
+ type: string
+ text:
+ expose: true
+ access_type: public_method
+ serialized_name: text
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getText
+ setter: setText
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.yml
new file mode 100644
index 0000000..d27286d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MessagesType.yml
@@ -0,0 +1,26 @@
+net\authorize\api\contract\v1\MessagesType:
+ properties:
+ resultCode:
+ expose: true
+ access_type: public_method
+ serialized_name: resultCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResultCode
+ setter: setResultCode
+ type: string
+ message:
+ expose: true
+ access_type: public_method
+ serialized_name: message
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMessage
+ setter: setMessage
+ xml_list:
+ inline: true
+ entry_name: message
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginRequest.yml
new file mode 100644
index 0000000..148b60e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginRequest.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\MobileDeviceLoginRequest:
+ xml_root_name: mobileDeviceLoginRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginResponse.yml
new file mode 100644
index 0000000..8a17ee1
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceLoginResponse.yml
@@ -0,0 +1,39 @@
+net\authorize\api\contract\v1\MobileDeviceLoginResponse:
+ xml_root_name: mobileDeviceLoginResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ merchantContact:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantContact
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantContact
+ setter: setMerchantContact
+ type: net\authorize\api\contract\v1\MerchantContactType
+ userPermissions:
+ expose: true
+ access_type: public_method
+ serialized_name: userPermissions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUserPermissions
+ setter: setUserPermissions
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: false
+ entry_name: permission
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ merchantAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantAccount
+ setter: setMerchantAccount
+ type: net\authorize\api\contract\v1\TransRetailInfoType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationRequest.yml
new file mode 100644
index 0000000..78a3950
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\MobileDeviceRegistrationRequest:
+ xml_root_name: mobileDeviceRegistrationRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ mobileDevice:
+ expose: true
+ access_type: public_method
+ serialized_name: mobileDevice
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMobileDevice
+ setter: setMobileDevice
+ type: net\authorize\api\contract\v1\MobileDeviceType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationResponse.yml
new file mode 100644
index 0000000..0660250
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceRegistrationResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\MobileDeviceRegistrationResponse:
+ xml_root_name: mobileDeviceRegistrationResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceType.yml
new file mode 100644
index 0000000..a98087f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/MobileDeviceType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\MobileDeviceType:
+ properties:
+ mobileDeviceId:
+ expose: true
+ access_type: public_method
+ serialized_name: mobileDeviceId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMobileDeviceId
+ setter: setMobileDeviceId
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
+ phoneNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: phoneNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPhoneNumber
+ setter: setPhoneNumber
+ type: string
+ devicePlatform:
+ expose: true
+ access_type: public_method
+ serialized_name: devicePlatform
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDevicePlatform
+ setter: setDevicePlatform
+ type: string
+ deviceActivation:
+ expose: true
+ access_type: public_method
+ serialized_name: deviceActivation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDeviceActivation
+ setter: setDeviceActivation
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/NameAndAddressType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/NameAndAddressType.yml
new file mode 100644
index 0000000..1cf49d5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/NameAndAddressType.yml
@@ -0,0 +1,82 @@
+net\authorize\api\contract\v1\NameAndAddressType:
+ properties:
+ firstName:
+ expose: true
+ access_type: public_method
+ serialized_name: firstName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFirstName
+ setter: setFirstName
+ type: string
+ lastName:
+ expose: true
+ access_type: public_method
+ serialized_name: lastName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLastName
+ setter: setLastName
+ type: string
+ company:
+ expose: true
+ access_type: public_method
+ serialized_name: company
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCompany
+ setter: setCompany
+ type: string
+ address:
+ expose: true
+ access_type: public_method
+ serialized_name: address
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAddress
+ setter: setAddress
+ type: string
+ city:
+ expose: true
+ access_type: public_method
+ serialized_name: city
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCity
+ setter: setCity
+ type: string
+ state:
+ expose: true
+ access_type: public_method
+ serialized_name: state
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getState
+ setter: setState
+ type: string
+ zip:
+ expose: true
+ access_type: public_method
+ serialized_name: zip
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getZip
+ setter: setZip
+ type: string
+ country:
+ expose: true
+ access_type: public_method
+ serialized_name: country
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCountry
+ setter: setCountry
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/OpaqueDataType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/OpaqueDataType.yml
new file mode 100644
index 0000000..46bfabc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/OpaqueDataType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\OpaqueDataType:
+ properties:
+ dataDescriptor:
+ expose: true
+ access_type: public_method
+ serialized_name: dataDescriptor
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDataDescriptor
+ setter: setDataDescriptor
+ type: string
+ dataValue:
+ expose: true
+ access_type: public_method
+ serialized_name: dataValue
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDataValue
+ setter: setDataValue
+ type: string
+ dataKey:
+ expose: true
+ access_type: public_method
+ serialized_name: dataKey
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDataKey
+ setter: setDataKey
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderExType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderExType.yml
new file mode 100644
index 0000000..40b77b8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderExType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\OrderExType:
+ properties:
+ purchaseOrderNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: purchaseOrderNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPurchaseOrderNumber
+ setter: setPurchaseOrderNumber
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderType.yml
new file mode 100644
index 0000000..66e2c9d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/OrderType.yml
@@ -0,0 +1,182 @@
+net\authorize\api\contract\v1\OrderType:
+ properties:
+ invoiceNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: invoiceNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getInvoiceNumber
+ setter: setInvoiceNumber
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
+ discountAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: discountAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDiscountAmount
+ setter: setDiscountAmount
+ type: float
+ taxIsAfterDiscount:
+ expose: true
+ access_type: public_method
+ serialized_name: taxIsAfterDiscount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxIsAfterDiscount
+ setter: setTaxIsAfterDiscount
+ type: boolean
+ totalTaxTypeCode:
+ expose: true
+ access_type: public_method
+ serialized_name: totalTaxTypeCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalTaxTypeCode
+ setter: setTotalTaxTypeCode
+ type: string
+ purchaserVATRegistrationNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: purchaserVATRegistrationNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPurchaserVATRegistrationNumber
+ setter: setPurchaserVATRegistrationNumber
+ type: string
+ merchantVATRegistrationNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantVATRegistrationNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantVATRegistrationNumber
+ setter: setMerchantVATRegistrationNumber
+ type: string
+ vatInvoiceReferenceNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: vatInvoiceReferenceNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVatInvoiceReferenceNumber
+ setter: setVatInvoiceReferenceNumber
+ type: string
+ purchaserCode:
+ expose: true
+ access_type: public_method
+ serialized_name: purchaserCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPurchaserCode
+ setter: setPurchaserCode
+ type: string
+ summaryCommodityCode:
+ expose: true
+ access_type: public_method
+ serialized_name: summaryCommodityCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSummaryCommodityCode
+ setter: setSummaryCommodityCode
+ type: string
+ purchaseOrderDateUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: purchaseOrderDateUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPurchaseOrderDateUTC
+ setter: setPurchaseOrderDateUTC
+ type: 'DateTime<''Y-m-d''>'
+ supplierOrderReference:
+ expose: true
+ access_type: public_method
+ serialized_name: supplierOrderReference
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSupplierOrderReference
+ setter: setSupplierOrderReference
+ type: string
+ authorizedContactName:
+ expose: true
+ access_type: public_method
+ serialized_name: authorizedContactName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthorizedContactName
+ setter: setAuthorizedContactName
+ type: string
+ cardAcceptorRefNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: cardAcceptorRefNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardAcceptorRefNumber
+ setter: setCardAcceptorRefNumber
+ type: string
+ amexDataTAA1:
+ expose: true
+ access_type: public_method
+ serialized_name: amexDataTAA1
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmexDataTAA1
+ setter: setAmexDataTAA1
+ type: string
+ amexDataTAA2:
+ expose: true
+ access_type: public_method
+ serialized_name: amexDataTAA2
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmexDataTAA2
+ setter: setAmexDataTAA2
+ type: string
+ amexDataTAA3:
+ expose: true
+ access_type: public_method
+ serialized_name: amexDataTAA3
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmexDataTAA3
+ setter: setAmexDataTAA3
+ type: string
+ amexDataTAA4:
+ expose: true
+ access_type: public_method
+ serialized_name: amexDataTAA4
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmexDataTAA4
+ setter: setAmexDataTAA4
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/OtherTaxType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/OtherTaxType.yml
new file mode 100644
index 0000000..dcc7472
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/OtherTaxType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\OtherTaxType:
+ properties:
+ nationalTaxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: nationalTaxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNationalTaxAmount
+ setter: setNationalTaxAmount
+ type: float
+ localTaxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: localTaxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLocalTaxAmount
+ setter: setLocalTaxAmount
+ type: float
+ alternateTaxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxAmount
+ setter: setAlternateTaxAmount
+ type: float
+ alternateTaxId:
+ expose: true
+ access_type: public_method
+ serialized_name: alternateTaxId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAlternateTaxId
+ setter: setAlternateTaxId
+ type: string
+ vatTaxRate:
+ expose: true
+ access_type: public_method
+ serialized_name: vatTaxRate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVatTaxRate
+ setter: setVatTaxRate
+ type: float
+ vatTaxAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: vatTaxAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVatTaxAmount
+ setter: setVatTaxAmount
+ type: float
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PagingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PagingType.yml
new file mode 100644
index 0000000..3c863cc
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PagingType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\PagingType:
+ properties:
+ limit:
+ expose: true
+ access_type: public_method
+ serialized_name: limit
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLimit
+ setter: setLimit
+ type: integer
+ offset:
+ expose: true
+ access_type: public_method
+ serialized_name: offset
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOffset
+ setter: setOffset
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PayPalType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PayPalType.yml
new file mode 100644
index 0000000..bd732b6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PayPalType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\PayPalType:
+ properties:
+ successUrl:
+ expose: true
+ access_type: public_method
+ serialized_name: successUrl
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSuccessUrl
+ setter: setSuccessUrl
+ type: string
+ cancelUrl:
+ expose: true
+ access_type: public_method
+ serialized_name: cancelUrl
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCancelUrl
+ setter: setCancelUrl
+ type: string
+ paypalLc:
+ expose: true
+ access_type: public_method
+ serialized_name: paypalLc
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaypalLc
+ setter: setPaypalLc
+ type: string
+ paypalHdrImg:
+ expose: true
+ access_type: public_method
+ serialized_name: paypalHdrImg
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaypalHdrImg
+ setter: setPaypalHdrImg
+ type: string
+ paypalPayflowcolor:
+ expose: true
+ access_type: public_method
+ serialized_name: paypalPayflowcolor
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaypalPayflowcolor
+ setter: setPaypalPayflowcolor
+ type: string
+ payerID:
+ expose: true
+ access_type: public_method
+ serialized_name: payerID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayerID
+ setter: setPayerID
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentDetailsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentDetailsType.yml
new file mode 100644
index 0000000..0199d65
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentDetailsType.yml
@@ -0,0 +1,102 @@
+net\authorize\api\contract\v1\PaymentDetailsType:
+ properties:
+ currency:
+ expose: true
+ access_type: public_method
+ serialized_name: currency
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCurrency
+ setter: setCurrency
+ type: string
+ promoCode:
+ expose: true
+ access_type: public_method
+ serialized_name: promoCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPromoCode
+ setter: setPromoCode
+ type: string
+ misc:
+ expose: true
+ access_type: public_method
+ serialized_name: misc
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMisc
+ setter: setMisc
+ type: string
+ giftWrap:
+ expose: true
+ access_type: public_method
+ serialized_name: giftWrap
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getGiftWrap
+ setter: setGiftWrap
+ type: string
+ discount:
+ expose: true
+ access_type: public_method
+ serialized_name: discount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDiscount
+ setter: setDiscount
+ type: string
+ tax:
+ expose: true
+ access_type: public_method
+ serialized_name: tax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTax
+ setter: setTax
+ type: string
+ shippingHandling:
+ expose: true
+ access_type: public_method
+ serialized_name: shippingHandling
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShippingHandling
+ setter: setShippingHandling
+ type: string
+ subTotal:
+ expose: true
+ access_type: public_method
+ serialized_name: subTotal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubTotal
+ setter: setSubTotal
+ type: string
+ orderID:
+ expose: true
+ access_type: public_method
+ serialized_name: orderID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderID
+ setter: setOrderID
+ type: string
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentEmvType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentEmvType.yml
new file mode 100644
index 0000000..17406d5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentEmvType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\PaymentEmvType:
+ properties:
+ emvData:
+ expose: true
+ access_type: public_method
+ serialized_name: emvData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmvData
+ setter: setEmvData
+ type: W3\XMLSchema\2001\AnyType
+ emvDescriptor:
+ expose: true
+ access_type: public_method
+ serialized_name: emvDescriptor
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmvDescriptor
+ setter: setEmvDescriptor
+ type: W3\XMLSchema\2001\AnyType
+ emvVersion:
+ expose: true
+ access_type: public_method
+ serialized_name: emvVersion
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmvVersion
+ setter: setEmvVersion
+ type: W3\XMLSchema\2001\AnyType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentMaskedType.yml
new file mode 100644
index 0000000..348209a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentMaskedType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\PaymentMaskedType:
+ properties:
+ creditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: creditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreditCard
+ setter: setCreditCard
+ type: net\authorize\api\contract\v1\CreditCardMaskedType
+ bankAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: bankAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankAccount
+ setter: setBankAccount
+ type: net\authorize\api\contract\v1\BankAccountMaskedType
+ tokenInformation:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenInformation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenInformation
+ setter: setTokenInformation
+ type: net\authorize\api\contract\v1\TokenMaskedType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentProfileType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentProfileType.yml
new file mode 100644
index 0000000..582d29f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentProfileType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\PaymentProfileType:
+ properties:
+ paymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfileId
+ setter: setPaymentProfileId
+ type: string
+ cardCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCode
+ setter: setCardCode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.IntervalAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.IntervalAType.yml
new file mode 100644
index 0000000..26eccc9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.IntervalAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType:
+ properties:
+ length:
+ expose: true
+ access_type: public_method
+ serialized_name: length
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLength
+ setter: setLength
+ type: integer
+ unit:
+ expose: true
+ access_type: public_method
+ serialized_name: unit
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUnit
+ setter: setUnit
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.yml
new file mode 100644
index 0000000..4c3c04e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentScheduleType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\PaymentScheduleType:
+ properties:
+ interval:
+ expose: true
+ access_type: public_method
+ serialized_name: interval
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getInterval
+ setter: setInterval
+ type: net\authorize\api\contract\v1\PaymentScheduleType\IntervalAType
+ startDate:
+ expose: true
+ access_type: public_method
+ serialized_name: startDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStartDate
+ setter: setStartDate
+ type: 'DateTime<''Y-m-d''>'
+ totalOccurrences:
+ expose: true
+ access_type: public_method
+ serialized_name: totalOccurrences
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalOccurrences
+ setter: setTotalOccurrences
+ type: integer
+ trialOccurrences:
+ expose: true
+ access_type: public_method
+ serialized_name: trialOccurrences
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrialOccurrences
+ setter: setTrialOccurrences
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentSimpleType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentSimpleType.yml
new file mode 100644
index 0000000..1f3b125
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentSimpleType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\PaymentSimpleType:
+ properties:
+ creditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: creditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreditCard
+ setter: setCreditCard
+ type: net\authorize\api\contract\v1\CreditCardSimpleType
+ bankAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: bankAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankAccount
+ setter: setBankAccount
+ type: net\authorize\api\contract\v1\BankAccountType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentType.yml
new file mode 100644
index 0000000..e613618
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PaymentType.yml
@@ -0,0 +1,82 @@
+net\authorize\api\contract\v1\PaymentType:
+ properties:
+ creditCard:
+ expose: true
+ access_type: public_method
+ serialized_name: creditCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreditCard
+ setter: setCreditCard
+ type: net\authorize\api\contract\v1\CreditCardType
+ bankAccount:
+ expose: true
+ access_type: public_method
+ serialized_name: bankAccount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankAccount
+ setter: setBankAccount
+ type: net\authorize\api\contract\v1\BankAccountType
+ trackData:
+ expose: true
+ access_type: public_method
+ serialized_name: trackData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTrackData
+ setter: setTrackData
+ type: net\authorize\api\contract\v1\CreditCardTrackType
+ encryptedTrackData:
+ expose: true
+ access_type: public_method
+ serialized_name: encryptedTrackData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEncryptedTrackData
+ setter: setEncryptedTrackData
+ type: net\authorize\api\contract\v1\EncryptedTrackDataType
+ payPal:
+ expose: true
+ access_type: public_method
+ serialized_name: payPal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayPal
+ setter: setPayPal
+ type: net\authorize\api\contract\v1\PayPalType
+ opaqueData:
+ expose: true
+ access_type: public_method
+ serialized_name: opaqueData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOpaqueData
+ setter: setOpaqueData
+ type: net\authorize\api\contract\v1\OpaqueDataType
+ emv:
+ expose: true
+ access_type: public_method
+ serialized_name: emv
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmv
+ setter: setEmv
+ type: net\authorize\api\contract\v1\PaymentEmvType
+ dataSource:
+ expose: true
+ access_type: public_method
+ serialized_name: dataSource
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDataSource
+ setter: setDataSource
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/PermissionType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/PermissionType.yml
new file mode 100644
index 0000000..f548f20
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/PermissionType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\PermissionType:
+ properties:
+ permissionName:
+ expose: true
+ access_type: public_method
+ serialized_name: permissionName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPermissionName
+ setter: setPermissionName
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessingOptionsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessingOptionsType.yml
new file mode 100644
index 0000000..9a50ad4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessingOptionsType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\ProcessingOptionsType:
+ properties:
+ isFirstRecurringPayment:
+ expose: true
+ access_type: public_method
+ serialized_name: isFirstRecurringPayment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsFirstRecurringPayment
+ setter: setIsFirstRecurringPayment
+ type: boolean
+ isFirstSubsequentAuth:
+ expose: true
+ access_type: public_method
+ serialized_name: isFirstSubsequentAuth
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsFirstSubsequentAuth
+ setter: setIsFirstSubsequentAuth
+ type: boolean
+ isSubsequentAuth:
+ expose: true
+ access_type: public_method
+ serialized_name: isSubsequentAuth
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsSubsequentAuth
+ setter: setIsSubsequentAuth
+ type: boolean
+ isStoredCredentials:
+ expose: true
+ access_type: public_method
+ serialized_name: isStoredCredentials
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsStoredCredentials
+ setter: setIsStoredCredentials
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessorType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessorType.yml
new file mode 100644
index 0000000..e994e09
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProcessorType.yml
@@ -0,0 +1,37 @@
+net\authorize\api\contract\v1\ProcessorType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: integer
+ cardTypes:
+ expose: true
+ access_type: public_method
+ serialized_name: cardTypes
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardTypes
+ setter: setCardTypes
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: cardType
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAmountType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAmountType.yml
new file mode 100644
index 0000000..e9029fb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAmountType.yml
@@ -0,0 +1,56 @@
+net\authorize\api\contract\v1\ProfileTransAmountType:
+ properties:
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ tax:
+ expose: true
+ access_type: public_method
+ serialized_name: tax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTax
+ setter: setTax
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ shipping:
+ expose: true
+ access_type: public_method
+ serialized_name: shipping
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipping
+ setter: setShipping
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ duty:
+ expose: true
+ access_type: public_method
+ serialized_name: duty
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDuty
+ setter: setDuty
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ lineItems:
+ expose: true
+ access_type: public_method
+ serialized_name: lineItems
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLineItems
+ setter: setLineItems
+ xml_list:
+ inline: true
+ entry_name: lineItems
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthCaptureType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthCaptureType.yml
new file mode 100644
index 0000000..028e1dd
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthCaptureType.yml
@@ -0,0 +1,2 @@
+net\authorize\api\contract\v1\ProfileTransAuthCaptureType:
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthOnlyType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthOnlyType.yml
new file mode 100644
index 0000000..6d79415
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransAuthOnlyType.yml
@@ -0,0 +1,2 @@
+net\authorize\api\contract\v1\ProfileTransAuthOnlyType:
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransCaptureOnlyType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransCaptureOnlyType.yml
new file mode 100644
index 0000000..56c510e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransCaptureOnlyType.yml
@@ -0,0 +1,12 @@
+net\authorize\api\contract\v1\ProfileTransCaptureOnlyType:
+ properties:
+ approvalCode:
+ expose: true
+ access_type: public_method
+ serialized_name: approvalCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getApprovalCode
+ setter: setApprovalCode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransOrderType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransOrderType.yml
new file mode 100644
index 0000000..d16547d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransOrderType.yml
@@ -0,0 +1,102 @@
+net\authorize\api\contract\v1\ProfileTransOrderType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerShippingAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressId
+ setter: setCustomerShippingAddressId
+ type: string
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderExType
+ taxExempt:
+ expose: true
+ access_type: public_method
+ serialized_name: taxExempt
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxExempt
+ setter: setTaxExempt
+ type: boolean
+ recurringBilling:
+ expose: true
+ access_type: public_method
+ serialized_name: recurringBilling
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRecurringBilling
+ setter: setRecurringBilling
+ type: boolean
+ cardCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCode
+ setter: setCardCode
+ type: string
+ splitTenderId:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderId
+ setter: setSplitTenderId
+ type: string
+ processingOptions:
+ expose: true
+ access_type: public_method
+ serialized_name: processingOptions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProcessingOptions
+ setter: setProcessingOptions
+ type: net\authorize\api\contract\v1\ProcessingOptionsType
+ subsequentAuthInformation:
+ expose: true
+ access_type: public_method
+ serialized_name: subsequentAuthInformation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubsequentAuthInformation
+ setter: setSubsequentAuthInformation
+ type: net\authorize\api\contract\v1\SubsequentAuthInformationType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransPriorAuthCaptureType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransPriorAuthCaptureType.yml
new file mode 100644
index 0000000..14611ed
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransPriorAuthCaptureType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerShippingAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressId
+ setter: setCustomerShippingAddressId
+ type: string
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransRefundType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransRefundType.yml
new file mode 100644
index 0000000..a64ffc0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransRefundType.yml
@@ -0,0 +1,82 @@
+net\authorize\api\contract\v1\ProfileTransRefundType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerShippingAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressId
+ setter: setCustomerShippingAddressId
+ type: string
+ creditCardNumberMasked:
+ expose: true
+ access_type: public_method
+ serialized_name: creditCardNumberMasked
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreditCardNumberMasked
+ setter: setCreditCardNumberMasked
+ type: string
+ bankRoutingNumberMasked:
+ expose: true
+ access_type: public_method
+ serialized_name: bankRoutingNumberMasked
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankRoutingNumberMasked
+ setter: setBankRoutingNumberMasked
+ type: string
+ bankAccountNumberMasked:
+ expose: true
+ access_type: public_method
+ serialized_name: bankAccountNumberMasked
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankAccountNumberMasked
+ setter: setBankAccountNumberMasked
+ type: string
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderExType
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransVoidType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransVoidType.yml
new file mode 100644
index 0000000..b8e03e0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransVoidType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\ProfileTransVoidType:
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerShippingAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressId
+ setter: setCustomerShippingAddressId
+ type: string
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransactionType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransactionType.yml
new file mode 100644
index 0000000..5434aca
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ProfileTransactionType.yml
@@ -0,0 +1,62 @@
+net\authorize\api\contract\v1\ProfileTransactionType:
+ properties:
+ profileTransAuthCapture:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransAuthCapture
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransAuthCapture
+ setter: setProfileTransAuthCapture
+ type: net\authorize\api\contract\v1\ProfileTransAuthCaptureType
+ profileTransAuthOnly:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransAuthOnly
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransAuthOnly
+ setter: setProfileTransAuthOnly
+ type: net\authorize\api\contract\v1\ProfileTransAuthOnlyType
+ profileTransPriorAuthCapture:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransPriorAuthCapture
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransPriorAuthCapture
+ setter: setProfileTransPriorAuthCapture
+ type: net\authorize\api\contract\v1\ProfileTransPriorAuthCaptureType
+ profileTransCaptureOnly:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransCaptureOnly
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransCaptureOnly
+ setter: setProfileTransCaptureOnly
+ type: net\authorize\api\contract\v1\ProfileTransCaptureOnlyType
+ profileTransRefund:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransRefund
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransRefund
+ setter: setProfileTransRefund
+ type: net\authorize\api\contract\v1\ProfileTransRefundType
+ profileTransVoid:
+ expose: true
+ access_type: public_method
+ serialized_name: profileTransVoid
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfileTransVoid
+ setter: setProfileTransVoid
+ type: net\authorize\api\contract\v1\ProfileTransVoidType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ReturnedItemType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ReturnedItemType.yml
new file mode 100644
index 0000000..8f965e6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ReturnedItemType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\ReturnedItemType:
+ properties:
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: string
+ dateUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: dateUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDateUTC
+ setter: setDateUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ dateLocal:
+ expose: true
+ access_type: public_method
+ serialized_name: dateLocal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDateLocal
+ setter: setDateLocal
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ code:
+ expose: true
+ access_type: public_method
+ serialized_name: code
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCode
+ setter: setCode
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerErrorType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerErrorType.yml
new file mode 100644
index 0000000..6b90b2c
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerErrorType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\SecurePaymentContainerErrorType:
+ properties:
+ code:
+ expose: true
+ access_type: public_method
+ serialized_name: code
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCode
+ setter: setCode
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerRequest.yml
new file mode 100644
index 0000000..c8ddb6f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\SecurePaymentContainerRequest:
+ xml_root_name: securePaymentContainerRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ data:
+ expose: true
+ access_type: public_method
+ serialized_name: data
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getData
+ setter: setData
+ type: net\authorize\api\contract\v1\WebCheckOutDataType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerResponse.yml
new file mode 100644
index 0000000..d3f4491
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SecurePaymentContainerResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\SecurePaymentContainerResponse:
+ xml_root_name: securePaymentContainerResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ opaqueData:
+ expose: true
+ access_type: public_method
+ serialized_name: opaqueData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOpaqueData
+ setter: setOpaqueData
+ type: net\authorize\api\contract\v1\OpaqueDataType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptRequest.yml
new file mode 100644
index 0000000..452e4a2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\SendCustomerTransactionReceiptRequest:
+ xml_root_name: sendCustomerTransactionReceiptRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ customerEmail:
+ expose: true
+ access_type: public_method
+ serialized_name: customerEmail
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerEmail
+ setter: setCustomerEmail
+ type: string
+ emailSettings:
+ expose: true
+ access_type: public_method
+ serialized_name: emailSettings
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmailSettings
+ setter: setEmailSettings
+ type: net\authorize\api\contract\v1\EmailSettingsType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptResponse.yml
new file mode 100644
index 0000000..bef3275
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SendCustomerTransactionReceiptResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\SendCustomerTransactionReceiptResponse:
+ xml_root_name: sendCustomerTransactionReceiptResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SettingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SettingType.yml
new file mode 100644
index 0000000..429843f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SettingType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\SettingType:
+ properties:
+ settingName:
+ expose: true
+ access_type: public_method
+ serialized_name: settingName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettingName
+ setter: setSettingName
+ type: string
+ settingValue:
+ expose: true
+ access_type: public_method
+ serialized_name: settingValue
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettingValue
+ setter: setSettingValue
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SolutionType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SolutionType.yml
new file mode 100644
index 0000000..2882cd9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SolutionType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\SolutionType:
+ properties:
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: string
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ vendorName:
+ expose: true
+ access_type: public_method
+ serialized_name: vendorName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getVendorName
+ setter: setVendorName
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SubMerchantType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubMerchantType.yml
new file mode 100644
index 0000000..0208736
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubMerchantType.yml
@@ -0,0 +1,112 @@
+net\authorize\api\contract\v1\SubMerchantType:
+ properties:
+ identifier:
+ expose: true
+ access_type: public_method
+ serialized_name: identifier
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIdentifier
+ setter: setIdentifier
+ type: string
+ doingBusinessAs:
+ expose: true
+ access_type: public_method
+ serialized_name: doingBusinessAs
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDoingBusinessAs
+ setter: setDoingBusinessAs
+ type: string
+ paymentServiceProviderName:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentServiceProviderName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentServiceProviderName
+ setter: setPaymentServiceProviderName
+ type: string
+ paymentServiceFacilitator:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentServiceFacilitator
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentServiceFacilitator
+ setter: setPaymentServiceFacilitator
+ type: string
+ streetAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: streetAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStreetAddress
+ setter: setStreetAddress
+ type: string
+ phone:
+ expose: true
+ access_type: public_method
+ serialized_name: phone
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPhone
+ setter: setPhone
+ type: string
+ email:
+ expose: true
+ access_type: public_method
+ serialized_name: email
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmail
+ setter: setEmail
+ type: string
+ postalCode:
+ expose: true
+ access_type: public_method
+ serialized_name: postalCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPostalCode
+ setter: setPostalCode
+ type: string
+ city:
+ expose: true
+ access_type: public_method
+ serialized_name: city
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCity
+ setter: setCity
+ type: string
+ regionCode:
+ expose: true
+ access_type: public_method
+ serialized_name: regionCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRegionCode
+ setter: setRegionCode
+ type: string
+ countryCode:
+ expose: true
+ access_type: public_method
+ serialized_name: countryCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCountryCode
+ setter: setCountryCode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionCustomerProfileType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionCustomerProfileType.yml
new file mode 100644
index 0000000..4bca27b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionCustomerProfileType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\SubscriptionCustomerProfileType:
+ properties:
+ paymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfile
+ setter: setPaymentProfile
+ type: net\authorize\api\contract\v1\CustomerPaymentProfileMaskedType
+ shippingProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: shippingProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShippingProfile
+ setter: setShippingProfile
+ type: net\authorize\api\contract\v1\CustomerAddressExType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionDetailType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionDetailType.yml
new file mode 100644
index 0000000..18a3979
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionDetailType.yml
@@ -0,0 +1,162 @@
+net\authorize\api\contract\v1\SubscriptionDetailType:
+ properties:
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: integer
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ status:
+ expose: true
+ access_type: public_method
+ serialized_name: status
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getStatus
+ setter: setStatus
+ type: string
+ createTimeStampUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: createTimeStampUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCreateTimeStampUTC
+ setter: setCreateTimeStampUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ firstName:
+ expose: true
+ access_type: public_method
+ serialized_name: firstName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFirstName
+ setter: setFirstName
+ type: string
+ lastName:
+ expose: true
+ access_type: public_method
+ serialized_name: lastName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLastName
+ setter: setLastName
+ type: string
+ totalOccurrences:
+ expose: true
+ access_type: public_method
+ serialized_name: totalOccurrences
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTotalOccurrences
+ setter: setTotalOccurrences
+ type: integer
+ pastOccurrences:
+ expose: true
+ access_type: public_method
+ serialized_name: pastOccurrences
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPastOccurrences
+ setter: setPastOccurrences
+ type: integer
+ paymentMethod:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentMethod
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentMethod
+ setter: setPaymentMethod
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ invoice:
+ expose: true
+ access_type: public_method
+ serialized_name: invoice
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getInvoice
+ setter: setInvoice
+ type: string
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ currencyCode:
+ expose: true
+ access_type: public_method
+ serialized_name: currencyCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCurrencyCode
+ setter: setCurrencyCode
+ type: string
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: integer
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: integer
+ customerShippingProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingProfileId
+ setter: setCustomerShippingProfileId
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionPaymentType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionPaymentType.yml
new file mode 100644
index 0000000..c19bb28
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubscriptionPaymentType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\SubscriptionPaymentType:
+ properties:
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: integer
+ payNum:
+ expose: true
+ access_type: public_method
+ serialized_name: payNum
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayNum
+ setter: setPayNum
+ type: integer
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/SubsequentAuthInformationType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubsequentAuthInformationType.yml
new file mode 100644
index 0000000..3bdd3c2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/SubsequentAuthInformationType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\SubsequentAuthInformationType:
+ properties:
+ originalNetworkTransId:
+ expose: true
+ access_type: public_method
+ serialized_name: originalNetworkTransId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOriginalNetworkTransId
+ setter: setOriginalNetworkTransId
+ type: string
+ reason:
+ expose: true
+ access_type: public_method
+ serialized_name: reason
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReason
+ setter: setReason
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TokenMaskedType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TokenMaskedType.yml
new file mode 100644
index 0000000..2d321a6
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TokenMaskedType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\TokenMaskedType:
+ properties:
+ tokenSource:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenSource
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenSource
+ setter: setTokenSource
+ type: string
+ tokenNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenNumber
+ setter: setTokenNumber
+ type: string
+ expirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: expirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getExpirationDate
+ setter: setExpirationDate
+ type: string
+ tokenRequestorId:
+ expose: true
+ access_type: public_method
+ serialized_name: tokenRequestorId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTokenRequestorId
+ setter: setTokenRequestorId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransRetailInfoType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransRetailInfoType.yml
new file mode 100644
index 0000000..517cc1b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransRetailInfoType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\TransRetailInfoType:
+ properties:
+ marketType:
+ expose: true
+ access_type: public_method
+ serialized_name: marketType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMarketType
+ setter: setMarketType
+ type: string
+ deviceType:
+ expose: true
+ access_type: public_method
+ serialized_name: deviceType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDeviceType
+ setter: setDeviceType
+ type: string
+ customerSignature:
+ expose: true
+ access_type: public_method
+ serialized_name: customerSignature
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerSignature
+ setter: setCustomerSignature
+ type: string
+ terminalNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: terminalNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTerminalNumber
+ setter: setTerminalNumber
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.TagAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.TagAType.yml
new file mode 100644
index 0000000..1cc88f4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.TagAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType\TagAType:
+ properties:
+ tagId:
+ expose: true
+ access_type: public_method
+ serialized_name: tagId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTagId
+ setter: setTagId
+ type: string
+ data:
+ expose: true
+ access_type: public_method
+ serialized_name: data
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getData
+ setter: setData
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.yml
new file mode 100644
index 0000000..ea6a559
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.EmvDetailsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionDetailsType\EmvDetailsAType:
+ properties:
+ tag:
+ expose: true
+ access_type: public_method
+ serialized_name: tag
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTag
+ setter: setTag
+ xml_list:
+ inline: true
+ entry_name: tag
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.yml
new file mode 100644
index 0000000..8edb06a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionDetailsType.yml
@@ -0,0 +1,502 @@
+net\authorize\api\contract\v1\TransactionDetailsType:
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ refTransId:
+ expose: true
+ access_type: public_method
+ serialized_name: refTransId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefTransId
+ setter: setRefTransId
+ type: string
+ splitTenderId:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderId
+ setter: setSplitTenderId
+ type: string
+ submitTimeUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: submitTimeUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubmitTimeUTC
+ setter: setSubmitTimeUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ submitTimeLocal:
+ expose: true
+ access_type: public_method
+ serialized_name: submitTimeLocal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubmitTimeLocal
+ setter: setSubmitTimeLocal
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ transactionType:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionType
+ setter: setTransactionType
+ type: string
+ transactionStatus:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionStatus
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionStatus
+ setter: setTransactionStatus
+ type: string
+ responseCode:
+ expose: true
+ access_type: public_method
+ serialized_name: responseCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseCode
+ setter: setResponseCode
+ type: integer
+ responseReasonCode:
+ expose: true
+ access_type: public_method
+ serialized_name: responseReasonCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseReasonCode
+ setter: setResponseReasonCode
+ type: integer
+ subscription:
+ expose: true
+ access_type: public_method
+ serialized_name: subscription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscription
+ setter: setSubscription
+ type: net\authorize\api\contract\v1\SubscriptionPaymentType
+ responseReasonDescription:
+ expose: true
+ access_type: public_method
+ serialized_name: responseReasonDescription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseReasonDescription
+ setter: setResponseReasonDescription
+ type: string
+ authCode:
+ expose: true
+ access_type: public_method
+ serialized_name: authCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthCode
+ setter: setAuthCode
+ type: string
+ aVSResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: AVSResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAVSResponse
+ setter: setAVSResponse
+ type: string
+ cardCodeResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCodeResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCodeResponse
+ setter: setCardCodeResponse
+ type: string
+ cAVVResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: CAVVResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCAVVResponse
+ setter: setCAVVResponse
+ type: string
+ fDSFilterAction:
+ expose: true
+ access_type: public_method
+ serialized_name: FDSFilterAction
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFDSFilterAction
+ setter: setFDSFilterAction
+ type: string
+ fDSFilters:
+ expose: true
+ access_type: public_method
+ serialized_name: FDSFilters
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFDSFilters
+ setter: setFDSFilters
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: FDSFilter
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ batch:
+ expose: true
+ access_type: public_method
+ serialized_name: batch
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBatch
+ setter: setBatch
+ type: net\authorize\api\contract\v1\BatchDetailsType
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderExType
+ requestedAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: requestedAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRequestedAmount
+ setter: setRequestedAmount
+ type: float
+ authAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: authAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthAmount
+ setter: setAuthAmount
+ type: float
+ settleAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: settleAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettleAmount
+ setter: setSettleAmount
+ type: float
+ tax:
+ expose: true
+ access_type: public_method
+ serialized_name: tax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTax
+ setter: setTax
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ shipping:
+ expose: true
+ access_type: public_method
+ serialized_name: shipping
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipping
+ setter: setShipping
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ duty:
+ expose: true
+ access_type: public_method
+ serialized_name: duty
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDuty
+ setter: setDuty
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ lineItems:
+ expose: true
+ access_type: public_method
+ serialized_name: lineItems
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLineItems
+ setter: setLineItems
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: lineItem
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ prepaidBalanceRemaining:
+ expose: true
+ access_type: public_method
+ serialized_name: prepaidBalanceRemaining
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPrepaidBalanceRemaining
+ setter: setPrepaidBalanceRemaining
+ type: float
+ taxExempt:
+ expose: true
+ access_type: public_method
+ serialized_name: taxExempt
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxExempt
+ setter: setTaxExempt
+ type: boolean
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentMaskedType
+ customer:
+ expose: true
+ access_type: public_method
+ serialized_name: customer
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomer
+ setter: setCustomer
+ type: net\authorize\api\contract\v1\CustomerDataType
+ billTo:
+ expose: true
+ access_type: public_method
+ serialized_name: billTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillTo
+ setter: setBillTo
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ shipTo:
+ expose: true
+ access_type: public_method
+ serialized_name: shipTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipTo
+ setter: setShipTo
+ type: net\authorize\api\contract\v1\NameAndAddressType
+ recurringBilling:
+ expose: true
+ access_type: public_method
+ serialized_name: recurringBilling
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRecurringBilling
+ setter: setRecurringBilling
+ type: boolean
+ customerIP:
+ expose: true
+ access_type: public_method
+ serialized_name: customerIP
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerIP
+ setter: setCustomerIP
+ type: string
+ product:
+ expose: true
+ access_type: public_method
+ serialized_name: product
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProduct
+ setter: setProduct
+ type: string
+ entryMode:
+ expose: true
+ access_type: public_method
+ serialized_name: entryMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEntryMode
+ setter: setEntryMode
+ type: string
+ marketType:
+ expose: true
+ access_type: public_method
+ serialized_name: marketType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMarketType
+ setter: setMarketType
+ type: string
+ mobileDeviceId:
+ expose: true
+ access_type: public_method
+ serialized_name: mobileDeviceId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMobileDeviceId
+ setter: setMobileDeviceId
+ type: string
+ customerSignature:
+ expose: true
+ access_type: public_method
+ serialized_name: customerSignature
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerSignature
+ setter: setCustomerSignature
+ type: string
+ returnedItems:
+ expose: true
+ access_type: public_method
+ serialized_name: returnedItems
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getReturnedItems
+ setter: setReturnedItems
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: returnedItem
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ solution:
+ expose: true
+ access_type: public_method
+ serialized_name: solution
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSolution
+ setter: setSolution
+ type: net\authorize\api\contract\v1\SolutionType
+ emvDetails:
+ expose: true
+ access_type: public_method
+ serialized_name: emvDetails
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmvDetails
+ setter: setEmvDetails
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: tag
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
+ surcharge:
+ expose: true
+ access_type: public_method
+ serialized_name: surcharge
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSurcharge
+ setter: setSurcharge
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ employeeId:
+ expose: true
+ access_type: public_method
+ serialized_name: employeeId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmployeeId
+ setter: setEmployeeId
+ type: string
+ tip:
+ expose: true
+ access_type: public_method
+ serialized_name: tip
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTip
+ setter: setTip
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ otherTax:
+ expose: true
+ access_type: public_method
+ serialized_name: otherTax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOtherTax
+ setter: setOtherTax
+ type: net\authorize\api\contract\v1\OtherTaxType
+ shipFrom:
+ expose: true
+ access_type: public_method
+ serialized_name: shipFrom
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipFrom
+ setter: setShipFrom
+ type: net\authorize\api\contract\v1\NameAndAddressType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionListSortingType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionListSortingType.yml
new file mode 100644
index 0000000..c1a10ab
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionListSortingType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\TransactionListSortingType:
+ properties:
+ orderBy:
+ expose: true
+ access_type: public_method
+ serialized_name: orderBy
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderBy
+ setter: setOrderBy
+ type: string
+ orderDescending:
+ expose: true
+ access_type: public_method
+ serialized_name: orderDescending
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrderDescending
+ setter: setOrderDescending
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.UserFieldsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.UserFieldsAType.yml
new file mode 100644
index 0000000..4b36636
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.UserFieldsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionRequestType\UserFieldsAType:
+ properties:
+ userField:
+ expose: true
+ access_type: public_method
+ serialized_name: userField
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUserField
+ setter: setUserField
+ xml_list:
+ inline: true
+ entry_name: userField
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.yml
new file mode 100644
index 0000000..d2eb7f5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionRequestType.yml
@@ -0,0 +1,367 @@
+net\authorize\api\contract\v1\TransactionRequestType:
+ properties:
+ transactionType:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionType
+ setter: setTransactionType
+ type: string
+ amount:
+ expose: true
+ access_type: public_method
+ serialized_name: amount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAmount
+ setter: setAmount
+ type: float
+ currencyCode:
+ expose: true
+ access_type: public_method
+ serialized_name: currencyCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCurrencyCode
+ setter: setCurrencyCode
+ type: string
+ payment:
+ expose: true
+ access_type: public_method
+ serialized_name: payment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayment
+ setter: setPayment
+ type: net\authorize\api\contract\v1\PaymentType
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfilePaymentType
+ solution:
+ expose: true
+ access_type: public_method
+ serialized_name: solution
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSolution
+ setter: setSolution
+ type: net\authorize\api\contract\v1\SolutionType
+ callId:
+ expose: true
+ access_type: public_method
+ serialized_name: callId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCallId
+ setter: setCallId
+ type: string
+ terminalNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: terminalNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTerminalNumber
+ setter: setTerminalNumber
+ type: string
+ authCode:
+ expose: true
+ access_type: public_method
+ serialized_name: authCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthCode
+ setter: setAuthCode
+ type: string
+ refTransId:
+ expose: true
+ access_type: public_method
+ serialized_name: refTransId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefTransId
+ setter: setRefTransId
+ type: string
+ splitTenderId:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderId
+ setter: setSplitTenderId
+ type: string
+ order:
+ expose: true
+ access_type: public_method
+ serialized_name: order
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOrder
+ setter: setOrder
+ type: net\authorize\api\contract\v1\OrderType
+ lineItems:
+ expose: true
+ access_type: public_method
+ serialized_name: lineItems
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLineItems
+ setter: setLineItems
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: lineItem
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ tax:
+ expose: true
+ access_type: public_method
+ serialized_name: tax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTax
+ setter: setTax
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ duty:
+ expose: true
+ access_type: public_method
+ serialized_name: duty
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDuty
+ setter: setDuty
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ shipping:
+ expose: true
+ access_type: public_method
+ serialized_name: shipping
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipping
+ setter: setShipping
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ taxExempt:
+ expose: true
+ access_type: public_method
+ serialized_name: taxExempt
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTaxExempt
+ setter: setTaxExempt
+ type: boolean
+ poNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: poNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPoNumber
+ setter: setPoNumber
+ type: string
+ customer:
+ expose: true
+ access_type: public_method
+ serialized_name: customer
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomer
+ setter: setCustomer
+ type: net\authorize\api\contract\v1\CustomerDataType
+ billTo:
+ expose: true
+ access_type: public_method
+ serialized_name: billTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBillTo
+ setter: setBillTo
+ type: net\authorize\api\contract\v1\CustomerAddressType
+ shipTo:
+ expose: true
+ access_type: public_method
+ serialized_name: shipTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipTo
+ setter: setShipTo
+ type: net\authorize\api\contract\v1\NameAndAddressType
+ customerIP:
+ expose: true
+ access_type: public_method
+ serialized_name: customerIP
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerIP
+ setter: setCustomerIP
+ type: string
+ cardholderAuthentication:
+ expose: true
+ access_type: public_method
+ serialized_name: cardholderAuthentication
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardholderAuthentication
+ setter: setCardholderAuthentication
+ type: net\authorize\api\contract\v1\CcAuthenticationType
+ retail:
+ expose: true
+ access_type: public_method
+ serialized_name: retail
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRetail
+ setter: setRetail
+ type: net\authorize\api\contract\v1\TransRetailInfoType
+ employeeId:
+ expose: true
+ access_type: public_method
+ serialized_name: employeeId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmployeeId
+ setter: setEmployeeId
+ type: string
+ transactionSettings:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionSettings
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionSettings
+ setter: setTransactionSettings
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: setting
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ userFields:
+ expose: true
+ access_type: public_method
+ serialized_name: userFields
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUserFields
+ setter: setUserFields
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: userField
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ surcharge:
+ expose: true
+ access_type: public_method
+ serialized_name: surcharge
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSurcharge
+ setter: setSurcharge
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ merchantDescriptor:
+ expose: true
+ access_type: public_method
+ serialized_name: merchantDescriptor
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMerchantDescriptor
+ setter: setMerchantDescriptor
+ type: string
+ subMerchant:
+ expose: true
+ access_type: public_method
+ serialized_name: subMerchant
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubMerchant
+ setter: setSubMerchant
+ type: net\authorize\api\contract\v1\SubMerchantType
+ tip:
+ expose: true
+ access_type: public_method
+ serialized_name: tip
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTip
+ setter: setTip
+ type: net\authorize\api\contract\v1\ExtendedAmountType
+ processingOptions:
+ expose: true
+ access_type: public_method
+ serialized_name: processingOptions
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProcessingOptions
+ setter: setProcessingOptions
+ type: net\authorize\api\contract\v1\ProcessingOptionsType
+ subsequentAuthInformation:
+ expose: true
+ access_type: public_method
+ serialized_name: subsequentAuthInformation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubsequentAuthInformation
+ setter: setSubsequentAuthInformation
+ type: net\authorize\api\contract\v1\SubsequentAuthInformationType
+ otherTax:
+ expose: true
+ access_type: public_method
+ serialized_name: otherTax
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getOtherTax
+ setter: setOtherTax
+ type: net\authorize\api\contract\v1\OtherTaxType
+ shipFrom:
+ expose: true
+ access_type: public_method
+ serialized_name: shipFrom
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipFrom
+ setter: setShipFrom
+ type: net\authorize\api\contract\v1\NameAndAddressType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.TagsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.TagsAType.yml
new file mode 100644
index 0000000..7278300
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.TagsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType\TagsAType:
+ properties:
+ tag:
+ expose: true
+ access_type: public_method
+ serialized_name: tag
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTag
+ setter: setTag
+ xml_list:
+ inline: true
+ entry_name: tag
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.yml
new file mode 100644
index 0000000..c594e42
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.EmvResponseAType.yml
@@ -0,0 +1,27 @@
+net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType:
+ properties:
+ tlvData:
+ expose: true
+ access_type: public_method
+ serialized_name: tlvData
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTlvData
+ setter: setTlvData
+ type: string
+ tags:
+ expose: true
+ access_type: public_method
+ serialized_name: tags
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTags
+ setter: setTags
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: tag
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.ErrorAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.ErrorAType.yml
new file mode 100644
index 0000000..23fa3e3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.ErrorAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType\ErrorAType:
+ properties:
+ errorCode:
+ expose: true
+ access_type: public_method
+ serialized_name: errorCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getErrorCode
+ setter: setErrorCode
+ type: string
+ errorText:
+ expose: true
+ access_type: public_method
+ serialized_name: errorText
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getErrorText
+ setter: setErrorText
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.yml
new file mode 100644
index 0000000..ac43b53
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.ErrorsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionResponseType\ErrorsAType:
+ properties:
+ error:
+ expose: true
+ access_type: public_method
+ serialized_name: error
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getError
+ setter: setError
+ xml_list:
+ inline: true
+ entry_name: error
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.MessageAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.MessageAType.yml
new file mode 100644
index 0000000..f75af70
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.MessageAType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\TransactionResponseType\MessagesAType\MessageAType:
+ properties:
+ code:
+ expose: true
+ access_type: public_method
+ serialized_name: code
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCode
+ setter: setCode
+ type: string
+ description:
+ expose: true
+ access_type: public_method
+ serialized_name: description
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDescription
+ setter: setDescription
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.yml
new file mode 100644
index 0000000..63cba54
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.MessagesAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionResponseType\MessagesAType:
+ properties:
+ message:
+ expose: true
+ access_type: public_method
+ serialized_name: message
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMessage
+ setter: setMessage
+ xml_list:
+ inline: true
+ entry_name: message
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.PrePaidCardAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.PrePaidCardAType.yml
new file mode 100644
index 0000000..57227f4
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.PrePaidCardAType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType:
+ properties:
+ requestedAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: requestedAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRequestedAmount
+ setter: setRequestedAmount
+ type: string
+ approvedAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: approvedAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getApprovedAmount
+ setter: setApprovedAmount
+ type: string
+ balanceOnCard:
+ expose: true
+ access_type: public_method
+ serialized_name: balanceOnCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBalanceOnCard
+ setter: setBalanceOnCard
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SecureAcceptanceAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SecureAcceptanceAType.yml
new file mode 100644
index 0000000..8aa1d05
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SecureAcceptanceAType.yml
@@ -0,0 +1,32 @@
+net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType:
+ properties:
+ secureAcceptanceUrl:
+ expose: true
+ access_type: public_method
+ serialized_name: SecureAcceptanceUrl
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSecureAcceptanceUrl
+ setter: setSecureAcceptanceUrl
+ type: string
+ payerID:
+ expose: true
+ access_type: public_method
+ serialized_name: PayerID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayerID
+ setter: setPayerID
+ type: string
+ payerEmail:
+ expose: true
+ access_type: public_method
+ serialized_name: PayerEmail
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPayerEmail
+ setter: setPayerEmail
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.SplitTenderPaymentAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.SplitTenderPaymentAType.yml
new file mode 100644
index 0000000..9c50aed
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.SplitTenderPaymentAType.yml
@@ -0,0 +1,92 @@
+net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType\SplitTenderPaymentAType:
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ responseCode:
+ expose: true
+ access_type: public_method
+ serialized_name: responseCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseCode
+ setter: setResponseCode
+ type: string
+ responseToCustomer:
+ expose: true
+ access_type: public_method
+ serialized_name: responseToCustomer
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseToCustomer
+ setter: setResponseToCustomer
+ type: string
+ authCode:
+ expose: true
+ access_type: public_method
+ serialized_name: authCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthCode
+ setter: setAuthCode
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ requestedAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: requestedAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRequestedAmount
+ setter: setRequestedAmount
+ type: string
+ approvedAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: approvedAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getApprovedAmount
+ setter: setApprovedAmount
+ type: string
+ balanceOnCard:
+ expose: true
+ access_type: public_method
+ serialized_name: balanceOnCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBalanceOnCard
+ setter: setBalanceOnCard
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.yml
new file mode 100644
index 0000000..09d69c3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.SplitTenderPaymentsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionResponseType\SplitTenderPaymentsAType:
+ properties:
+ splitTenderPayment:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderPayment
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderPayment
+ setter: setSplitTenderPayment
+ xml_list:
+ inline: true
+ entry_name: splitTenderPayment
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.UserFieldsAType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.UserFieldsAType.yml
new file mode 100644
index 0000000..6254b62
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.UserFieldsAType.yml
@@ -0,0 +1,16 @@
+net\authorize\api\contract\v1\TransactionResponseType\UserFieldsAType:
+ properties:
+ userField:
+ expose: true
+ access_type: public_method
+ serialized_name: userField
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUserField
+ setter: setUserField
+ xml_list:
+ inline: true
+ entry_name: userField
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ type: array
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.yml
new file mode 100644
index 0000000..b33516d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionResponseType.yml
@@ -0,0 +1,272 @@
+net\authorize\api\contract\v1\TransactionResponseType:
+ properties:
+ responseCode:
+ expose: true
+ access_type: public_method
+ serialized_name: responseCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getResponseCode
+ setter: setResponseCode
+ type: string
+ rawResponseCode:
+ expose: true
+ access_type: public_method
+ serialized_name: rawResponseCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRawResponseCode
+ setter: setRawResponseCode
+ type: string
+ authCode:
+ expose: true
+ access_type: public_method
+ serialized_name: authCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAuthCode
+ setter: setAuthCode
+ type: string
+ avsResultCode:
+ expose: true
+ access_type: public_method
+ serialized_name: avsResultCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAvsResultCode
+ setter: setAvsResultCode
+ type: string
+ cvvResultCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cvvResultCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCvvResultCode
+ setter: setCvvResultCode
+ type: string
+ cavvResultCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cavvResultCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCavvResultCode
+ setter: setCavvResultCode
+ type: string
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ refTransID:
+ expose: true
+ access_type: public_method
+ serialized_name: refTransID
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getRefTransID
+ setter: setRefTransID
+ type: string
+ transHash:
+ expose: true
+ access_type: public_method
+ serialized_name: transHash
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransHash
+ setter: setTransHash
+ type: string
+ testRequest:
+ expose: true
+ access_type: public_method
+ serialized_name: testRequest
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTestRequest
+ setter: setTestRequest
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ entryMode:
+ expose: true
+ access_type: public_method
+ serialized_name: entryMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEntryMode
+ setter: setEntryMode
+ type: string
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ splitTenderId:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderId
+ setter: setSplitTenderId
+ type: string
+ prePaidCard:
+ expose: true
+ access_type: public_method
+ serialized_name: prePaidCard
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPrePaidCard
+ setter: setPrePaidCard
+ type: net\authorize\api\contract\v1\TransactionResponseType\PrePaidCardAType
+ messages:
+ expose: true
+ access_type: public_method
+ serialized_name: messages
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMessages
+ setter: setMessages
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: message
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ errors:
+ expose: true
+ access_type: public_method
+ serialized_name: errors
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getErrors
+ setter: setErrors
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: error
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ splitTenderPayments:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderPayments
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderPayments
+ setter: setSplitTenderPayments
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: splitTenderPayment
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ userFields:
+ expose: true
+ access_type: public_method
+ serialized_name: userFields
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getUserFields
+ setter: setUserFields
+ type: array
+ xml_list:
+ inline: false
+ skip_when_empty: true
+ entry_name: userField
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ shipTo:
+ expose: true
+ access_type: public_method
+ serialized_name: shipTo
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getShipTo
+ setter: setShipTo
+ type: net\authorize\api\contract\v1\NameAndAddressType
+ secureAcceptance:
+ expose: true
+ access_type: public_method
+ serialized_name: secureAcceptance
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSecureAcceptance
+ setter: setSecureAcceptance
+ type: net\authorize\api\contract\v1\TransactionResponseType\SecureAcceptanceAType
+ emvResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: emvResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getEmvResponse
+ setter: setEmvResponse
+ type: net\authorize\api\contract\v1\TransactionResponseType\EmvResponseAType
+ transHashSha2:
+ expose: true
+ access_type: public_method
+ serialized_name: transHashSha2
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransHashSha2
+ setter: setTransHashSha2
+ type: string
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
+ networkTransId:
+ expose: true
+ access_type: public_method
+ serialized_name: networkTransId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getNetworkTransId
+ setter: setNetworkTransId
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionSummaryType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionSummaryType.yml
new file mode 100644
index 0000000..e3199e7
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/TransactionSummaryType.yml
@@ -0,0 +1,172 @@
+net\authorize\api\contract\v1\TransactionSummaryType:
+ properties:
+ transId:
+ expose: true
+ access_type: public_method
+ serialized_name: transId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransId
+ setter: setTransId
+ type: string
+ submitTimeUTC:
+ expose: true
+ access_type: public_method
+ serialized_name: submitTimeUTC
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubmitTimeUTC
+ setter: setSubmitTimeUTC
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ submitTimeLocal:
+ expose: true
+ access_type: public_method
+ serialized_name: submitTimeLocal
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubmitTimeLocal
+ setter: setSubmitTimeLocal
+ type: GoetasWebservices\Xsd\XsdToPhp\XMLSchema\DateTime
+ transactionStatus:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionStatus
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionStatus
+ setter: setTransactionStatus
+ type: string
+ invoiceNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: invoiceNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getInvoiceNumber
+ setter: setInvoiceNumber
+ type: string
+ firstName:
+ expose: true
+ access_type: public_method
+ serialized_name: firstName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFirstName
+ setter: setFirstName
+ type: string
+ lastName:
+ expose: true
+ access_type: public_method
+ serialized_name: lastName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getLastName
+ setter: setLastName
+ type: string
+ accountType:
+ expose: true
+ access_type: public_method
+ serialized_name: accountType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountType
+ setter: setAccountType
+ type: string
+ accountNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: accountNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAccountNumber
+ setter: setAccountNumber
+ type: string
+ settleAmount:
+ expose: true
+ access_type: public_method
+ serialized_name: settleAmount
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSettleAmount
+ setter: setSettleAmount
+ type: float
+ marketType:
+ expose: true
+ access_type: public_method
+ serialized_name: marketType
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMarketType
+ setter: setMarketType
+ type: string
+ product:
+ expose: true
+ access_type: public_method
+ serialized_name: product
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProduct
+ setter: setProduct
+ type: string
+ mobileDeviceId:
+ expose: true
+ access_type: public_method
+ serialized_name: mobileDeviceId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getMobileDeviceId
+ setter: setMobileDeviceId
+ type: string
+ subscription:
+ expose: true
+ access_type: public_method
+ serialized_name: subscription
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSubscription
+ setter: setSubscription
+ type: net\authorize\api\contract\v1\SubscriptionPaymentType
+ hasReturnedItems:
+ expose: true
+ access_type: public_method
+ serialized_name: hasReturnedItems
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getHasReturnedItems
+ setter: setHasReturnedItems
+ type: boolean
+ fraudInformation:
+ expose: true
+ access_type: public_method
+ serialized_name: fraudInformation
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFraudInformation
+ setter: setFraudInformation
+ type: net\authorize\api\contract\v1\FraudInformationType
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileIdType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileRequest.yml
new file mode 100644
index 0000000..61631f3
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\UpdateCustomerPaymentProfileRequest:
+ xml_root_name: updateCustomerPaymentProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ paymentProfile:
+ expose: true
+ access_type: public_method
+ serialized_name: paymentProfile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getPaymentProfile
+ setter: setPaymentProfile
+ type: net\authorize\api\contract\v1\CustomerPaymentProfileExType
+ validationMode:
+ expose: true
+ access_type: public_method
+ serialized_name: validationMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationMode
+ setter: setValidationMode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileResponse.yml
new file mode 100644
index 0000000..84a4963
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerPaymentProfileResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\UpdateCustomerPaymentProfileResponse:
+ xml_root_name: updateCustomerPaymentProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ validationDirectResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: validationDirectResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationDirectResponse
+ setter: setValidationDirectResponse
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileRequest.yml
new file mode 100644
index 0000000..2434ecf
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\UpdateCustomerProfileRequest:
+ xml_root_name: updateCustomerProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ profile:
+ expose: true
+ access_type: public_method
+ serialized_name: profile
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getProfile
+ setter: setProfile
+ type: net\authorize\api\contract\v1\CustomerProfileExType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileResponse.yml
new file mode 100644
index 0000000..f497db9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerProfileResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\UpdateCustomerProfileResponse:
+ xml_root_name: updateCustomerProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressRequest.yml
new file mode 100644
index 0000000..9eec796
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressRequest.yml
@@ -0,0 +1,34 @@
+net\authorize\api\contract\v1\UpdateCustomerShippingAddressRequest:
+ xml_root_name: updateCustomerShippingAddressRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ address:
+ expose: true
+ access_type: public_method
+ serialized_name: address
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getAddress
+ setter: setAddress
+ type: net\authorize\api\contract\v1\CustomerAddressExType
+ defaultShippingAddress:
+ expose: true
+ access_type: public_method
+ serialized_name: defaultShippingAddress
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDefaultShippingAddress
+ setter: setDefaultShippingAddress
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressResponse.yml
new file mode 100644
index 0000000..2a736e5
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateCustomerShippingAddressResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\UpdateCustomerShippingAddressResponse:
+ xml_root_name: updateCustomerShippingAddressResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionRequest.yml
new file mode 100644
index 0000000..8cf2e3b
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\UpdateHeldTransactionRequest:
+ xml_root_name: updateHeldTransactionRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ heldTransactionRequest:
+ expose: true
+ access_type: public_method
+ serialized_name: heldTransactionRequest
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getHeldTransactionRequest
+ setter: setHeldTransactionRequest
+ type: net\authorize\api\contract\v1\HeldTransactionRequestType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionResponse.yml
new file mode 100644
index 0000000..80894eb
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateHeldTransactionResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\UpdateHeldTransactionResponse:
+ xml_root_name: updateHeldTransactionResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ transactionResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: transactionResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getTransactionResponse
+ setter: setTransactionResponse
+ type: net\authorize\api\contract\v1\TransactionResponseType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsRequest.yml
new file mode 100644
index 0000000..0ba2aa9
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsRequest.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\UpdateMerchantDetailsRequest:
+ xml_root_name: updateMerchantDetailsRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ isTestMode:
+ expose: true
+ access_type: public_method
+ serialized_name: isTestMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getIsTestMode
+ setter: setIsTestMode
+ type: boolean
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsResponse.yml
new file mode 100644
index 0000000..e80a834
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateMerchantDetailsResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\UpdateMerchantDetailsResponse:
+ xml_root_name: updateMerchantDetailsResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupRequest.yml
new file mode 100644
index 0000000..ba0f501
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupRequest.yml
@@ -0,0 +1,24 @@
+net\authorize\api\contract\v1\UpdateSplitTenderGroupRequest:
+ xml_root_name: updateSplitTenderGroupRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ splitTenderId:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderId
+ setter: setSplitTenderId
+ type: string
+ splitTenderStatus:
+ expose: true
+ access_type: public_method
+ serialized_name: splitTenderStatus
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getSplitTenderStatus
+ setter: setSplitTenderStatus
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupResponse.yml
new file mode 100644
index 0000000..c281cf2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UpdateSplitTenderGroupResponse.yml
@@ -0,0 +1,4 @@
+net\authorize\api\contract\v1\UpdateSplitTenderGroupResponse:
+ xml_root_name: updateSplitTenderGroupResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties: { }
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/UserFieldType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/UserFieldType.yml
new file mode 100644
index 0000000..5fc8301
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/UserFieldType.yml
@@ -0,0 +1,22 @@
+net\authorize\api\contract\v1\UserFieldType:
+ properties:
+ name:
+ expose: true
+ access_type: public_method
+ serialized_name: name
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getName
+ setter: setName
+ type: string
+ value:
+ expose: true
+ access_type: public_method
+ serialized_name: value
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValue
+ setter: setValue
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileRequest.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileRequest.yml
new file mode 100644
index 0000000..e9fc24a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileRequest.yml
@@ -0,0 +1,54 @@
+net\authorize\api\contract\v1\ValidateCustomerPaymentProfileRequest:
+ xml_root_name: validateCustomerPaymentProfileRequest
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ customerProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerProfileId
+ setter: setCustomerProfileId
+ type: string
+ customerPaymentProfileId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerPaymentProfileId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerPaymentProfileId
+ setter: setCustomerPaymentProfileId
+ type: string
+ customerShippingAddressId:
+ expose: true
+ access_type: public_method
+ serialized_name: customerShippingAddressId
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCustomerShippingAddressId
+ setter: setCustomerShippingAddressId
+ type: string
+ cardCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCode
+ setter: setCardCode
+ type: string
+ validationMode:
+ expose: true
+ access_type: public_method
+ serialized_name: validationMode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getValidationMode
+ setter: setValidationMode
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileResponse.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileResponse.yml
new file mode 100644
index 0000000..a2e91f8
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/ValidateCustomerPaymentProfileResponse.yml
@@ -0,0 +1,14 @@
+net\authorize\api\contract\v1\ValidateCustomerPaymentProfileResponse:
+ xml_root_name: validateCustomerPaymentProfileResponse
+ xml_root_namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ properties:
+ directResponse:
+ expose: true
+ access_type: public_method
+ serialized_name: directResponse
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getDirectResponse
+ setter: setDirectResponse
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataType.yml
new file mode 100644
index 0000000..ac87c18
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataType.yml
@@ -0,0 +1,42 @@
+net\authorize\api\contract\v1\WebCheckOutDataType:
+ properties:
+ type:
+ expose: true
+ access_type: public_method
+ serialized_name: type
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getType
+ setter: setType
+ type: string
+ id:
+ expose: true
+ access_type: public_method
+ serialized_name: id
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getId
+ setter: setId
+ type: string
+ token:
+ expose: true
+ access_type: public_method
+ serialized_name: token
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getToken
+ setter: setToken
+ type: net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType
+ bankToken:
+ expose: true
+ access_type: public_method
+ serialized_name: bankToken
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getBankToken
+ setter: setBankToken
+ type: net\authorize\api\contract\v1\BankAccountType
diff --git a/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataTypeTokenType.yml b/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataTypeTokenType.yml
new file mode 100644
index 0000000..e4cea9a
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/api/yml/v1/WebCheckOutDataTypeTokenType.yml
@@ -0,0 +1,52 @@
+net\authorize\api\contract\v1\WebCheckOutDataTypeTokenType:
+ properties:
+ cardNumber:
+ expose: true
+ access_type: public_method
+ serialized_name: cardNumber
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardNumber
+ setter: setCardNumber
+ type: string
+ expirationDate:
+ expose: true
+ access_type: public_method
+ serialized_name: expirationDate
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getExpirationDate
+ setter: setExpirationDate
+ type: string
+ cardCode:
+ expose: true
+ access_type: public_method
+ serialized_name: cardCode
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getCardCode
+ setter: setCardCode
+ type: string
+ zip:
+ expose: true
+ access_type: public_method
+ serialized_name: zip
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getZip
+ setter: setZip
+ type: string
+ fullName:
+ expose: true
+ access_type: public_method
+ serialized_name: fullName
+ xml_element:
+ namespace: AnetApi/xml/v1/schema/AnetApiSchema.xsd
+ accessor:
+ getter: getFullName
+ setter: setFullName
+ type: string
diff --git a/class/payment/authorize/lib/net/authorize/util/ANetSensitiveFields.php b/class/payment/authorize/lib/net/authorize/util/ANetSensitiveFields.php
new file mode 100644
index 0000000..d6e3132
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/ANetSensitiveFields.php
@@ -0,0 +1,85 @@
+sensitiveTags;
+ self::$sensitiveStringRegexes = $sensitiveDataConfig->sensitiveStringRegexes;
+ }
+
+ catch(Exception $e){
+ echo "ERROR deserializing json from : " . $userConfigFilePath . "; Exception : " . $e->getMessage();
+ $useDefaultConfigFile = true;
+ }
+ }
+
+ if ($useDefaultConfigFile) { //default sdk config for tags
+ if(!file_exists($configFilePath)){
+ exit("ERROR: No config file: " . $configFilePath);
+ }
+
+ //read list of tags (and associated regex-patterns and replacements) from .json file
+ try{
+ $jsonFileData=file_get_contents($configFilePath);
+ $sensitiveDataConfig = json_decode($jsonFileData);
+
+ $sensitiveTags = $sensitiveDataConfig->sensitiveTags;
+ self::$sensitiveStringRegexes = $sensitiveDataConfig->sensitiveStringRegexes;
+ }
+
+ catch(Exception $e){
+ exit( "ERROR deserializing json from : " . $configFilePath . "; Exception : " . $e->getMessage());
+ }
+ }
+
+ //Check for disableMask flag in case of client json.
+ self::$applySensitiveTags = array();
+ foreach($sensitiveTags as $sensitiveTag){
+ if($sensitiveTag->disableMask){
+ //skip masking continue;
+ }
+ else{
+ array_push(self::$applySensitiveTags,$sensitiveTag);
+ }
+ }
+ }
+
+ public static function getSensitiveStringRegexes(){
+ if(NULL == self::$sensitiveStringRegexes) {
+ self::fetchFromConfigFiles();
+ }
+ return self::$sensitiveStringRegexes;
+ }
+
+ public static function getSensitiveXmlTags(){
+ if(NULL == self::$applySensitiveTags) {
+ self::fetchFromConfigFiles();
+ }
+ return self::$applySensitiveTags;
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/util/AuthorizedNetSensitiveTagsConfig.json b/class/payment/authorize/lib/net/authorize/util/AuthorizedNetSensitiveTagsConfig.json
new file mode 100644
index 0000000..502034e
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/AuthorizedNetSensitiveTagsConfig.json
@@ -0,0 +1,49 @@
+{
+ "sensitiveTags": [
+ {
+ "tagName": "cardCode",
+ "pattern": "",
+ "replacement": "",
+ "disableMask": false
+ },
+ {
+ "tagName": "cardNumber",
+ "pattern": "(\\p{N}+)(\\p{N}{4})",
+ "replacement": "xxxx-$2",
+ "disableMask": false
+ },
+ {
+ "tagName": "expirationDate",
+ "pattern": "",
+ "replacement": "",
+ "disableMask": false
+ },
+ {
+ "tagName": "accountNumber",
+ "pattern": "(\\p{N}+)(\\p{N}{4})",
+ "replacement": "xxxx-$2",
+ "disableMask": false
+ },
+ {
+ "tagName": "nameOnAccount",
+ "pattern": "",
+ "replacement": "",
+ "disableMask": false
+ },
+ {
+ "tagName": "transactionKey",
+ "pattern": "",
+ "replacement": "",
+ "disableMask": false
+ }
+ ],
+ "sensitiveStringRegexes": [
+ "4\\p{N}{3}([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
+ "4\\p{N}{3}([\\ \\-]?)(?:\\p{N}{4}\\1){2}\\p{N}(?:\\p{N}{3})?",
+ "5[1-5]\\p{N}{2}([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
+ "6(?:011|22(?:1(?=[\\ \\-]?(?:2[6-9]|[3-9]))|[2-8]|9(?=[\\ \\-]?(?:[01]|2[0-5])))|4[4-9]\\p{N}|5\\p{N}\\p{N})([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
+ "35(?:2[89]|[3-8]\\p{N})([\\ \\-]?)\\p{N}{4}\\1\\p{N}{4}\\1\\p{N}{4}",
+ "3[47]\\p{N}\\p{N}([\\ \\-]?)\\p{N}{6}\\1\\p{N}{5}"
+ ]
+}
+
diff --git a/class/payment/authorize/lib/net/authorize/util/Helpers.php b/class/payment/authorize/lib/net/authorize/util/Helpers.php
new file mode 100644
index 0000000..441826f
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/Helpers.php
@@ -0,0 +1,26 @@
+logger = LogFactory::getLog(get_class($this));
+ }
+
+ /**
+ * Set a log file.
+ *
+ * @param string $endPoint end point to hit from \net\authorize\api\constants\ANetEnvironment
+ */
+ public function setPostUrl( $endPoint = \net\authorize\api\constants\ANetEnvironment::CUSTOM)
+ {
+ $this->_Url = sprintf( "%s/xml/v1/request.api", $endPoint);
+ }
+
+ /**
+ * @return string
+ */
+ public function _getPostUrl()
+ {
+ //return (self::URL);
+ return ($this->_Url);
+ }
+
+ /**
+ * Set a log file.
+ *
+ * @param string $filepath Path to log file.
+ */
+ public function setLogFile($filepath)
+ {
+ $this->logger->setLogFile($filepath);
+ }
+
+ /**
+ * Posts the request to AuthorizeNet endpoint using Curl & returns response.
+ *
+ * @param string $xmlRequest
+ * @return string $xmlResponse The response.
+ */
+ public function _sendRequest($xmlRequest)
+ {
+ $xmlResponse = "";
+
+ $post_url = $this->_getPostUrl();
+ $curl_request = curl_init($post_url);
+ curl_setopt($curl_request, CURLOPT_POSTFIELDS, $xmlRequest);
+ curl_setopt($curl_request, CURLOPT_HEADER, 0);
+ curl_setopt($curl_request, CURLOPT_TIMEOUT, 45);
+ curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($curl_request, CURLOPT_SSL_VERIFYHOST, 2);
+
+ $this->logger->info(sprintf(" Url: %s", $post_url));
+ // Do not log requests that could contain CC info.
+ $this->logger->info(sprintf("Request to AnetApi: \n%s", $xmlRequest));
+
+ if ($this->VERIFY_PEER) {
+ curl_setopt($curl_request, CURLOPT_CAINFO, dirname(dirname(__FILE__)) . '/../../ssl/cert.pem');
+ } else {
+ $this->logger->error("Invalid SSL option for the request");
+ return false;
+ }
+
+ if (preg_match('/xml/',$post_url)) {
+ curl_setopt($curl_request, CURLOPT_HTTPHEADER, Array("Content-Type: text/json"));
+// file_put_contents($this->_log_file, "\nSending 'XML' Request type", FILE_APPEND);
+ $this->logger->info("Sending 'XML' Request type");
+ }
+
+ try
+ {
+ $this->logger->info("Sending http request via Curl");
+ $xmlResponse = curl_exec($curl_request);
+ $this->logger->info("Response from AnetApi: $xmlResponse");
+
+ } catch (\Exception $ex)
+ {
+ $errorMessage = sprintf("\n%s:Error making http request via curl: Code:'%s', Message:'%s', Trace:'%s', File:'%s':'%s'",
+ $this->now(), $ex->getCode(), $ex->getMessage(), $ex->getTraceAsString(), $ex->getFile(), $ex->getLine() );
+ $this->logger->error($errorMessage);
+ }
+ if ($this->logger && $this->logger->getLogFile()) {
+ if ($curl_error = curl_error($curl_request)) {
+ $this->logger->error("CURL ERROR: $curl_error");
+ }
+
+ }
+ curl_close($curl_request);
+
+ return $xmlResponse;
+ }
+
+ private function now()
+ {
+ return date( DATE_RFC2822);
+ }
+}
diff --git a/class/payment/authorize/lib/net/authorize/util/Log.php b/class/payment/authorize/lib/net/authorize/util/Log.php
new file mode 100644
index 0000000..b716d90
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/Log.php
@@ -0,0 +1,369 @@
+sensitiveXmlTags as $i => $sensitiveTag){
+ $tag = $sensitiveTag->tagName;
+ $inputPattern = "(.+)"; //no need to mask null data
+ $inputReplacement = "xxxx";
+
+ if(trim($sensitiveTag->pattern)) {
+ $inputPattern = $sensitiveTag->pattern;
+ }
+ $pattern = "<" . $tag . ">(?:.*)". $inputPattern ."(?:.*)<\/" . $tag . ">";
+ $pattern = $this->addDelimiterFwdSlash($pattern);
+
+ if(trim($sensitiveTag->replacement)) {
+ $inputReplacement = $sensitiveTag->replacement;
+ }
+ $replacement = "<" . $tag . ">" . $inputReplacement . "" . $tag . ">";
+
+ $patterns [$i] = $pattern;
+ $replacements[$i] = $replacement;
+ }
+ $maskedString = preg_replace($patterns, $replacements, $rawString);
+ return $maskedString;
+ }
+
+ /**
+ * Takes a string and masks credit card regex matching parts.
+ *
+ * @param string $rawString The string.
+ *
+ * @return string The string after masking credit card regex matching parts.
+ */
+ private function maskCreditCards($rawString){
+ $patterns=array();
+ $replacements=array();
+
+ foreach ($this->sensitiveStringRegexes as $i => $creditCardRegex){
+ $pattern = $creditCardRegex;
+ $pattern = $this->addDelimiterFwdSlash($pattern);
+
+ $replacement = "xxxx";
+ $patterns [$i] = $pattern;
+ $replacements[$i] = $replacement;
+ }
+ $maskedString = preg_replace($patterns, $replacements, $rawString);
+ return $maskedString;
+ }
+
+ /**
+ * Object data masking related functions START
+ */
+
+ /**
+ * private function getPropertiesInclBase($reflClass).
+ *
+ * Receives a ReflectionObject, ...
+ * iteratively fetches the properties of the object (including from the base classes up the hierarchy), ...
+ * collects them in an array of ReflectionProperty and returns the array.
+ *
+ * @param ReflectionObject $reflClass
+ *
+ * @return \ReflectionProperty[]
+ */
+ private function getPropertiesInclBase($reflClass)
+ {
+ $properties = array();
+ try {
+ do {
+ $curClassPropList = $reflClass->getProperties();
+ foreach ($curClassPropList as $p) {
+ $p->setAccessible(true);
+ }
+ $properties = array_merge($curClassPropList, $properties);
+ } while ($reflClass = $reflClass->getParentClass());
+ } catch (\ReflectionException $e) { }
+ return $properties;
+ }
+
+ /**
+ * private function checkPropertyAndMask($prop, $obj).
+ *
+ * Receives a ReflectionProperty and an object, and returns a masked object if the ReflectionProperty corresponds to a sensitive field, else returns false.
+ *
+ * @param ReflectionProperty $prop
+ * @param object $obj
+ *
+ * @return string|bool
+ */
+ private function checkPropertyAndMask($prop, $obj){
+ foreach($this->sensitiveXmlTags as $i => $sensitiveField)
+ {
+ $inputPattern = "(.+)";
+ $inputReplacement = "xxxx";
+
+ if(trim($sensitiveField->pattern)) {
+ $inputPattern = $sensitiveField->pattern;
+ }
+ $inputPattern = $this->addDelimiterFwdSlash($inputPattern);
+
+ if(trim($sensitiveField->replacement)) {
+ $inputReplacement = $sensitiveField->replacement;
+ }
+
+ if(strcmp($prop->getName(),$sensitiveField->tagName)==0)
+ {
+ $prop->setValue($obj,preg_replace($inputPattern,$inputReplacement,$prop->getValue($obj)));
+ return $prop->getValue($obj);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * called by getMasked() to mask sensitive fields of an object.
+ *
+ * @param object $obj
+ *
+ * @return object
+ */
+ private function maskSensitiveProperties ($obj)
+ {
+ // first retrieve all properties of the passed object
+ $reflectObj = new \ReflectionObject($obj);
+ $props = $this->getPropertiesInclBase($reflectObj);
+
+ // for composite property recursively execute; for scalars, do a check and mask
+ foreach($props as $i => $prop){
+ $propValue=$prop->getValue($obj);
+
+ // for object and arrays, recursively call for inner elements
+ if(is_object($propValue)){
+ $prop->setValue($obj, $this->maskSensitiveProperties($propValue));
+ }
+ else if(is_array($propValue)){
+ $newVals=array();
+ foreach($propValue as $i=>$arrEle)
+ {
+ $newVals[]=$this->maskSensitiveProperties($arrEle);
+ }
+ $prop->setValue($obj, $newVals);
+ }
+ // else check if the property represents a sensitive field. If so, mask.
+ else{
+ $res=$this->checkPropertyAndMask($prop, $obj);
+ if($res)
+ $prop->setValue($obj, $res);
+ }
+ }
+
+ return $obj;
+ }
+
+ /**
+ * Object data masking related functions END
+ */
+
+ /**
+ * private function getMasked($raw).
+ *
+ * called by log()
+ *
+ * @param mixed $raw
+ *
+ * @return string
+ */
+ private function getMasked($raw)
+ { //always returns string
+ $messageType = gettype($raw);
+ $message="";
+ if($messageType == "object"){
+ $obj = unserialize(serialize($raw)); // deep copying the object
+ $message = print_r($this->maskSensitiveProperties($obj), true); //object to string
+ }
+ else if($messageType == "array"){
+ $copyArray = unserialize(serialize($raw));
+ foreach($copyArray as $i => $element){
+ $copyArray[$i] = $this->getMasked($element);
+ }
+ $message = print_r($copyArray, true); // returns string
+ }
+ else { //$messageType == "string")
+ $primtiveTypeAsString = strval($raw);
+
+ $maskedXml = $primtiveTypeAsString;
+ if($messageType == "string") {
+ $maskedXml = $this->maskSensitiveXmlString($primtiveTypeAsString);
+ }
+ //mask credit card numbers
+ $message = $this->maskCreditCards($maskedXml);
+ }
+ return $message;
+ }
+
+ private function log($logLevelPrefix, $logMessage, $flags){
+ if (!$this->logFile) return;
+ //masking
+ $logMessage = $this->getMasked($logMessage);
+
+ //debug_backtrace
+ $fileName = 'n/a';
+ $methodName = 'n/a';
+ $lineNumber = 'n/a';
+ $debugTrace = debug_backtrace();
+ if (isset($debugTrace[1])) {
+ $fileName = $debugTrace[1]['file'] ? $debugTrace[1]['file'] : 'n/a';
+ $lineNumber = $debugTrace[1]['line'] ? $debugTrace[1]['line'] : 'n/a';
+ }
+ if (isset($debugTrace[2])) $methodName = $debugTrace[2]['function'] ? $debugTrace[2]['function'] : 'n/a';
+
+ //Add timestamp, log level, method, file, line
+ $logString = sprintf("\n %s %s : [%s] (%s : %s) - %s", \net\authorize\util\Helpers::now(), $logLevelPrefix,
+ $methodName, $fileName, $lineNumber, $logMessage);
+ file_put_contents($this->logFile, $logString, $flags);
+ }
+
+ public function debug($logMessage, $flags=FILE_APPEND)
+ {
+ if(ANET_LOG_DEBUG >= $this->logLevel){
+ $this->log(ANET_LOG_DEBUG_PREFIX, $logMessage,$flags);
+ }
+ }
+
+ public function info($logMessage, $flags=FILE_APPEND){
+ if(ANET_LOG_INFO >= $this->logLevel) {
+ $this->log(ANET_LOG_INFO_PREFIX, $logMessage,$flags);
+ }
+ }
+
+ public function warn($logMessage, $flags=FILE_APPEND){
+ if(ANET_LOG_WARN >= $this->logLevel) {
+ $this->log(ANET_LOG_WARN_PREFIX, $logMessage,$flags);
+ }
+ }
+
+ public function error($logMessage, $flags=FILE_APPEND){
+ if(ANET_LOG_ERROR >= $this->logLevel) {
+ $this->log(ANET_LOG_ERROR_PREFIX, $logMessage,$flags);
+ }
+ }
+
+ private function logFormat($logLevelPrefix, $format, $objects, $flags){
+ try {
+ foreach($objects as $i => $testObject){
+ $objects[$i] = $this->getMasked($testObject);
+ }
+ $logMessage = vsprintf($format, $objects);
+ $this->log($logLevelPrefix, $logMessage, $flags);
+ }
+ catch(\Exception $e){
+ $this->debug("Incorrect log message format: " . $e->getMessage());
+ }
+ }
+
+ public function debugFormat($format, $args=array(), $flags=FILE_APPEND)
+ {
+ if(ANET_LOG_DEBUG >= $this->logLevel){
+ $this->logFormat(ANET_LOG_DEBUG_PREFIX, $format, $args , $flags);
+ }
+ }
+
+ public function infoFormat($format, $args=array(), $flags=FILE_APPEND){
+ if(ANET_LOG_INFO >= $this->logLevel) {
+ $this->logFormat(ANET_LOG_INFO_PREFIX, $format, $args , $flags);
+ }
+ }
+
+ public function warnFormat($format, $args=array(), $flags=FILE_APPEND){
+ if(ANET_LOG_WARN >= $this->logLevel) {
+ $this->logFormat(ANET_LOG_WARN_PREFIX, $format, $args , $flags);
+ }
+ }
+
+ public function errorFormat($format, $args=array(), $flags=FILE_APPEND){
+ if(ANET_LOG_ERROR >= $this->logLevel) {
+ $this->logFormat(ANET_LOG_ERROR_PREFIX, $format, $args , $flags);
+ }
+ }
+
+ /**
+ * @param string $logLevel
+ * possible values = ANET_LOG_DEBUG, ANET_LOG_INFO, ANET_LOG_WARN, ANET_LOG_ERROR
+ */
+ public function setLogLevel($logLevel){
+ $this->logLevel = $logLevel;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLogLevel(){
+ return $this->logLevel;
+ }
+
+ /**
+ * @param string $logFile
+ */
+ public function setLogFile($logFile){
+ $this->logFile = $logFile;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLogFile(){
+ return $this->logFile;
+ }
+
+ public function __construct(){
+ $this->sensitiveXmlTags = ANetSensitiveFields::getSensitiveXmlTags();
+ $this->sensitiveStringRegexes = ANetSensitiveFields::getSensitiveStringRegexes();
+ }
+}
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/LogFactory.php b/class/payment/authorize/lib/net/authorize/util/LogFactory.php
new file mode 100644
index 0000000..e6dc331
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/LogFactory.php
@@ -0,0 +1,17 @@
+setLogFile(AUTHORIZENET_LOG_FILE);
+ }
+ }
+ return self::$logger;
+ }
+}
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/Mapper.php b/class/payment/authorize/lib/net/authorize/util/Mapper.php
new file mode 100644
index 0000000..d7c4320
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/Mapper.php
@@ -0,0 +1,122 @@
+dir);
+ // foreach ($files as $file) {
+ // // echo "filename:" . $file . "\n";
+ // // Elementing the ..
+ // if($file != "." && $file != ".." ){
+ // $value = Yaml::parseFile($this->dir.$file);
+ // //var_dump($value);
+ // //array_push($classes, $value);
+ // //var_dump($classes);
+ // //echo $value['net\authorize\api\contract\v1\ANetApiRequestType']['properties']['merchantAuthentication']['type']."\n";
+ // $key = key($value);
+ // $this->classes[$key] = $value[$key];
+ // //break;
+ // }
+ // }
+ // }
+ private function __construct() {
+ $this->classes = json_decode(file_get_contents(__DIR__ ."/classes.json"), true);
+ }
+
+ public static function Instance()
+ {
+ static $inst = null;
+ if ($inst === null) {
+ $inst = new Mapper();
+ }
+ return $inst;
+ }
+
+ // public function getClass(string $classname, string $property){
+
+ // if(isset($this->classes[$classname]['properties'][$property]['type'])){
+ // return $this->classes[$classname]['properties'][$property]['type'];
+ // }
+ // else if ($property == "refId" || $property == "sessionToken" ){
+ // return 'string';
+ // }
+ // else if ($property == "messages" ){
+ // return 'net\authorize\api\contract\v1\MessagesType';
+ // }
+ // else{
+ // echo "Error finding in YAML - ".$classname." ".$property."\n";
+ // return 'string';
+ // }
+ // // return $this->classes[$classname]['properties'][$property]['type'];
+ // }
+
+ public function getClass($class, $property){
+ // make the first letter of property as lowercase as all properties are lowercase
+ $property = lcfirst($property);
+
+ //echo "getClass calling : class - " . $class . " property - " . $property . "\n";
+ $obj = new MapperObj;
+
+ if(isset($this->classes[$class]['properties'][$property]['type'])){
+ $className = $this->classes[$class]['properties'][$property]['type'];
+ if (stripos($className, "DateTime<'Y-m-d'>") !== false) {
+ $className = 'Date';
+ }
+ else if (stripos($className, "DateTime") !== false) {
+ $className = 'DateTime';
+ }
+ if(substr( $className, 0, 5 ) === "array") {
+ $className = ltrim($className, 'array<');
+ $className = rtrim($className, '>');
+ $obj->isArray = true;
+
+ if(isset($this->classes[$class]['properties'][$property]['xml_list']['entry_name'])){
+ // echo $file."\t\t\t\t\t\t\t\t\t";
+ // echo $propKey." :: ".$prop['serialized_name']." - ".$prop['xml_list']['entry_name']." - ".$prop['xml_list']['inline'];
+ // echo "\n";
+ $obj->isInlineArray = $this->classes[$class]['properties'][$property]['xml_list']['inline'];
+ $obj->arrayEntryname = $this->classes[$class]['properties'][$property]['xml_list']['entry_name'];
+ }
+ }
+ $obj->className = $className;
+ $obj->isCustomDefined = stripos($className, '\\') !== false;
+
+ return $obj;
+ }
+ else if(get_parent_class($class)){
+ //echo "Checking parent class in YAML - ".get_parent_class($class)." -".$class." - ".$property."\n";
+ return $this->getClass(get_parent_class($class), $property);
+ }
+// else if ($property == "refId" || $property == "sessionToken" ){
+// return 'string';
+// }
+// else if ($property == "messages" ){
+//
+// $className = 'net\authorize\api\contract\v1\MessagesType';
+// $obj->className = $className;
+// $obj->isCustomDefined = stripos($className, '\\') !== false;
+//
+// return $obj;
+// }
+ else{
+ //echo "Error finding in YAML - ".$class." - ".$property."\n";
+ $obj = NULL;
+ return $obj;
+ }
+ // return $this->classes[$classname]['properties'][$property]['type'];
+ }
+
+ public function getXmlName($class){
+ if(isset($this->classes[$class]['xml_root_name'])){
+ return $this->classes[$class]['xml_root_name'];
+ }
+ }
+}
+//echo $classes['net\authorize\api\contract\v1\ANetApiRequestType']['properties']['merchantAuthentication']['type']."\n";
+
+//$value = Yaml::parseFile('/*.yaml');
+
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/MapperGen.php b/class/payment/authorize/lib/net/authorize/util/MapperGen.php
new file mode 100644
index 0000000..62841db
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/MapperGen.php
@@ -0,0 +1,73 @@
+ {"a":1,"b":2,"c":3,"d":4,"e":5}
+ $classes2 = json_decode(file_get_contents(__DIR__ ."/classes.json"), true);
+ //Validate the JSON
+ if($classes === $classes2) # => true
+ {
+ echo "JSON Created out of XML Successfully! - ".__DIR__ ."/classes.json\n";
+ }
+
+// class MapperGen{
+// private $classes = array();
+// private $dir = __DIR__ . "/../../yml/v1/";
+
+// private function __construct() {
+// $files = scandir($this->dir);
+// foreach ($files as $file) {
+// // echo "filename:" . $file . "\n";
+// // Elementing the ..
+// if($file != "." && $file != ".." ){
+// $value = Yaml::parseFile($this->dir.$file);
+// //var_dump($value);
+// //array_push($classes, $value);
+// //var_dump($classes);
+// //echo $value['net\authorize\api\contract\v1\ANetApiRequestType']['properties']['merchantAuthentication']['type']."\n";
+// $key = key($value);
+// $this->classes[$key] = $value[$key];
+// //break;
+// }
+// }
+// }
+
+// public static function Instance()
+// {
+// static $inst = null;
+// if ($inst === null) {
+// $inst = new Mapper();
+// }
+// return $inst;
+// }
+
+// public function generateFile(){
+// file_put_contents("array.json",json_encode($classes));
+// # array.json => {"a":1,"b":2,"c":3,"d":4,"e":5}
+// $classes2 = json_decode(file_get_contents('array.json'), true);
+// if($classes === $classes2) # => true
+// {
+// echo "All Good!";
+// }
+// }
+
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/MapperObj.php b/class/payment/authorize/lib/net/authorize/util/MapperObj.php
new file mode 100644
index 0000000..d4cca3d
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/MapperObj.php
@@ -0,0 +1,20 @@
+
diff --git a/class/payment/authorize/lib/net/authorize/util/SensitiveDataConfigType.php b/class/payment/authorize/lib/net/authorize/util/SensitiveDataConfigType.php
new file mode 100644
index 0000000..6e1df49
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/SensitiveDataConfigType.php
@@ -0,0 +1,20 @@
+")
+ * @SerializedName("sensitiveTags")
+ */
+ public $sensitiveTags;
+
+ /**
+ * @Type("array")
+ * @SerializedName("sensitiveStringRegexes")
+ */
+ public $sensitiveStringRegexes;
+}
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/SensitiveTag.php b/class/payment/authorize/lib/net/authorize/util/SensitiveTag.php
new file mode 100644
index 0000000..0d2d5c2
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/SensitiveTag.php
@@ -0,0 +1,43 @@
+"Loading-SerializedName-Class"));
+//to do: use Doctrine\Common\Annotations\AnnotationRegistry::registerAutoloadNamespace to auto load classes
+
+class SensitiveTag
+{
+ /**
+ * @Type("string")
+ * @SerializedName("tagName")
+ */
+ public $tagName;
+
+ /**
+ * @Type("string")
+ * @SerializedName("pattern")
+ */
+ public $pattern;
+
+ /**
+ * @Type("string")
+ * @SerializedName("replacement")
+ */
+ public $replacement;
+
+ /**
+ * @Type("boolean")
+ * @SerializedName("disableMask")
+ */
+ public $disableMask;
+
+ public function __construct($tagName, $pattern="", $replace="",$disableMask = false){
+ $this->tagName = $tagName;
+ $this->pattern=$pattern;
+ $this->replacement = $replace;
+ $this->disableMask = $disableMask;
+ }
+}
+?>
diff --git a/class/payment/authorize/lib/net/authorize/util/classes.json b/class/payment/authorize/lib/net/authorize/util/classes.json
new file mode 100644
index 0000000..addf3e0
--- /dev/null
+++ b/class/payment/authorize/lib/net/authorize/util/classes.json
@@ -0,0 +1 @@
+{"net\\authorize\\api\\contract\\v1\\ANetApiRequestType":{"properties":{"merchantAuthentication":{"expose":true,"access_type":"public_method","serialized_name":"merchantAuthentication","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantAuthentication","setter":"setMerchantAuthentication"},"type":"net\\authorize\\api\\contract\\v1\\MerchantAuthenticationType"},"clientId":{"expose":true,"access_type":"public_method","serialized_name":"clientId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getClientId","setter":"setClientId"},"type":"string"},"refId":{"expose":true,"access_type":"public_method","serialized_name":"refId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefId","setter":"setRefId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ANetApiResponseType":{"properties":{"refId":{"expose":true,"access_type":"public_method","serialized_name":"refId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefId","setter":"setRefId"},"type":"string"},"messages":{"expose":true,"access_type":"public_method","serialized_name":"messages","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMessages","setter":"setMessages"},"type":"net\\authorize\\api\\contract\\v1\\MessagesType"},"sessionToken":{"expose":true,"access_type":"public_method","serialized_name":"sessionToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSessionToken","setter":"setSessionToken"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ARBCancelSubscriptionRequest":{"xml_root_name":"ARBCancelSubscriptionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscriptionId":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionId","setter":"setSubscriptionId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ARBCancelSubscriptionResponse":{"xml_root_name":"ARBCancelSubscriptionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\ARBCreateSubscriptionRequest":{"xml_root_name":"ARBCreateSubscriptionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscription":{"expose":true,"access_type":"public_method","serialized_name":"subscription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscription","setter":"setSubscription"},"type":"net\\authorize\\api\\contract\\v1\\ARBSubscriptionType"}}},"net\\authorize\\api\\contract\\v1\\ARBCreateSubscriptionResponse":{"xml_root_name":"ARBCreateSubscriptionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscriptionId":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionId","setter":"setSubscriptionId"},"type":"string"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionListRequest":{"xml_root_name":"ARBGetSubscriptionListRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"searchType":{"expose":true,"access_type":"public_method","serialized_name":"searchType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSearchType","setter":"setSearchType"},"type":"string"},"sorting":{"expose":true,"access_type":"public_method","serialized_name":"sorting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSorting","setter":"setSorting"},"type":"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionListSortingType"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionListResponse":{"xml_root_name":"ARBGetSubscriptionListResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"totalNumInResultSet":{"expose":true,"access_type":"public_method","serialized_name":"totalNumInResultSet","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalNumInResultSet","setter":"setTotalNumInResultSet"},"type":"integer"},"subscriptionDetails":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionDetails","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionDetails","setter":"setSubscriptionDetails"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"subscriptionDetail","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionListSortingType":{"properties":{"orderBy":{"expose":true,"access_type":"public_method","serialized_name":"orderBy","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderBy","setter":"setOrderBy"},"type":"string"},"orderDescending":{"expose":true,"access_type":"public_method","serialized_name":"orderDescending","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderDescending","setter":"setOrderDescending"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionRequest":{"xml_root_name":"ARBGetSubscriptionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscriptionId":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionId","setter":"setSubscriptionId"},"type":"string"},"includeTransactions":{"expose":true,"access_type":"public_method","serialized_name":"includeTransactions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIncludeTransactions","setter":"setIncludeTransactions"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionResponse":{"xml_root_name":"ARBGetSubscriptionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscription":{"expose":true,"access_type":"public_method","serialized_name":"subscription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscription","setter":"setSubscription"},"type":"net\\authorize\\api\\contract\\v1\\ARBSubscriptionMaskedType"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionStatusRequest":{"xml_root_name":"ARBGetSubscriptionStatusRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscriptionId":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionId","setter":"setSubscriptionId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ARBGetSubscriptionStatusResponse":{"xml_root_name":"ARBGetSubscriptionStatusResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"status":{"expose":true,"access_type":"public_method","serialized_name":"status","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStatus","setter":"setStatus"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ARBSubscriptionMaskedType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"paymentSchedule":{"expose":true,"access_type":"public_method","serialized_name":"paymentSchedule","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentSchedule","setter":"setPaymentSchedule"},"type":"net\\authorize\\api\\contract\\v1\\PaymentScheduleType"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"trialAmount":{"expose":true,"access_type":"public_method","serialized_name":"trialAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrialAmount","setter":"setTrialAmount"},"type":"float"},"status":{"expose":true,"access_type":"public_method","serialized_name":"status","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStatus","setter":"setStatus"},"type":"string"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\SubscriptionCustomerProfileType"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderType"},"arbTransactions":{"expose":true,"access_type":"public_method","serialized_name":"arbTransactions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getArbTransactions","setter":"setArbTransactions"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"arbTransaction","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\ARBSubscriptionType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"paymentSchedule":{"expose":true,"access_type":"public_method","serialized_name":"paymentSchedule","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentSchedule","setter":"setPaymentSchedule"},"type":"net\\authorize\\api\\contract\\v1\\PaymentScheduleType"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"trialAmount":{"expose":true,"access_type":"public_method","serialized_name":"trialAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrialAmount","setter":"setTrialAmount"},"type":"float"},"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentType"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderType"},"customer":{"expose":true,"access_type":"public_method","serialized_name":"customer","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomer","setter":"setCustomer"},"type":"net\\authorize\\api\\contract\\v1\\CustomerType"},"billTo":{"expose":true,"access_type":"public_method","serialized_name":"billTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillTo","setter":"setBillTo"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"},"shipTo":{"expose":true,"access_type":"public_method","serialized_name":"shipTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipTo","setter":"setShipTo"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"}}},"net\\authorize\\api\\contract\\v1\\ARBUpdateSubscriptionRequest":{"xml_root_name":"ARBUpdateSubscriptionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"subscriptionId":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionId","setter":"setSubscriptionId"},"type":"string"},"subscription":{"expose":true,"access_type":"public_method","serialized_name":"subscription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscription","setter":"setSubscription"},"type":"net\\authorize\\api\\contract\\v1\\ARBSubscriptionType"}}},"net\\authorize\\api\\contract\\v1\\ARBUpdateSubscriptionResponse":{"xml_root_name":"ARBUpdateSubscriptionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"}}},"net\\authorize\\api\\contract\\v1\\ArbTransactionType":{"properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"response":{"expose":true,"access_type":"public_method","serialized_name":"response","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponse","setter":"setResponse"},"type":"string"},"submitTimeUTC":{"expose":true,"access_type":"public_method","serialized_name":"submitTimeUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubmitTimeUTC","setter":"setSubmitTimeUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"payNum":{"expose":true,"access_type":"public_method","serialized_name":"payNum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayNum","setter":"setPayNum"},"type":"integer"},"attemptNum":{"expose":true,"access_type":"public_method","serialized_name":"attemptNum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAttemptNum","setter":"setAttemptNum"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\ArrayOfSettingType":{"properties":{"setting":{"expose":true,"access_type":"public_method","serialized_name":"setting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSetting","setter":"setSetting"},"xml_list":{"inline":true,"entry_name":"setting","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\AuDeleteType":{"properties":{"creditCard":{"expose":true,"access_type":"public_method","serialized_name":"creditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreditCard","setter":"setCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType"}}},"net\\authorize\\api\\contract\\v1\\AuDetailsType":{"properties":{"customerProfileID":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileID","setter":"setCustomerProfileID"},"type":"integer"},"customerPaymentProfileID":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileID","setter":"setCustomerPaymentProfileID"},"type":"integer"},"firstName":{"expose":true,"access_type":"public_method","serialized_name":"firstName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFirstName","setter":"setFirstName"},"type":"string"},"lastName":{"expose":true,"access_type":"public_method","serialized_name":"lastName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLastName","setter":"setLastName"},"type":"string"},"updateTimeUTC":{"expose":true,"access_type":"public_method","serialized_name":"updateTimeUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUpdateTimeUTC","setter":"setUpdateTimeUTC"},"type":"string"},"auReasonCode":{"expose":true,"access_type":"public_method","serialized_name":"auReasonCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuReasonCode","setter":"setAuReasonCode"},"type":"string"},"reasonDescription":{"expose":true,"access_type":"public_method","serialized_name":"reasonDescription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReasonDescription","setter":"setReasonDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\AuResponseType":{"properties":{"auReasonCode":{"expose":true,"access_type":"public_method","serialized_name":"auReasonCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuReasonCode","setter":"setAuReasonCode"},"type":"string"},"profileCount":{"expose":true,"access_type":"public_method","serialized_name":"profileCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileCount","setter":"setProfileCount"},"type":"integer"},"reasonDescription":{"expose":true,"access_type":"public_method","serialized_name":"reasonDescription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReasonDescription","setter":"setReasonDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\AuUpdateType":{"properties":{"newCreditCard":{"expose":true,"access_type":"public_method","serialized_name":"newCreditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNewCreditCard","setter":"setNewCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType"},"oldCreditCard":{"expose":true,"access_type":"public_method","serialized_name":"oldCreditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOldCreditCard","setter":"setOldCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType"}}},"net\\authorize\\api\\contract\\v1\\AuthenticateTestRequest":{"xml_root_name":"authenticateTestRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\AuthenticateTestResponse":{"xml_root_name":"authenticateTestResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\BankAccountMaskedType":{"properties":{"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"routingNumber":{"expose":true,"access_type":"public_method","serialized_name":"routingNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRoutingNumber","setter":"setRoutingNumber"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"nameOnAccount":{"expose":true,"access_type":"public_method","serialized_name":"nameOnAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNameOnAccount","setter":"setNameOnAccount"},"type":"string"},"echeckType":{"expose":true,"access_type":"public_method","serialized_name":"echeckType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEcheckType","setter":"setEcheckType"},"type":"string"},"bankName":{"expose":true,"access_type":"public_method","serialized_name":"bankName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankName","setter":"setBankName"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\BankAccountType":{"properties":{"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"routingNumber":{"expose":true,"access_type":"public_method","serialized_name":"routingNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRoutingNumber","setter":"setRoutingNumber"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"nameOnAccount":{"expose":true,"access_type":"public_method","serialized_name":"nameOnAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNameOnAccount","setter":"setNameOnAccount"},"type":"string"},"echeckType":{"expose":true,"access_type":"public_method","serialized_name":"echeckType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEcheckType","setter":"setEcheckType"},"type":"string"},"bankName":{"expose":true,"access_type":"public_method","serialized_name":"bankName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankName","setter":"setBankName"},"type":"string"},"checkNumber":{"expose":true,"access_type":"public_method","serialized_name":"checkNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCheckNumber","setter":"setCheckNumber"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\BatchDetailsType":{"properties":{"batchId":{"expose":true,"access_type":"public_method","serialized_name":"batchId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatchId","setter":"setBatchId"},"type":"string"},"settlementTimeUTC":{"expose":true,"access_type":"public_method","serialized_name":"settlementTimeUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettlementTimeUTC","setter":"setSettlementTimeUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"settlementTimeLocal":{"expose":true,"access_type":"public_method","serialized_name":"settlementTimeLocal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettlementTimeLocal","setter":"setSettlementTimeLocal"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"settlementState":{"expose":true,"access_type":"public_method","serialized_name":"settlementState","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettlementState","setter":"setSettlementState"},"type":"string"},"paymentMethod":{"expose":true,"access_type":"public_method","serialized_name":"paymentMethod","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentMethod","setter":"setPaymentMethod"},"type":"string"},"marketType":{"expose":true,"access_type":"public_method","serialized_name":"marketType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMarketType","setter":"setMarketType"},"type":"string"},"product":{"expose":true,"access_type":"public_method","serialized_name":"product","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProduct","setter":"setProduct"},"type":"string"},"statistics":{"expose":true,"access_type":"public_method","serialized_name":"statistics","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStatistics","setter":"setStatistics"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"statistic","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\BatchStatisticType":{"properties":{"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"chargeAmount":{"expose":true,"access_type":"public_method","serialized_name":"chargeAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeAmount","setter":"setChargeAmount"},"type":"float"},"chargeCount":{"expose":true,"access_type":"public_method","serialized_name":"chargeCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeCount","setter":"setChargeCount"},"type":"integer"},"refundAmount":{"expose":true,"access_type":"public_method","serialized_name":"refundAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundAmount","setter":"setRefundAmount"},"type":"float"},"refundCount":{"expose":true,"access_type":"public_method","serialized_name":"refundCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundCount","setter":"setRefundCount"},"type":"integer"},"voidCount":{"expose":true,"access_type":"public_method","serialized_name":"voidCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVoidCount","setter":"setVoidCount"},"type":"integer"},"declineCount":{"expose":true,"access_type":"public_method","serialized_name":"declineCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDeclineCount","setter":"setDeclineCount"},"type":"integer"},"errorCount":{"expose":true,"access_type":"public_method","serialized_name":"errorCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getErrorCount","setter":"setErrorCount"},"type":"integer"},"returnedItemAmount":{"expose":true,"access_type":"public_method","serialized_name":"returnedItemAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReturnedItemAmount","setter":"setReturnedItemAmount"},"type":"float"},"returnedItemCount":{"expose":true,"access_type":"public_method","serialized_name":"returnedItemCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReturnedItemCount","setter":"setReturnedItemCount"},"type":"integer"},"chargebackAmount":{"expose":true,"access_type":"public_method","serialized_name":"chargebackAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargebackAmount","setter":"setChargebackAmount"},"type":"float"},"chargebackCount":{"expose":true,"access_type":"public_method","serialized_name":"chargebackCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargebackCount","setter":"setChargebackCount"},"type":"integer"},"correctionNoticeCount":{"expose":true,"access_type":"public_method","serialized_name":"correctionNoticeCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCorrectionNoticeCount","setter":"setCorrectionNoticeCount"},"type":"integer"},"chargeChargeBackAmount":{"expose":true,"access_type":"public_method","serialized_name":"chargeChargeBackAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeChargeBackAmount","setter":"setChargeChargeBackAmount"},"type":"float"},"chargeChargeBackCount":{"expose":true,"access_type":"public_method","serialized_name":"chargeChargeBackCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeChargeBackCount","setter":"setChargeChargeBackCount"},"type":"integer"},"refundChargeBackAmount":{"expose":true,"access_type":"public_method","serialized_name":"refundChargeBackAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundChargeBackAmount","setter":"setRefundChargeBackAmount"},"type":"float"},"refundChargeBackCount":{"expose":true,"access_type":"public_method","serialized_name":"refundChargeBackCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundChargeBackCount","setter":"setRefundChargeBackCount"},"type":"integer"},"chargeReturnedItemsAmount":{"expose":true,"access_type":"public_method","serialized_name":"chargeReturnedItemsAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeReturnedItemsAmount","setter":"setChargeReturnedItemsAmount"},"type":"float"},"chargeReturnedItemsCount":{"expose":true,"access_type":"public_method","serialized_name":"chargeReturnedItemsCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getChargeReturnedItemsCount","setter":"setChargeReturnedItemsCount"},"type":"integer"},"refundReturnedItemsAmount":{"expose":true,"access_type":"public_method","serialized_name":"refundReturnedItemsAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundReturnedItemsAmount","setter":"setRefundReturnedItemsAmount"},"type":"float"},"refundReturnedItemsCount":{"expose":true,"access_type":"public_method","serialized_name":"refundReturnedItemsCount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefundReturnedItemsCount","setter":"setRefundReturnedItemsCount"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\CardArtType":{"properties":{"cardBrand":{"expose":true,"access_type":"public_method","serialized_name":"cardBrand","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardBrand","setter":"setCardBrand"},"type":"string"},"cardImageHeight":{"expose":true,"access_type":"public_method","serialized_name":"cardImageHeight","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardImageHeight","setter":"setCardImageHeight"},"type":"string"},"cardImageUrl":{"expose":true,"access_type":"public_method","serialized_name":"cardImageUrl","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardImageUrl","setter":"setCardImageUrl"},"type":"string"},"cardImageWidth":{"expose":true,"access_type":"public_method","serialized_name":"cardImageWidth","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardImageWidth","setter":"setCardImageWidth"},"type":"string"},"cardType":{"expose":true,"access_type":"public_method","serialized_name":"cardType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardType","setter":"setCardType"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CcAuthenticationType":{"properties":{"authenticationIndicator":{"expose":true,"access_type":"public_method","serialized_name":"authenticationIndicator","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthenticationIndicator","setter":"setAuthenticationIndicator"},"type":"string"},"cardholderAuthenticationValue":{"expose":true,"access_type":"public_method","serialized_name":"cardholderAuthenticationValue","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardholderAuthenticationValue","setter":"setCardholderAuthenticationValue"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerPaymentProfileRequest":{"xml_root_name":"createCustomerPaymentProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"paymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfile","setter":"setPaymentProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileType"},"validationMode":{"expose":true,"access_type":"public_method","serialized_name":"validationMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationMode","setter":"setValidationMode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerPaymentProfileResponse":{"xml_root_name":"createCustomerPaymentProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"validationDirectResponse":{"expose":true,"access_type":"public_method","serialized_name":"validationDirectResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationDirectResponse","setter":"setValidationDirectResponse"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerProfileFromTransactionRequest":{"xml_root_name":"createCustomerProfileFromTransactionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"customer":{"expose":true,"access_type":"public_method","serialized_name":"customer","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomer","setter":"setCustomer"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileBaseType"},"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"defaultPaymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"defaultPaymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultPaymentProfile","setter":"setDefaultPaymentProfile"},"type":"boolean"},"defaultShippingAddress":{"expose":true,"access_type":"public_method","serialized_name":"defaultShippingAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultShippingAddress","setter":"setDefaultShippingAddress"},"type":"boolean"},"profileType":{"expose":true,"access_type":"public_method","serialized_name":"profileType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileType","setter":"setProfileType"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerProfileRequest":{"xml_root_name":"createCustomerProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileType"},"validationMode":{"expose":true,"access_type":"public_method","serialized_name":"validationMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationMode","setter":"setValidationMode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerProfileResponse":{"xml_root_name":"createCustomerProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileIdList":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileIdList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileIdList","setter":"setCustomerPaymentProfileIdList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"numericString","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"customerShippingAddressIdList":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressIdList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressIdList","setter":"setCustomerShippingAddressIdList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"numericString","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"validationDirectResponseList":{"expose":true,"access_type":"public_method","serialized_name":"validationDirectResponseList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationDirectResponseList","setter":"setValidationDirectResponseList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"string","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerProfileTransactionRequest":{"xml_root_name":"createCustomerProfileTransactionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transaction":{"expose":true,"access_type":"public_method","serialized_name":"transaction","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransaction","setter":"setTransaction"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransactionType"},"extraOptions":{"expose":true,"access_type":"public_method","serialized_name":"extraOptions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getExtraOptions","setter":"setExtraOptions"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerProfileTransactionResponse":{"xml_root_name":"createCustomerProfileTransactionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactionResponse":{"expose":true,"access_type":"public_method","serialized_name":"transactionResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionResponse","setter":"setTransactionResponse"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType"},"directResponse":{"expose":true,"access_type":"public_method","serialized_name":"directResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDirectResponse","setter":"setDirectResponse"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerShippingAddressRequest":{"xml_root_name":"createCustomerShippingAddressRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"address":{"expose":true,"access_type":"public_method","serialized_name":"address","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAddress","setter":"setAddress"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"defaultShippingAddress":{"expose":true,"access_type":"public_method","serialized_name":"defaultShippingAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultShippingAddress","setter":"setDefaultShippingAddress"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\CreateCustomerShippingAddressResponse":{"xml_root_name":"createCustomerShippingAddressResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerAddressId","setter":"setCustomerAddressId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreateProfileResponseType":{"properties":{"messages":{"expose":true,"access_type":"public_method","serialized_name":"messages","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMessages","setter":"setMessages"},"type":"net\\authorize\\api\\contract\\v1\\MessagesType"},"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileIdList":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileIdList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileIdList","setter":"setCustomerPaymentProfileIdList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"numericString","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"customerShippingAddressIdList":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressIdList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressIdList","setter":"setCustomerShippingAddressIdList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"numericString","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\CreateTransactionRequest":{"xml_root_name":"createTransactionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactionRequest":{"expose":true,"access_type":"public_method","serialized_name":"transactionRequest","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionRequest","setter":"setTransactionRequest"},"type":"net\\authorize\\api\\contract\\v1\\TransactionRequestType"}}},"net\\authorize\\api\\contract\\v1\\CreateTransactionResponse":{"xml_root_name":"createTransactionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactionResponse":{"expose":true,"access_type":"public_method","serialized_name":"transactionResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionResponse","setter":"setTransactionResponse"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType"},"profileResponse":{"expose":true,"access_type":"public_method","serialized_name":"profileResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileResponse","setter":"setProfileResponse"},"type":"net\\authorize\\api\\contract\\v1\\CreateProfileResponseType"}}},"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType":{"properties":{"cardNumber":{"expose":true,"access_type":"public_method","serialized_name":"cardNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardNumber","setter":"setCardNumber"},"type":"string"},"expirationDate":{"expose":true,"access_type":"public_method","serialized_name":"expirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getExpirationDate","setter":"setExpirationDate"},"type":"string"},"cardType":{"expose":true,"access_type":"public_method","serialized_name":"cardType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardType","setter":"setCardType"},"type":"string"},"cardArt":{"expose":true,"access_type":"public_method","serialized_name":"cardArt","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardArt","setter":"setCardArt"},"type":"net\\authorize\\api\\contract\\v1\\CardArtType"},"issuerNumber":{"expose":true,"access_type":"public_method","serialized_name":"issuerNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIssuerNumber","setter":"setIssuerNumber"},"type":"string"},"isPaymentToken":{"expose":true,"access_type":"public_method","serialized_name":"isPaymentToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsPaymentToken","setter":"setIsPaymentToken"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\CreditCardSimpleType":{"properties":{"cardNumber":{"expose":true,"access_type":"public_method","serialized_name":"cardNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardNumber","setter":"setCardNumber"},"type":"string"},"expirationDate":{"expose":true,"access_type":"public_method","serialized_name":"expirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getExpirationDate","setter":"setExpirationDate"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreditCardTrackType":{"properties":{"track1":{"expose":true,"access_type":"public_method","serialized_name":"track1","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrack1","setter":"setTrack1"},"type":"string"},"track2":{"expose":true,"access_type":"public_method","serialized_name":"track2","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrack2","setter":"setTrack2"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CreditCardType":{"properties":{"cardCode":{"expose":true,"access_type":"public_method","serialized_name":"cardCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCode","setter":"setCardCode"},"type":"string"},"isPaymentToken":{"expose":true,"access_type":"public_method","serialized_name":"isPaymentToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsPaymentToken","setter":"setIsPaymentToken"},"type":"boolean"},"cryptogram":{"expose":true,"access_type":"public_method","serialized_name":"cryptogram","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCryptogram","setter":"setCryptogram"},"type":"string"},"tokenRequestorName":{"expose":true,"access_type":"public_method","serialized_name":"tokenRequestorName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenRequestorName","setter":"setTokenRequestorName"},"type":"string"},"tokenRequestorId":{"expose":true,"access_type":"public_method","serialized_name":"tokenRequestorId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenRequestorId","setter":"setTokenRequestorId"},"type":"string"},"tokenRequestorEci":{"expose":true,"access_type":"public_method","serialized_name":"tokenRequestorEci","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenRequestorEci","setter":"setTokenRequestorEci"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerAddressExType":{"properties":{"customerAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerAddressId","setter":"setCustomerAddressId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerAddressType":{"properties":{"phoneNumber":{"expose":true,"access_type":"public_method","serialized_name":"phoneNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPhoneNumber","setter":"setPhoneNumber"},"type":"string"},"faxNumber":{"expose":true,"access_type":"public_method","serialized_name":"faxNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFaxNumber","setter":"setFaxNumber"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerDataType":{"properties":{"type":{"expose":true,"access_type":"public_method","serialized_name":"type","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getType","setter":"setType"},"type":"string"},"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"},"driversLicense":{"expose":true,"access_type":"public_method","serialized_name":"driversLicense","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDriversLicense","setter":"setDriversLicense"},"type":"net\\authorize\\api\\contract\\v1\\DriversLicenseType"},"taxId":{"expose":true,"access_type":"public_method","serialized_name":"taxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxId","setter":"setTaxId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileBaseType":{"properties":{"customerType":{"expose":true,"access_type":"public_method","serialized_name":"customerType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerType","setter":"setCustomerType"},"type":"string"},"billTo":{"expose":true,"access_type":"public_method","serialized_name":"billTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillTo","setter":"setBillTo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileExType":{"properties":{"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileListItemType":{"properties":{"defaultPaymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"defaultPaymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultPaymentProfile","setter":"setDefaultPaymentProfile"},"type":"boolean"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"integer"},"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"integer"},"billTo":{"expose":true,"access_type":"public_method","serialized_name":"billTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillTo","setter":"setBillTo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentMaskedType"}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileMaskedType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"defaultPaymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"defaultPaymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultPaymentProfile","setter":"setDefaultPaymentProfile"},"type":"boolean"},"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentMaskedType"},"driversLicense":{"expose":true,"access_type":"public_method","serialized_name":"driversLicense","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDriversLicense","setter":"setDriversLicense"},"type":"net\\authorize\\api\\contract\\v1\\DriversLicenseMaskedType"},"taxId":{"expose":true,"access_type":"public_method","serialized_name":"taxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxId","setter":"setTaxId"},"type":"string"},"subscriptionIds":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionIds","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionIds","setter":"setSubscriptionIds"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"subscriptionId","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileSortingType":{"properties":{"orderBy":{"expose":true,"access_type":"public_method","serialized_name":"orderBy","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderBy","setter":"setOrderBy"},"type":"string"},"orderDescending":{"expose":true,"access_type":"public_method","serialized_name":"orderDescending","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderDescending","setter":"setOrderDescending"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileType":{"properties":{"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentType"},"driversLicense":{"expose":true,"access_type":"public_method","serialized_name":"driversLicense","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDriversLicense","setter":"setDriversLicense"},"type":"net\\authorize\\api\\contract\\v1\\DriversLicenseType"},"taxId":{"expose":true,"access_type":"public_method","serialized_name":"taxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxId","setter":"setTaxId"},"type":"string"},"defaultPaymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"defaultPaymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultPaymentProfile","setter":"setDefaultPaymentProfile"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileBaseType":{"properties":{"merchantCustomerId":{"expose":true,"access_type":"public_method","serialized_name":"merchantCustomerId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantCustomerId","setter":"setMerchantCustomerId"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileExType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerAddressId","setter":"setCustomerAddressId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileInfoExType":{"properties":{"profileType":{"expose":true,"access_type":"public_method","serialized_name":"profileType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileType","setter":"setProfileType"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileMaskedType":{"properties":{"paymentProfiles":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfiles","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfiles","setter":"setPaymentProfiles"},"xml_list":{"inline":true,"entry_name":"paymentProfiles","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"},"shipToList":{"expose":true,"access_type":"public_method","serialized_name":"shipToList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipToList","setter":"setShipToList"},"xml_list":{"inline":true,"entry_name":"shipToList","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"},"profileType":{"expose":true,"access_type":"public_method","serialized_name":"profileType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileType","setter":"setProfileType"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfilePaymentType":{"properties":{"createProfile":{"expose":true,"access_type":"public_method","serialized_name":"createProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreateProfile","setter":"setCreateProfile"},"type":"boolean"},"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"paymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfile","setter":"setPaymentProfile"},"type":"net\\authorize\\api\\contract\\v1\\PaymentProfileType"},"shippingProfileId":{"expose":true,"access_type":"public_method","serialized_name":"shippingProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShippingProfileId","setter":"setShippingProfileId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileSummaryType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"},"merchantCustomerId":{"expose":true,"access_type":"public_method","serialized_name":"merchantCustomerId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantCustomerId","setter":"setMerchantCustomerId"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"},"createdDate":{"expose":true,"access_type":"public_method","serialized_name":"createdDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreatedDate","setter":"setCreatedDate"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"}}},"net\\authorize\\api\\contract\\v1\\CustomerProfileType":{"properties":{"paymentProfiles":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfiles","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfiles","setter":"setPaymentProfiles"},"xml_list":{"inline":true,"entry_name":"paymentProfiles","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"},"shipToList":{"expose":true,"access_type":"public_method","serialized_name":"shipToList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipToList","setter":"setShipToList"},"xml_list":{"inline":true,"entry_name":"shipToList","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"},"profileType":{"expose":true,"access_type":"public_method","serialized_name":"profileType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileType","setter":"setProfileType"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\CustomerType":{"properties":{"type":{"expose":true,"access_type":"public_method","serialized_name":"type","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getType","setter":"setType"},"type":"string"},"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"},"phoneNumber":{"expose":true,"access_type":"public_method","serialized_name":"phoneNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPhoneNumber","setter":"setPhoneNumber"},"type":"string"},"faxNumber":{"expose":true,"access_type":"public_method","serialized_name":"faxNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFaxNumber","setter":"setFaxNumber"},"type":"string"},"driversLicense":{"expose":true,"access_type":"public_method","serialized_name":"driversLicense","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDriversLicense","setter":"setDriversLicense"},"type":"net\\authorize\\api\\contract\\v1\\DriversLicenseType"},"taxId":{"expose":true,"access_type":"public_method","serialized_name":"taxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxId","setter":"setTaxId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DecryptPaymentDataRequest":{"xml_root_name":"decryptPaymentDataRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"opaqueData":{"expose":true,"access_type":"public_method","serialized_name":"opaqueData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOpaqueData","setter":"setOpaqueData"},"type":"net\\authorize\\api\\contract\\v1\\OpaqueDataType"},"callId":{"expose":true,"access_type":"public_method","serialized_name":"callId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCallId","setter":"setCallId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DecryptPaymentDataResponse":{"xml_root_name":"decryptPaymentDataResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"shippingInfo":{"expose":true,"access_type":"public_method","serialized_name":"shippingInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShippingInfo","setter":"setShippingInfo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"billingInfo":{"expose":true,"access_type":"public_method","serialized_name":"billingInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillingInfo","setter":"setBillingInfo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"cardInfo":{"expose":true,"access_type":"public_method","serialized_name":"cardInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardInfo","setter":"setCardInfo"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType"},"paymentDetails":{"expose":true,"access_type":"public_method","serialized_name":"paymentDetails","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentDetails","setter":"setPaymentDetails"},"type":"net\\authorize\\api\\contract\\v1\\PaymentDetailsType"}}},"net\\authorize\\api\\contract\\v1\\DeleteCustomerPaymentProfileRequest":{"xml_root_name":"deleteCustomerPaymentProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DeleteCustomerPaymentProfileResponse":{"xml_root_name":"deleteCustomerPaymentProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\DeleteCustomerProfileRequest":{"xml_root_name":"deleteCustomerProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DeleteCustomerProfileResponse":{"xml_root_name":"deleteCustomerProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\DeleteCustomerShippingAddressRequest":{"xml_root_name":"deleteCustomerShippingAddressRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerAddressId","setter":"setCustomerAddressId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DeleteCustomerShippingAddressResponse":{"xml_root_name":"deleteCustomerShippingAddressResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\DriversLicenseMaskedType":{"properties":{"number":{"expose":true,"access_type":"public_method","serialized_name":"number","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNumber","setter":"setNumber"},"type":"string"},"state":{"expose":true,"access_type":"public_method","serialized_name":"state","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getState","setter":"setState"},"type":"string"},"dateOfBirth":{"expose":true,"access_type":"public_method","serialized_name":"dateOfBirth","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDateOfBirth","setter":"setDateOfBirth"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\DriversLicenseType":{"properties":{"number":{"expose":true,"access_type":"public_method","serialized_name":"number","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNumber","setter":"setNumber"},"type":"string"},"state":{"expose":true,"access_type":"public_method","serialized_name":"state","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getState","setter":"setState"},"type":"string"},"dateOfBirth":{"expose":true,"access_type":"public_method","serialized_name":"dateOfBirth","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDateOfBirth","setter":"setDateOfBirth"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\EmailSettingsType":{"properties":{"version":{"expose":true,"access_type":"public_method","serialized_name":"version","accessor":{"getter":"getVersion","setter":"setVersion"},"xml_attribute":true,"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\EmvTagType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"value":{"expose":true,"access_type":"public_method","serialized_name":"value","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValue","setter":"setValue"},"type":"string"},"formatted":{"expose":true,"access_type":"public_method","serialized_name":"formatted","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFormatted","setter":"setFormatted"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\EncryptedTrackDataType":{"properties":{"formOfPayment":{"expose":true,"access_type":"public_method","serialized_name":"FormOfPayment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFormOfPayment","setter":"setFormOfPayment"},"type":"net\\authorize\\api\\contract\\v1\\KeyBlockType"}}},"net\\authorize\\api\\contract\\v1\\EnumCollection":{"xml_root_name":"EnumCollection","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileSummaryType":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileSummaryType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileSummaryType","setter":"setCustomerProfileSummaryType"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileSummaryType"},"paymentSimpleType":{"expose":true,"access_type":"public_method","serialized_name":"paymentSimpleType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentSimpleType","setter":"setPaymentSimpleType"},"type":"net\\authorize\\api\\contract\\v1\\PaymentSimpleType"},"accountTypeEnum":{"expose":true,"access_type":"public_method","serialized_name":"accountTypeEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountTypeEnum","setter":"setAccountTypeEnum"},"type":"string"},"cardTypeEnum":{"expose":true,"access_type":"public_method","serialized_name":"cardTypeEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardTypeEnum","setter":"setCardTypeEnum"},"type":"string"},"fDSFilterActionEnum":{"expose":true,"access_type":"public_method","serialized_name":"FDSFilterActionEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFDSFilterActionEnum","setter":"setFDSFilterActionEnum"},"type":"string"},"permissionsEnum":{"expose":true,"access_type":"public_method","serialized_name":"permissionsEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPermissionsEnum","setter":"setPermissionsEnum"},"type":"string"},"settingNameEnum":{"expose":true,"access_type":"public_method","serialized_name":"settingNameEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettingNameEnum","setter":"setSettingNameEnum"},"type":"string"},"settlementStateEnum":{"expose":true,"access_type":"public_method","serialized_name":"settlementStateEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettlementStateEnum","setter":"setSettlementStateEnum"},"type":"string"},"transactionStatusEnum":{"expose":true,"access_type":"public_method","serialized_name":"transactionStatusEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionStatusEnum","setter":"setTransactionStatusEnum"},"type":"string"},"transactionTypeEnum":{"expose":true,"access_type":"public_method","serialized_name":"transactionTypeEnum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionTypeEnum","setter":"setTransactionTypeEnum"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ErrorResponse":{"xml_root_name":"ErrorResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"net\\authorize\\api\\contract\\v1\\ExtendedAmountType":{"properties":{"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\FDSFilterType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"action":{"expose":true,"access_type":"public_method","serialized_name":"action","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAction","setter":"setAction"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\FingerPrintType":{"properties":{"hashValue":{"expose":true,"access_type":"public_method","serialized_name":"hashValue","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getHashValue","setter":"setHashValue"},"type":"string"},"sequence":{"expose":true,"access_type":"public_method","serialized_name":"sequence","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSequence","setter":"setSequence"},"type":"string"},"timestamp":{"expose":true,"access_type":"public_method","serialized_name":"timestamp","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTimestamp","setter":"setTimestamp"},"type":"string"},"currencyCode":{"expose":true,"access_type":"public_method","serialized_name":"currencyCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCurrencyCode","setter":"setCurrencyCode"},"type":"string"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\FraudInformationType":{"properties":{"fraudFilterList":{"expose":true,"access_type":"public_method","serialized_name":"fraudFilterList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFraudFilterList","setter":"setFraudFilterList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"fraudFilter","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"fraudAction":{"expose":true,"access_type":"public_method","serialized_name":"fraudAction","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFraudAction","setter":"setFraudAction"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetAUJobDetailsRequest":{"xml_root_name":"getAUJobDetailsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"month":{"expose":true,"access_type":"public_method","serialized_name":"month","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMonth","setter":"setMonth"},"type":"string"},"modifiedTypeFilter":{"expose":true,"access_type":"public_method","serialized_name":"modifiedTypeFilter","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getModifiedTypeFilter","setter":"setModifiedTypeFilter"},"type":"string"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\GetAUJobDetailsResponse":{"xml_root_name":"getAUJobDetailsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"totalNumInResultSet":{"expose":true,"access_type":"public_method","serialized_name":"totalNumInResultSet","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalNumInResultSet","setter":"setTotalNumInResultSet"},"type":"integer"},"auDetails":{"expose":true,"access_type":"public_method","serialized_name":"auDetails","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuDetails","setter":"setAuDetails"},"type":"net\\authorize\\api\\contract\\v1\\ListOfAUDetailsType"}}},"net\\authorize\\api\\contract\\v1\\GetAUJobSummaryRequest":{"xml_root_name":"getAUJobSummaryRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"month":{"expose":true,"access_type":"public_method","serialized_name":"month","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMonth","setter":"setMonth"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetAUJobSummaryResponse":{"xml_root_name":"getAUJobSummaryResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"auSummary":{"expose":true,"access_type":"public_method","serialized_name":"auSummary","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuSummary","setter":"setAuSummary"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"auResponse","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetBatchStatisticsRequest":{"xml_root_name":"getBatchStatisticsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"batchId":{"expose":true,"access_type":"public_method","serialized_name":"batchId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatchId","setter":"setBatchId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetBatchStatisticsResponse":{"xml_root_name":"getBatchStatisticsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"batch":{"expose":true,"access_type":"public_method","serialized_name":"batch","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatch","setter":"setBatch"},"type":"net\\authorize\\api\\contract\\v1\\BatchDetailsType"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerPaymentProfileListRequest":{"xml_root_name":"getCustomerPaymentProfileListRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"searchType":{"expose":true,"access_type":"public_method","serialized_name":"searchType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSearchType","setter":"setSearchType"},"type":"string"},"month":{"expose":true,"access_type":"public_method","serialized_name":"month","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMonth","setter":"setMonth"},"type":"string"},"sorting":{"expose":true,"access_type":"public_method","serialized_name":"sorting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSorting","setter":"setSorting"},"type":"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileSortingType"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerPaymentProfileListResponse":{"xml_root_name":"getCustomerPaymentProfileListResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"totalNumInResultSet":{"expose":true,"access_type":"public_method","serialized_name":"totalNumInResultSet","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalNumInResultSet","setter":"setTotalNumInResultSet"},"type":"integer"},"paymentProfiles":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfiles","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfiles","setter":"setPaymentProfiles"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"paymentProfile","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetCustomerPaymentProfileRequest":{"xml_root_name":"getCustomerPaymentProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"unmaskExpirationDate":{"expose":true,"access_type":"public_method","serialized_name":"unmaskExpirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUnmaskExpirationDate","setter":"setUnmaskExpirationDate"},"type":"boolean"},"includeIssuerInfo":{"expose":true,"access_type":"public_method","serialized_name":"includeIssuerInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIncludeIssuerInfo","setter":"setIncludeIssuerInfo"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerPaymentProfileResponse":{"xml_root_name":"getCustomerPaymentProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"paymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfile","setter":"setPaymentProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileMaskedType"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerProfileIdsRequest":{"xml_root_name":"getCustomerProfileIdsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\GetCustomerProfileIdsResponse":{"xml_root_name":"getCustomerProfileIdsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"ids":{"expose":true,"access_type":"public_method","serialized_name":"ids","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIds","setter":"setIds"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"numericString","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetCustomerProfileRequest":{"xml_root_name":"getCustomerProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"merchantCustomerId":{"expose":true,"access_type":"public_method","serialized_name":"merchantCustomerId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantCustomerId","setter":"setMerchantCustomerId"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"},"unmaskExpirationDate":{"expose":true,"access_type":"public_method","serialized_name":"unmaskExpirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUnmaskExpirationDate","setter":"setUnmaskExpirationDate"},"type":"boolean"},"includeIssuerInfo":{"expose":true,"access_type":"public_method","serialized_name":"includeIssuerInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIncludeIssuerInfo","setter":"setIncludeIssuerInfo"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerProfileResponse":{"xml_root_name":"getCustomerProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileMaskedType"},"subscriptionIds":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionIds","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionIds","setter":"setSubscriptionIds"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"subscriptionId","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetCustomerShippingAddressRequest":{"xml_root_name":"getCustomerShippingAddressRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerAddressId","setter":"setCustomerAddressId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetCustomerShippingAddressResponse":{"xml_root_name":"getCustomerShippingAddressResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"defaultShippingAddress":{"expose":true,"access_type":"public_method","serialized_name":"defaultShippingAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultShippingAddress","setter":"setDefaultShippingAddress"},"type":"boolean"},"address":{"expose":true,"access_type":"public_method","serialized_name":"address","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAddress","setter":"setAddress"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressExType"},"subscriptionIds":{"expose":true,"access_type":"public_method","serialized_name":"subscriptionIds","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscriptionIds","setter":"setSubscriptionIds"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"subscriptionId","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetHostedPaymentPageRequest":{"xml_root_name":"getHostedPaymentPageRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactionRequest":{"expose":true,"access_type":"public_method","serialized_name":"transactionRequest","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionRequest","setter":"setTransactionRequest"},"type":"net\\authorize\\api\\contract\\v1\\TransactionRequestType"},"hostedPaymentSettings":{"expose":true,"access_type":"public_method","serialized_name":"hostedPaymentSettings","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getHostedPaymentSettings","setter":"setHostedPaymentSettings"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"setting","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetHostedPaymentPageResponse":{"xml_root_name":"getHostedPaymentPageResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"token":{"expose":true,"access_type":"public_method","serialized_name":"token","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getToken","setter":"setToken"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetHostedProfilePageRequest":{"xml_root_name":"getHostedProfilePageRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"hostedProfileSettings":{"expose":true,"access_type":"public_method","serialized_name":"hostedProfileSettings","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getHostedProfileSettings","setter":"setHostedProfileSettings"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"setting","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetHostedProfilePageResponse":{"xml_root_name":"getHostedProfilePageResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"token":{"expose":true,"access_type":"public_method","serialized_name":"token","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getToken","setter":"setToken"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetMerchantDetailsRequest":{"xml_root_name":"getMerchantDetailsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\GetMerchantDetailsResponse":{"xml_root_name":"getMerchantDetailsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"isTestMode":{"expose":true,"access_type":"public_method","serialized_name":"isTestMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsTestMode","setter":"setIsTestMode"},"type":"boolean"},"processors":{"expose":true,"access_type":"public_method","serialized_name":"processors","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProcessors","setter":"setProcessors"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"processor","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"merchantName":{"expose":true,"access_type":"public_method","serialized_name":"merchantName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantName","setter":"setMerchantName"},"type":"string"},"gatewayId":{"expose":true,"access_type":"public_method","serialized_name":"gatewayId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getGatewayId","setter":"setGatewayId"},"type":"string"},"marketTypes":{"expose":true,"access_type":"public_method","serialized_name":"marketTypes","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMarketTypes","setter":"setMarketTypes"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"marketType","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"productCodes":{"expose":true,"access_type":"public_method","serialized_name":"productCodes","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProductCodes","setter":"setProductCodes"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"productCode","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"paymentMethods":{"expose":true,"access_type":"public_method","serialized_name":"paymentMethods","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentMethods","setter":"setPaymentMethods"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"paymentMethod","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"currencies":{"expose":true,"access_type":"public_method","serialized_name":"currencies","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCurrencies","setter":"setCurrencies"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"currency","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"publicClientKey":{"expose":true,"access_type":"public_method","serialized_name":"publicClientKey","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPublicClientKey","setter":"setPublicClientKey"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetSettledBatchListRequest":{"xml_root_name":"getSettledBatchListRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"includeStatistics":{"expose":true,"access_type":"public_method","serialized_name":"includeStatistics","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIncludeStatistics","setter":"setIncludeStatistics"},"type":"boolean"},"firstSettlementDate":{"expose":true,"access_type":"public_method","serialized_name":"firstSettlementDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFirstSettlementDate","setter":"setFirstSettlementDate"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"lastSettlementDate":{"expose":true,"access_type":"public_method","serialized_name":"lastSettlementDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLastSettlementDate","setter":"setLastSettlementDate"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"}}},"net\\authorize\\api\\contract\\v1\\GetSettledBatchListResponse":{"xml_root_name":"getSettledBatchListResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"batchList":{"expose":true,"access_type":"public_method","serialized_name":"batchList","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatchList","setter":"setBatchList"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"batch","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\GetTransactionDetailsRequest":{"xml_root_name":"getTransactionDetailsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetTransactionDetailsResponse":{"xml_root_name":"getTransactionDetailsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transaction":{"expose":true,"access_type":"public_method","serialized_name":"transaction","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransaction","setter":"setTransaction"},"type":"net\\authorize\\api\\contract\\v1\\TransactionDetailsType"},"clientId":{"expose":true,"access_type":"public_method","serialized_name":"clientId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getClientId","setter":"setClientId"},"type":"string"},"transrefId":{"expose":true,"access_type":"public_method","serialized_name":"transrefId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransrefId","setter":"setTransrefId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\GetTransactionListForCustomerRequest":{"xml_root_name":"getTransactionListForCustomerRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"sorting":{"expose":true,"access_type":"public_method","serialized_name":"sorting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSorting","setter":"setSorting"},"type":"net\\authorize\\api\\contract\\v1\\TransactionListSortingType"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\GetTransactionListRequest":{"xml_root_name":"getTransactionListRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"batchId":{"expose":true,"access_type":"public_method","serialized_name":"batchId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatchId","setter":"setBatchId"},"type":"string"},"sorting":{"expose":true,"access_type":"public_method","serialized_name":"sorting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSorting","setter":"setSorting"},"type":"net\\authorize\\api\\contract\\v1\\TransactionListSortingType"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\GetTransactionListResponse":{"xml_root_name":"getTransactionListResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactions":{"expose":true,"access_type":"public_method","serialized_name":"transactions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactions","setter":"setTransactions"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"transaction","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"totalNumInResultSet":{"expose":true,"access_type":"public_method","serialized_name":"totalNumInResultSet","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalNumInResultSet","setter":"setTotalNumInResultSet"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\GetUnsettledTransactionListRequest":{"xml_root_name":"getUnsettledTransactionListRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"status":{"expose":true,"access_type":"public_method","serialized_name":"status","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStatus","setter":"setStatus"},"type":"string"},"sorting":{"expose":true,"access_type":"public_method","serialized_name":"sorting","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSorting","setter":"setSorting"},"type":"net\\authorize\\api\\contract\\v1\\TransactionListSortingType"},"paging":{"expose":true,"access_type":"public_method","serialized_name":"paging","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaging","setter":"setPaging"},"type":"net\\authorize\\api\\contract\\v1\\PagingType"}}},"net\\authorize\\api\\contract\\v1\\GetUnsettledTransactionListResponse":{"xml_root_name":"getUnsettledTransactionListResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactions":{"expose":true,"access_type":"public_method","serialized_name":"transactions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactions","setter":"setTransactions"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"transaction","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"totalNumInResultSet":{"expose":true,"access_type":"public_method","serialized_name":"totalNumInResultSet","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalNumInResultSet","setter":"setTotalNumInResultSet"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\HeldTransactionRequestType":{"properties":{"action":{"expose":true,"access_type":"public_method","serialized_name":"action","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAction","setter":"setAction"},"type":"string"},"refTransId":{"expose":true,"access_type":"public_method","serialized_name":"refTransId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefTransId","setter":"setRefTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ImpersonationAuthenticationType":{"properties":{"partnerLoginId":{"expose":true,"access_type":"public_method","serialized_name":"partnerLoginId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPartnerLoginId","setter":"setPartnerLoginId"},"type":"string"},"partnerTransactionKey":{"expose":true,"access_type":"public_method","serialized_name":"partnerTransactionKey","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPartnerTransactionKey","setter":"setPartnerTransactionKey"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\IsAliveRequest":{"xml_root_name":"isAliveRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"refId":{"expose":true,"access_type":"public_method","serialized_name":"refId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefId","setter":"setRefId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\IsAliveResponse":{"xml_root_name":"isAliveResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\KeyBlockType":{"properties":{"value":{"expose":true,"access_type":"public_method","serialized_name":"Value","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValue","setter":"setValue"},"type":"net\\authorize\\api\\contract\\v1\\KeyValueType"}}},"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\DeviceInfoAType":{"properties":{"description":{"expose":true,"access_type":"public_method","serialized_name":"Description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\EncryptedDataAType":{"properties":{"value":{"expose":true,"access_type":"public_method","serialized_name":"Value","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValue","setter":"setValue"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\ModeAType":{"properties":{"pIN":{"expose":true,"access_type":"public_method","serialized_name":"PIN","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPIN","setter":"setPIN"},"type":"string"},"data":{"expose":true,"access_type":"public_method","serialized_name":"Data","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getData","setter":"setData"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType":{"properties":{"operation":{"expose":true,"access_type":"public_method","serialized_name":"Operation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOperation","setter":"setOperation"},"type":"string"},"mode":{"expose":true,"access_type":"public_method","serialized_name":"Mode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMode","setter":"setMode"},"type":"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\ModeAType"},"deviceInfo":{"expose":true,"access_type":"public_method","serialized_name":"DeviceInfo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDeviceInfo","setter":"setDeviceInfo"},"type":"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\DeviceInfoAType"},"encryptedData":{"expose":true,"access_type":"public_method","serialized_name":"EncryptedData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEncryptedData","setter":"setEncryptedData"},"type":"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType\\EncryptedDataAType"}}},"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType":{"properties":{"dUKPT":{"expose":true,"access_type":"public_method","serialized_name":"DUKPT","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDUKPT","setter":"setDUKPT"},"type":"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType\\DUKPTAType"}}},"net\\authorize\\api\\contract\\v1\\KeyValueType":{"properties":{"encoding":{"expose":true,"access_type":"public_method","serialized_name":"Encoding","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEncoding","setter":"setEncoding"},"type":"string"},"encryptionAlgorithm":{"expose":true,"access_type":"public_method","serialized_name":"EncryptionAlgorithm","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEncryptionAlgorithm","setter":"setEncryptionAlgorithm"},"type":"string"},"scheme":{"expose":true,"access_type":"public_method","serialized_name":"Scheme","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getScheme","setter":"setScheme"},"type":"net\\authorize\\api\\contract\\v1\\KeyManagementSchemeType"}}},"net\\authorize\\api\\contract\\v1\\LineItemType":{"properties":{"itemId":{"expose":true,"access_type":"public_method","serialized_name":"itemId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getItemId","setter":"setItemId"},"type":"string"},"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"},"quantity":{"expose":true,"access_type":"public_method","serialized_name":"quantity","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getQuantity","setter":"setQuantity"},"type":"float"},"unitPrice":{"expose":true,"access_type":"public_method","serialized_name":"unitPrice","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUnitPrice","setter":"setUnitPrice"},"type":"float"},"taxable":{"expose":true,"access_type":"public_method","serialized_name":"taxable","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxable","setter":"setTaxable"},"type":"boolean"},"unitOfMeasure":{"expose":true,"access_type":"public_method","serialized_name":"unitOfMeasure","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUnitOfMeasure","setter":"setUnitOfMeasure"},"type":"string"},"typeOfSupply":{"expose":true,"access_type":"public_method","serialized_name":"typeOfSupply","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTypeOfSupply","setter":"setTypeOfSupply"},"type":"string"},"taxRate":{"expose":true,"access_type":"public_method","serialized_name":"taxRate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxRate","setter":"setTaxRate"},"type":"float"},"taxAmount":{"expose":true,"access_type":"public_method","serialized_name":"taxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxAmount","setter":"setTaxAmount"},"type":"float"},"nationalTax":{"expose":true,"access_type":"public_method","serialized_name":"nationalTax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNationalTax","setter":"setNationalTax"},"type":"float"},"localTax":{"expose":true,"access_type":"public_method","serialized_name":"localTax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLocalTax","setter":"setLocalTax"},"type":"float"},"vatRate":{"expose":true,"access_type":"public_method","serialized_name":"vatRate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVatRate","setter":"setVatRate"},"type":"float"},"alternateTaxId":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxId","setter":"setAlternateTaxId"},"type":"string"},"alternateTaxType":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxType","setter":"setAlternateTaxType"},"type":"string"},"alternateTaxTypeApplied":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxTypeApplied","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxTypeApplied","setter":"setAlternateTaxTypeApplied"},"type":"string"},"alternateTaxRate":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxRate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxRate","setter":"setAlternateTaxRate"},"type":"float"},"alternateTaxAmount":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxAmount","setter":"setAlternateTaxAmount"},"type":"float"},"totalAmount":{"expose":true,"access_type":"public_method","serialized_name":"totalAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalAmount","setter":"setTotalAmount"},"type":"float"},"commodityCode":{"expose":true,"access_type":"public_method","serialized_name":"commodityCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCommodityCode","setter":"setCommodityCode"},"type":"string"},"productCode":{"expose":true,"access_type":"public_method","serialized_name":"productCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProductCode","setter":"setProductCode"},"type":"string"},"productSKU":{"expose":true,"access_type":"public_method","serialized_name":"productSKU","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProductSKU","setter":"setProductSKU"},"type":"string"},"discountRate":{"expose":true,"access_type":"public_method","serialized_name":"discountRate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDiscountRate","setter":"setDiscountRate"},"type":"float"},"discountAmount":{"expose":true,"access_type":"public_method","serialized_name":"discountAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDiscountAmount","setter":"setDiscountAmount"},"type":"float"},"taxIncludedInTotal":{"expose":true,"access_type":"public_method","serialized_name":"taxIncludedInTotal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxIncludedInTotal","setter":"setTaxIncludedInTotal"},"type":"boolean"},"taxIsAfterDiscount":{"expose":true,"access_type":"public_method","serialized_name":"taxIsAfterDiscount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxIsAfterDiscount","setter":"setTaxIsAfterDiscount"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\ListOfAUDetailsType":{"properties":{"auUpdate":{"expose":true,"access_type":"public_method","serialized_name":"auUpdate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuUpdate","setter":"setAuUpdate"},"xml_list":{"inline":true,"entry_name":"auUpdate","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"},"auDelete":{"expose":true,"access_type":"public_method","serialized_name":"auDelete","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuDelete","setter":"setAuDelete"},"xml_list":{"inline":true,"entry_name":"auDelete","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\LogoutRequest":{"xml_root_name":"logoutRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\LogoutResponse":{"xml_root_name":"logoutResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\MerchantAuthenticationType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"transactionKey":{"expose":true,"access_type":"public_method","serialized_name":"transactionKey","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionKey","setter":"setTransactionKey"},"type":"string"},"sessionToken":{"expose":true,"access_type":"public_method","serialized_name":"sessionToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSessionToken","setter":"setSessionToken"},"type":"string"},"password":{"expose":true,"access_type":"public_method","serialized_name":"password","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPassword","setter":"setPassword"},"type":"string"},"impersonationAuthentication":{"expose":true,"access_type":"public_method","serialized_name":"impersonationAuthentication","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getImpersonationAuthentication","setter":"setImpersonationAuthentication"},"type":"net\\authorize\\api\\contract\\v1\\ImpersonationAuthenticationType"},"fingerPrint":{"expose":true,"access_type":"public_method","serialized_name":"fingerPrint","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFingerPrint","setter":"setFingerPrint"},"type":"net\\authorize\\api\\contract\\v1\\FingerPrintType"},"clientKey":{"expose":true,"access_type":"public_method","serialized_name":"clientKey","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getClientKey","setter":"setClientKey"},"type":"string"},"accessToken":{"expose":true,"access_type":"public_method","serialized_name":"accessToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccessToken","setter":"setAccessToken"},"type":"string"},"mobileDeviceId":{"expose":true,"access_type":"public_method","serialized_name":"mobileDeviceId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMobileDeviceId","setter":"setMobileDeviceId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\MerchantContactType":{"properties":{"merchantName":{"expose":true,"access_type":"public_method","serialized_name":"merchantName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantName","setter":"setMerchantName"},"type":"string"},"merchantAddress":{"expose":true,"access_type":"public_method","serialized_name":"merchantAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantAddress","setter":"setMerchantAddress"},"type":"string"},"merchantCity":{"expose":true,"access_type":"public_method","serialized_name":"merchantCity","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantCity","setter":"setMerchantCity"},"type":"string"},"merchantState":{"expose":true,"access_type":"public_method","serialized_name":"merchantState","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantState","setter":"setMerchantState"},"type":"string"},"merchantZip":{"expose":true,"access_type":"public_method","serialized_name":"merchantZip","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantZip","setter":"setMerchantZip"},"type":"string"},"merchantPhone":{"expose":true,"access_type":"public_method","serialized_name":"merchantPhone","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantPhone","setter":"setMerchantPhone"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\MessagesType\\MessageAType":{"properties":{"code":{"expose":true,"access_type":"public_method","serialized_name":"code","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCode","setter":"setCode"},"type":"string"},"text":{"expose":true,"access_type":"public_method","serialized_name":"text","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getText","setter":"setText"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\MessagesType":{"properties":{"resultCode":{"expose":true,"access_type":"public_method","serialized_name":"resultCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResultCode","setter":"setResultCode"},"type":"string"},"message":{"expose":true,"access_type":"public_method","serialized_name":"message","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMessage","setter":"setMessage"},"xml_list":{"inline":true,"entry_name":"message","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\MobileDeviceLoginRequest":{"xml_root_name":"mobileDeviceLoginRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\MobileDeviceLoginResponse":{"xml_root_name":"mobileDeviceLoginResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"merchantContact":{"expose":true,"access_type":"public_method","serialized_name":"merchantContact","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantContact","setter":"setMerchantContact"},"type":"net\\authorize\\api\\contract\\v1\\MerchantContactType"},"userPermissions":{"expose":true,"access_type":"public_method","serialized_name":"userPermissions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUserPermissions","setter":"setUserPermissions"},"type":"array","xml_list":{"inline":false,"skip_when_empty":false,"entry_name":"permission","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"merchantAccount":{"expose":true,"access_type":"public_method","serialized_name":"merchantAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantAccount","setter":"setMerchantAccount"},"type":"net\\authorize\\api\\contract\\v1\\TransRetailInfoType"}}},"net\\authorize\\api\\contract\\v1\\MobileDeviceRegistrationRequest":{"xml_root_name":"mobileDeviceRegistrationRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"mobileDevice":{"expose":true,"access_type":"public_method","serialized_name":"mobileDevice","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMobileDevice","setter":"setMobileDevice"},"type":"net\\authorize\\api\\contract\\v1\\MobileDeviceType"}}},"net\\authorize\\api\\contract\\v1\\MobileDeviceRegistrationResponse":{"xml_root_name":"mobileDeviceRegistrationResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\MobileDeviceType":{"properties":{"mobileDeviceId":{"expose":true,"access_type":"public_method","serialized_name":"mobileDeviceId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMobileDeviceId","setter":"setMobileDeviceId"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"},"phoneNumber":{"expose":true,"access_type":"public_method","serialized_name":"phoneNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPhoneNumber","setter":"setPhoneNumber"},"type":"string"},"devicePlatform":{"expose":true,"access_type":"public_method","serialized_name":"devicePlatform","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDevicePlatform","setter":"setDevicePlatform"},"type":"string"},"deviceActivation":{"expose":true,"access_type":"public_method","serialized_name":"deviceActivation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDeviceActivation","setter":"setDeviceActivation"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\NameAndAddressType":{"properties":{"firstName":{"expose":true,"access_type":"public_method","serialized_name":"firstName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFirstName","setter":"setFirstName"},"type":"string"},"lastName":{"expose":true,"access_type":"public_method","serialized_name":"lastName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLastName","setter":"setLastName"},"type":"string"},"company":{"expose":true,"access_type":"public_method","serialized_name":"company","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCompany","setter":"setCompany"},"type":"string"},"address":{"expose":true,"access_type":"public_method","serialized_name":"address","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAddress","setter":"setAddress"},"type":"string"},"city":{"expose":true,"access_type":"public_method","serialized_name":"city","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCity","setter":"setCity"},"type":"string"},"state":{"expose":true,"access_type":"public_method","serialized_name":"state","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getState","setter":"setState"},"type":"string"},"zip":{"expose":true,"access_type":"public_method","serialized_name":"zip","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getZip","setter":"setZip"},"type":"string"},"country":{"expose":true,"access_type":"public_method","serialized_name":"country","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCountry","setter":"setCountry"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\OpaqueDataType":{"properties":{"dataDescriptor":{"expose":true,"access_type":"public_method","serialized_name":"dataDescriptor","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDataDescriptor","setter":"setDataDescriptor"},"type":"string"},"dataValue":{"expose":true,"access_type":"public_method","serialized_name":"dataValue","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDataValue","setter":"setDataValue"},"type":"string"},"dataKey":{"expose":true,"access_type":"public_method","serialized_name":"dataKey","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDataKey","setter":"setDataKey"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\OrderExType":{"properties":{"purchaseOrderNumber":{"expose":true,"access_type":"public_method","serialized_name":"purchaseOrderNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPurchaseOrderNumber","setter":"setPurchaseOrderNumber"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\OrderType":{"properties":{"invoiceNumber":{"expose":true,"access_type":"public_method","serialized_name":"invoiceNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getInvoiceNumber","setter":"setInvoiceNumber"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"},"discountAmount":{"expose":true,"access_type":"public_method","serialized_name":"discountAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDiscountAmount","setter":"setDiscountAmount"},"type":"float"},"taxIsAfterDiscount":{"expose":true,"access_type":"public_method","serialized_name":"taxIsAfterDiscount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxIsAfterDiscount","setter":"setTaxIsAfterDiscount"},"type":"boolean"},"totalTaxTypeCode":{"expose":true,"access_type":"public_method","serialized_name":"totalTaxTypeCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalTaxTypeCode","setter":"setTotalTaxTypeCode"},"type":"string"},"purchaserVATRegistrationNumber":{"expose":true,"access_type":"public_method","serialized_name":"purchaserVATRegistrationNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPurchaserVATRegistrationNumber","setter":"setPurchaserVATRegistrationNumber"},"type":"string"},"merchantVATRegistrationNumber":{"expose":true,"access_type":"public_method","serialized_name":"merchantVATRegistrationNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantVATRegistrationNumber","setter":"setMerchantVATRegistrationNumber"},"type":"string"},"vatInvoiceReferenceNumber":{"expose":true,"access_type":"public_method","serialized_name":"vatInvoiceReferenceNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVatInvoiceReferenceNumber","setter":"setVatInvoiceReferenceNumber"},"type":"string"},"purchaserCode":{"expose":true,"access_type":"public_method","serialized_name":"purchaserCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPurchaserCode","setter":"setPurchaserCode"},"type":"string"},"summaryCommodityCode":{"expose":true,"access_type":"public_method","serialized_name":"summaryCommodityCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSummaryCommodityCode","setter":"setSummaryCommodityCode"},"type":"string"},"purchaseOrderDateUTC":{"expose":true,"access_type":"public_method","serialized_name":"purchaseOrderDateUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPurchaseOrderDateUTC","setter":"setPurchaseOrderDateUTC"},"type":"DateTime<'Y-m-d'>"},"supplierOrderReference":{"expose":true,"access_type":"public_method","serialized_name":"supplierOrderReference","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSupplierOrderReference","setter":"setSupplierOrderReference"},"type":"string"},"authorizedContactName":{"expose":true,"access_type":"public_method","serialized_name":"authorizedContactName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthorizedContactName","setter":"setAuthorizedContactName"},"type":"string"},"cardAcceptorRefNumber":{"expose":true,"access_type":"public_method","serialized_name":"cardAcceptorRefNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardAcceptorRefNumber","setter":"setCardAcceptorRefNumber"},"type":"string"},"amexDataTAA1":{"expose":true,"access_type":"public_method","serialized_name":"amexDataTAA1","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmexDataTAA1","setter":"setAmexDataTAA1"},"type":"string"},"amexDataTAA2":{"expose":true,"access_type":"public_method","serialized_name":"amexDataTAA2","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmexDataTAA2","setter":"setAmexDataTAA2"},"type":"string"},"amexDataTAA3":{"expose":true,"access_type":"public_method","serialized_name":"amexDataTAA3","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmexDataTAA3","setter":"setAmexDataTAA3"},"type":"string"},"amexDataTAA4":{"expose":true,"access_type":"public_method","serialized_name":"amexDataTAA4","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmexDataTAA4","setter":"setAmexDataTAA4"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\OtherTaxType":{"properties":{"nationalTaxAmount":{"expose":true,"access_type":"public_method","serialized_name":"nationalTaxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNationalTaxAmount","setter":"setNationalTaxAmount"},"type":"float"},"localTaxAmount":{"expose":true,"access_type":"public_method","serialized_name":"localTaxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLocalTaxAmount","setter":"setLocalTaxAmount"},"type":"float"},"alternateTaxAmount":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxAmount","setter":"setAlternateTaxAmount"},"type":"float"},"alternateTaxId":{"expose":true,"access_type":"public_method","serialized_name":"alternateTaxId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAlternateTaxId","setter":"setAlternateTaxId"},"type":"string"},"vatTaxRate":{"expose":true,"access_type":"public_method","serialized_name":"vatTaxRate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVatTaxRate","setter":"setVatTaxRate"},"type":"float"},"vatTaxAmount":{"expose":true,"access_type":"public_method","serialized_name":"vatTaxAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVatTaxAmount","setter":"setVatTaxAmount"},"type":"float"}}},"net\\authorize\\api\\contract\\v1\\PagingType":{"properties":{"limit":{"expose":true,"access_type":"public_method","serialized_name":"limit","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLimit","setter":"setLimit"},"type":"integer"},"offset":{"expose":true,"access_type":"public_method","serialized_name":"offset","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOffset","setter":"setOffset"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\PayPalType":{"properties":{"successUrl":{"expose":true,"access_type":"public_method","serialized_name":"successUrl","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSuccessUrl","setter":"setSuccessUrl"},"type":"string"},"cancelUrl":{"expose":true,"access_type":"public_method","serialized_name":"cancelUrl","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCancelUrl","setter":"setCancelUrl"},"type":"string"},"paypalLc":{"expose":true,"access_type":"public_method","serialized_name":"paypalLc","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaypalLc","setter":"setPaypalLc"},"type":"string"},"paypalHdrImg":{"expose":true,"access_type":"public_method","serialized_name":"paypalHdrImg","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaypalHdrImg","setter":"setPaypalHdrImg"},"type":"string"},"paypalPayflowcolor":{"expose":true,"access_type":"public_method","serialized_name":"paypalPayflowcolor","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaypalPayflowcolor","setter":"setPaypalPayflowcolor"},"type":"string"},"payerID":{"expose":true,"access_type":"public_method","serialized_name":"payerID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayerID","setter":"setPayerID"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\PaymentDetailsType":{"properties":{"currency":{"expose":true,"access_type":"public_method","serialized_name":"currency","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCurrency","setter":"setCurrency"},"type":"string"},"promoCode":{"expose":true,"access_type":"public_method","serialized_name":"promoCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPromoCode","setter":"setPromoCode"},"type":"string"},"misc":{"expose":true,"access_type":"public_method","serialized_name":"misc","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMisc","setter":"setMisc"},"type":"string"},"giftWrap":{"expose":true,"access_type":"public_method","serialized_name":"giftWrap","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getGiftWrap","setter":"setGiftWrap"},"type":"string"},"discount":{"expose":true,"access_type":"public_method","serialized_name":"discount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDiscount","setter":"setDiscount"},"type":"string"},"tax":{"expose":true,"access_type":"public_method","serialized_name":"tax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTax","setter":"setTax"},"type":"string"},"shippingHandling":{"expose":true,"access_type":"public_method","serialized_name":"shippingHandling","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShippingHandling","setter":"setShippingHandling"},"type":"string"},"subTotal":{"expose":true,"access_type":"public_method","serialized_name":"subTotal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubTotal","setter":"setSubTotal"},"type":"string"},"orderID":{"expose":true,"access_type":"public_method","serialized_name":"orderID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderID","setter":"setOrderID"},"type":"string"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\PaymentEmvType":{"properties":{"emvData":{"expose":true,"access_type":"public_method","serialized_name":"emvData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmvData","setter":"setEmvData"},"type":"W3\\XMLSchema\\2001\\AnyType"},"emvDescriptor":{"expose":true,"access_type":"public_method","serialized_name":"emvDescriptor","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmvDescriptor","setter":"setEmvDescriptor"},"type":"W3\\XMLSchema\\2001\\AnyType"},"emvVersion":{"expose":true,"access_type":"public_method","serialized_name":"emvVersion","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmvVersion","setter":"setEmvVersion"},"type":"W3\\XMLSchema\\2001\\AnyType"}}},"net\\authorize\\api\\contract\\v1\\PaymentMaskedType":{"properties":{"creditCard":{"expose":true,"access_type":"public_method","serialized_name":"creditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreditCard","setter":"setCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardMaskedType"},"bankAccount":{"expose":true,"access_type":"public_method","serialized_name":"bankAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankAccount","setter":"setBankAccount"},"type":"net\\authorize\\api\\contract\\v1\\BankAccountMaskedType"},"tokenInformation":{"expose":true,"access_type":"public_method","serialized_name":"tokenInformation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenInformation","setter":"setTokenInformation"},"type":"net\\authorize\\api\\contract\\v1\\TokenMaskedType"}}},"net\\authorize\\api\\contract\\v1\\PaymentProfileType":{"properties":{"paymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfileId","setter":"setPaymentProfileId"},"type":"string"},"cardCode":{"expose":true,"access_type":"public_method","serialized_name":"cardCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCode","setter":"setCardCode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\PaymentScheduleType\\IntervalAType":{"properties":{"length":{"expose":true,"access_type":"public_method","serialized_name":"length","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLength","setter":"setLength"},"type":"integer"},"unit":{"expose":true,"access_type":"public_method","serialized_name":"unit","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUnit","setter":"setUnit"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\PaymentScheduleType":{"properties":{"interval":{"expose":true,"access_type":"public_method","serialized_name":"interval","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getInterval","setter":"setInterval"},"type":"net\\authorize\\api\\contract\\v1\\PaymentScheduleType\\IntervalAType"},"startDate":{"expose":true,"access_type":"public_method","serialized_name":"startDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStartDate","setter":"setStartDate"},"type":"DateTime<'Y-m-d'>"},"totalOccurrences":{"expose":true,"access_type":"public_method","serialized_name":"totalOccurrences","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalOccurrences","setter":"setTotalOccurrences"},"type":"integer"},"trialOccurrences":{"expose":true,"access_type":"public_method","serialized_name":"trialOccurrences","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrialOccurrences","setter":"setTrialOccurrences"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\PaymentSimpleType":{"properties":{"creditCard":{"expose":true,"access_type":"public_method","serialized_name":"creditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreditCard","setter":"setCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardSimpleType"},"bankAccount":{"expose":true,"access_type":"public_method","serialized_name":"bankAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankAccount","setter":"setBankAccount"},"type":"net\\authorize\\api\\contract\\v1\\BankAccountType"}}},"net\\authorize\\api\\contract\\v1\\PaymentType":{"properties":{"creditCard":{"expose":true,"access_type":"public_method","serialized_name":"creditCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreditCard","setter":"setCreditCard"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardType"},"bankAccount":{"expose":true,"access_type":"public_method","serialized_name":"bankAccount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankAccount","setter":"setBankAccount"},"type":"net\\authorize\\api\\contract\\v1\\BankAccountType"},"trackData":{"expose":true,"access_type":"public_method","serialized_name":"trackData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTrackData","setter":"setTrackData"},"type":"net\\authorize\\api\\contract\\v1\\CreditCardTrackType"},"encryptedTrackData":{"expose":true,"access_type":"public_method","serialized_name":"encryptedTrackData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEncryptedTrackData","setter":"setEncryptedTrackData"},"type":"net\\authorize\\api\\contract\\v1\\EncryptedTrackDataType"},"payPal":{"expose":true,"access_type":"public_method","serialized_name":"payPal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayPal","setter":"setPayPal"},"type":"net\\authorize\\api\\contract\\v1\\PayPalType"},"opaqueData":{"expose":true,"access_type":"public_method","serialized_name":"opaqueData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOpaqueData","setter":"setOpaqueData"},"type":"net\\authorize\\api\\contract\\v1\\OpaqueDataType"},"emv":{"expose":true,"access_type":"public_method","serialized_name":"emv","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmv","setter":"setEmv"},"type":"net\\authorize\\api\\contract\\v1\\PaymentEmvType"},"dataSource":{"expose":true,"access_type":"public_method","serialized_name":"dataSource","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDataSource","setter":"setDataSource"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\PermissionType":{"properties":{"permissionName":{"expose":true,"access_type":"public_method","serialized_name":"permissionName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPermissionName","setter":"setPermissionName"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ProcessingOptionsType":{"properties":{"isFirstRecurringPayment":{"expose":true,"access_type":"public_method","serialized_name":"isFirstRecurringPayment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsFirstRecurringPayment","setter":"setIsFirstRecurringPayment"},"type":"boolean"},"isFirstSubsequentAuth":{"expose":true,"access_type":"public_method","serialized_name":"isFirstSubsequentAuth","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsFirstSubsequentAuth","setter":"setIsFirstSubsequentAuth"},"type":"boolean"},"isSubsequentAuth":{"expose":true,"access_type":"public_method","serialized_name":"isSubsequentAuth","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsSubsequentAuth","setter":"setIsSubsequentAuth"},"type":"boolean"},"isStoredCredentials":{"expose":true,"access_type":"public_method","serialized_name":"isStoredCredentials","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsStoredCredentials","setter":"setIsStoredCredentials"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\ProcessorType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"integer"},"cardTypes":{"expose":true,"access_type":"public_method","serialized_name":"cardTypes","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardTypes","setter":"setCardTypes"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"cardType","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\ProfileTransAmountType":{"properties":{"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"tax":{"expose":true,"access_type":"public_method","serialized_name":"tax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTax","setter":"setTax"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"shipping":{"expose":true,"access_type":"public_method","serialized_name":"shipping","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipping","setter":"setShipping"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"duty":{"expose":true,"access_type":"public_method","serialized_name":"duty","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDuty","setter":"setDuty"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"lineItems":{"expose":true,"access_type":"public_method","serialized_name":"lineItems","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLineItems","setter":"setLineItems"},"xml_list":{"inline":true,"entry_name":"lineItems","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransAuthCaptureType":{"properties":[]},"net\\authorize\\api\\contract\\v1\\ProfileTransAuthOnlyType":{"properties":[]},"net\\authorize\\api\\contract\\v1\\ProfileTransCaptureOnlyType":{"properties":{"approvalCode":{"expose":true,"access_type":"public_method","serialized_name":"approvalCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getApprovalCode","setter":"setApprovalCode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransOrderType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerShippingAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressId","setter":"setCustomerShippingAddressId"},"type":"string"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderExType"},"taxExempt":{"expose":true,"access_type":"public_method","serialized_name":"taxExempt","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxExempt","setter":"setTaxExempt"},"type":"boolean"},"recurringBilling":{"expose":true,"access_type":"public_method","serialized_name":"recurringBilling","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRecurringBilling","setter":"setRecurringBilling"},"type":"boolean"},"cardCode":{"expose":true,"access_type":"public_method","serialized_name":"cardCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCode","setter":"setCardCode"},"type":"string"},"splitTenderId":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderId","setter":"setSplitTenderId"},"type":"string"},"processingOptions":{"expose":true,"access_type":"public_method","serialized_name":"processingOptions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProcessingOptions","setter":"setProcessingOptions"},"type":"net\\authorize\\api\\contract\\v1\\ProcessingOptionsType"},"subsequentAuthInformation":{"expose":true,"access_type":"public_method","serialized_name":"subsequentAuthInformation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubsequentAuthInformation","setter":"setSubsequentAuthInformation"},"type":"net\\authorize\\api\\contract\\v1\\SubsequentAuthInformationType"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransPriorAuthCaptureType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerShippingAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressId","setter":"setCustomerShippingAddressId"},"type":"string"},"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransRefundType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerShippingAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressId","setter":"setCustomerShippingAddressId"},"type":"string"},"creditCardNumberMasked":{"expose":true,"access_type":"public_method","serialized_name":"creditCardNumberMasked","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreditCardNumberMasked","setter":"setCreditCardNumberMasked"},"type":"string"},"bankRoutingNumberMasked":{"expose":true,"access_type":"public_method","serialized_name":"bankRoutingNumberMasked","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankRoutingNumberMasked","setter":"setBankRoutingNumberMasked"},"type":"string"},"bankAccountNumberMasked":{"expose":true,"access_type":"public_method","serialized_name":"bankAccountNumberMasked","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankAccountNumberMasked","setter":"setBankAccountNumberMasked"},"type":"string"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderExType"},"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransVoidType":{"properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerShippingAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressId","setter":"setCustomerShippingAddressId"},"type":"string"},"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ProfileTransactionType":{"properties":{"profileTransAuthCapture":{"expose":true,"access_type":"public_method","serialized_name":"profileTransAuthCapture","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransAuthCapture","setter":"setProfileTransAuthCapture"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransAuthCaptureType"},"profileTransAuthOnly":{"expose":true,"access_type":"public_method","serialized_name":"profileTransAuthOnly","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransAuthOnly","setter":"setProfileTransAuthOnly"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransAuthOnlyType"},"profileTransPriorAuthCapture":{"expose":true,"access_type":"public_method","serialized_name":"profileTransPriorAuthCapture","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransPriorAuthCapture","setter":"setProfileTransPriorAuthCapture"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransPriorAuthCaptureType"},"profileTransCaptureOnly":{"expose":true,"access_type":"public_method","serialized_name":"profileTransCaptureOnly","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransCaptureOnly","setter":"setProfileTransCaptureOnly"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransCaptureOnlyType"},"profileTransRefund":{"expose":true,"access_type":"public_method","serialized_name":"profileTransRefund","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransRefund","setter":"setProfileTransRefund"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransRefundType"},"profileTransVoid":{"expose":true,"access_type":"public_method","serialized_name":"profileTransVoid","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfileTransVoid","setter":"setProfileTransVoid"},"type":"net\\authorize\\api\\contract\\v1\\ProfileTransVoidType"}}},"net\\authorize\\api\\contract\\v1\\ReturnedItemType":{"properties":{"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"string"},"dateUTC":{"expose":true,"access_type":"public_method","serialized_name":"dateUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDateUTC","setter":"setDateUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"dateLocal":{"expose":true,"access_type":"public_method","serialized_name":"dateLocal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDateLocal","setter":"setDateLocal"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"code":{"expose":true,"access_type":"public_method","serialized_name":"code","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCode","setter":"setCode"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\SecurePaymentContainerErrorType":{"properties":{"code":{"expose":true,"access_type":"public_method","serialized_name":"code","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCode","setter":"setCode"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\SecurePaymentContainerRequest":{"xml_root_name":"securePaymentContainerRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"data":{"expose":true,"access_type":"public_method","serialized_name":"data","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getData","setter":"setData"},"type":"net\\authorize\\api\\contract\\v1\\WebCheckOutDataType"}}},"net\\authorize\\api\\contract\\v1\\SecurePaymentContainerResponse":{"xml_root_name":"securePaymentContainerResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"opaqueData":{"expose":true,"access_type":"public_method","serialized_name":"opaqueData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOpaqueData","setter":"setOpaqueData"},"type":"net\\authorize\\api\\contract\\v1\\OpaqueDataType"}}},"net\\authorize\\api\\contract\\v1\\SendCustomerTransactionReceiptRequest":{"xml_root_name":"sendCustomerTransactionReceiptRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"customerEmail":{"expose":true,"access_type":"public_method","serialized_name":"customerEmail","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerEmail","setter":"setCustomerEmail"},"type":"string"},"emailSettings":{"expose":true,"access_type":"public_method","serialized_name":"emailSettings","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmailSettings","setter":"setEmailSettings"},"type":"net\\authorize\\api\\contract\\v1\\EmailSettingsType"}}},"net\\authorize\\api\\contract\\v1\\SendCustomerTransactionReceiptResponse":{"xml_root_name":"sendCustomerTransactionReceiptResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\SettingType":{"properties":{"settingName":{"expose":true,"access_type":"public_method","serialized_name":"settingName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettingName","setter":"setSettingName"},"type":"string"},"settingValue":{"expose":true,"access_type":"public_method","serialized_name":"settingValue","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettingValue","setter":"setSettingValue"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\SolutionType":{"properties":{"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"string"},"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"vendorName":{"expose":true,"access_type":"public_method","serialized_name":"vendorName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getVendorName","setter":"setVendorName"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\SubMerchantType":{"properties":{"identifier":{"expose":true,"access_type":"public_method","serialized_name":"identifier","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIdentifier","setter":"setIdentifier"},"type":"string"},"doingBusinessAs":{"expose":true,"access_type":"public_method","serialized_name":"doingBusinessAs","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDoingBusinessAs","setter":"setDoingBusinessAs"},"type":"string"},"paymentServiceProviderName":{"expose":true,"access_type":"public_method","serialized_name":"paymentServiceProviderName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentServiceProviderName","setter":"setPaymentServiceProviderName"},"type":"string"},"paymentServiceFacilitator":{"expose":true,"access_type":"public_method","serialized_name":"paymentServiceFacilitator","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentServiceFacilitator","setter":"setPaymentServiceFacilitator"},"type":"string"},"streetAddress":{"expose":true,"access_type":"public_method","serialized_name":"streetAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStreetAddress","setter":"setStreetAddress"},"type":"string"},"phone":{"expose":true,"access_type":"public_method","serialized_name":"phone","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPhone","setter":"setPhone"},"type":"string"},"email":{"expose":true,"access_type":"public_method","serialized_name":"email","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmail","setter":"setEmail"},"type":"string"},"postalCode":{"expose":true,"access_type":"public_method","serialized_name":"postalCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPostalCode","setter":"setPostalCode"},"type":"string"},"city":{"expose":true,"access_type":"public_method","serialized_name":"city","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCity","setter":"setCity"},"type":"string"},"regionCode":{"expose":true,"access_type":"public_method","serialized_name":"regionCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRegionCode","setter":"setRegionCode"},"type":"string"},"countryCode":{"expose":true,"access_type":"public_method","serialized_name":"countryCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCountryCode","setter":"setCountryCode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\SubscriptionCustomerProfileType":{"properties":{"paymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfile","setter":"setPaymentProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileMaskedType"},"shippingProfile":{"expose":true,"access_type":"public_method","serialized_name":"shippingProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShippingProfile","setter":"setShippingProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressExType"}}},"net\\authorize\\api\\contract\\v1\\SubscriptionDetailType":{"properties":{"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"integer"},"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"status":{"expose":true,"access_type":"public_method","serialized_name":"status","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getStatus","setter":"setStatus"},"type":"string"},"createTimeStampUTC":{"expose":true,"access_type":"public_method","serialized_name":"createTimeStampUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCreateTimeStampUTC","setter":"setCreateTimeStampUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"firstName":{"expose":true,"access_type":"public_method","serialized_name":"firstName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFirstName","setter":"setFirstName"},"type":"string"},"lastName":{"expose":true,"access_type":"public_method","serialized_name":"lastName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLastName","setter":"setLastName"},"type":"string"},"totalOccurrences":{"expose":true,"access_type":"public_method","serialized_name":"totalOccurrences","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTotalOccurrences","setter":"setTotalOccurrences"},"type":"integer"},"pastOccurrences":{"expose":true,"access_type":"public_method","serialized_name":"pastOccurrences","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPastOccurrences","setter":"setPastOccurrences"},"type":"integer"},"paymentMethod":{"expose":true,"access_type":"public_method","serialized_name":"paymentMethod","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentMethod","setter":"setPaymentMethod"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"invoice":{"expose":true,"access_type":"public_method","serialized_name":"invoice","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getInvoice","setter":"setInvoice"},"type":"string"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"currencyCode":{"expose":true,"access_type":"public_method","serialized_name":"currencyCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCurrencyCode","setter":"setCurrencyCode"},"type":"string"},"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"integer"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"integer"},"customerShippingProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingProfileId","setter":"setCustomerShippingProfileId"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\SubscriptionPaymentType":{"properties":{"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"integer"},"payNum":{"expose":true,"access_type":"public_method","serialized_name":"payNum","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayNum","setter":"setPayNum"},"type":"integer"}}},"net\\authorize\\api\\contract\\v1\\SubsequentAuthInformationType":{"properties":{"originalNetworkTransId":{"expose":true,"access_type":"public_method","serialized_name":"originalNetworkTransId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOriginalNetworkTransId","setter":"setOriginalNetworkTransId"},"type":"string"},"reason":{"expose":true,"access_type":"public_method","serialized_name":"reason","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReason","setter":"setReason"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TokenMaskedType":{"properties":{"tokenSource":{"expose":true,"access_type":"public_method","serialized_name":"tokenSource","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenSource","setter":"setTokenSource"},"type":"string"},"tokenNumber":{"expose":true,"access_type":"public_method","serialized_name":"tokenNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenNumber","setter":"setTokenNumber"},"type":"string"},"expirationDate":{"expose":true,"access_type":"public_method","serialized_name":"expirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getExpirationDate","setter":"setExpirationDate"},"type":"string"},"tokenRequestorId":{"expose":true,"access_type":"public_method","serialized_name":"tokenRequestorId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTokenRequestorId","setter":"setTokenRequestorId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransRetailInfoType":{"properties":{"marketType":{"expose":true,"access_type":"public_method","serialized_name":"marketType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMarketType","setter":"setMarketType"},"type":"string"},"deviceType":{"expose":true,"access_type":"public_method","serialized_name":"deviceType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDeviceType","setter":"setDeviceType"},"type":"string"},"customerSignature":{"expose":true,"access_type":"public_method","serialized_name":"customerSignature","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerSignature","setter":"setCustomerSignature"},"type":"string"},"terminalNumber":{"expose":true,"access_type":"public_method","serialized_name":"terminalNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTerminalNumber","setter":"setTerminalNumber"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionDetailsType\\EmvDetailsAType\\TagAType":{"properties":{"tagId":{"expose":true,"access_type":"public_method","serialized_name":"tagId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTagId","setter":"setTagId"},"type":"string"},"data":{"expose":true,"access_type":"public_method","serialized_name":"data","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getData","setter":"setData"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionDetailsType\\EmvDetailsAType":{"properties":{"tag":{"expose":true,"access_type":"public_method","serialized_name":"tag","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTag","setter":"setTag"},"xml_list":{"inline":true,"entry_name":"tag","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionDetailsType":{"properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"refTransId":{"expose":true,"access_type":"public_method","serialized_name":"refTransId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefTransId","setter":"setRefTransId"},"type":"string"},"splitTenderId":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderId","setter":"setSplitTenderId"},"type":"string"},"submitTimeUTC":{"expose":true,"access_type":"public_method","serialized_name":"submitTimeUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubmitTimeUTC","setter":"setSubmitTimeUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"submitTimeLocal":{"expose":true,"access_type":"public_method","serialized_name":"submitTimeLocal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubmitTimeLocal","setter":"setSubmitTimeLocal"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"transactionType":{"expose":true,"access_type":"public_method","serialized_name":"transactionType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionType","setter":"setTransactionType"},"type":"string"},"transactionStatus":{"expose":true,"access_type":"public_method","serialized_name":"transactionStatus","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionStatus","setter":"setTransactionStatus"},"type":"string"},"responseCode":{"expose":true,"access_type":"public_method","serialized_name":"responseCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseCode","setter":"setResponseCode"},"type":"integer"},"responseReasonCode":{"expose":true,"access_type":"public_method","serialized_name":"responseReasonCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseReasonCode","setter":"setResponseReasonCode"},"type":"integer"},"subscription":{"expose":true,"access_type":"public_method","serialized_name":"subscription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscription","setter":"setSubscription"},"type":"net\\authorize\\api\\contract\\v1\\SubscriptionPaymentType"},"responseReasonDescription":{"expose":true,"access_type":"public_method","serialized_name":"responseReasonDescription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseReasonDescription","setter":"setResponseReasonDescription"},"type":"string"},"authCode":{"expose":true,"access_type":"public_method","serialized_name":"authCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthCode","setter":"setAuthCode"},"type":"string"},"aVSResponse":{"expose":true,"access_type":"public_method","serialized_name":"AVSResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAVSResponse","setter":"setAVSResponse"},"type":"string"},"cardCodeResponse":{"expose":true,"access_type":"public_method","serialized_name":"cardCodeResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCodeResponse","setter":"setCardCodeResponse"},"type":"string"},"cAVVResponse":{"expose":true,"access_type":"public_method","serialized_name":"CAVVResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCAVVResponse","setter":"setCAVVResponse"},"type":"string"},"fDSFilterAction":{"expose":true,"access_type":"public_method","serialized_name":"FDSFilterAction","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFDSFilterAction","setter":"setFDSFilterAction"},"type":"string"},"fDSFilters":{"expose":true,"access_type":"public_method","serialized_name":"FDSFilters","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFDSFilters","setter":"setFDSFilters"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"FDSFilter","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"batch":{"expose":true,"access_type":"public_method","serialized_name":"batch","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBatch","setter":"setBatch"},"type":"net\\authorize\\api\\contract\\v1\\BatchDetailsType"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderExType"},"requestedAmount":{"expose":true,"access_type":"public_method","serialized_name":"requestedAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRequestedAmount","setter":"setRequestedAmount"},"type":"float"},"authAmount":{"expose":true,"access_type":"public_method","serialized_name":"authAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthAmount","setter":"setAuthAmount"},"type":"float"},"settleAmount":{"expose":true,"access_type":"public_method","serialized_name":"settleAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettleAmount","setter":"setSettleAmount"},"type":"float"},"tax":{"expose":true,"access_type":"public_method","serialized_name":"tax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTax","setter":"setTax"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"shipping":{"expose":true,"access_type":"public_method","serialized_name":"shipping","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipping","setter":"setShipping"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"duty":{"expose":true,"access_type":"public_method","serialized_name":"duty","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDuty","setter":"setDuty"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"lineItems":{"expose":true,"access_type":"public_method","serialized_name":"lineItems","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLineItems","setter":"setLineItems"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"lineItem","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"prepaidBalanceRemaining":{"expose":true,"access_type":"public_method","serialized_name":"prepaidBalanceRemaining","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPrepaidBalanceRemaining","setter":"setPrepaidBalanceRemaining"},"type":"float"},"taxExempt":{"expose":true,"access_type":"public_method","serialized_name":"taxExempt","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxExempt","setter":"setTaxExempt"},"type":"boolean"},"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentMaskedType"},"customer":{"expose":true,"access_type":"public_method","serialized_name":"customer","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomer","setter":"setCustomer"},"type":"net\\authorize\\api\\contract\\v1\\CustomerDataType"},"billTo":{"expose":true,"access_type":"public_method","serialized_name":"billTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillTo","setter":"setBillTo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"shipTo":{"expose":true,"access_type":"public_method","serialized_name":"shipTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipTo","setter":"setShipTo"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"},"recurringBilling":{"expose":true,"access_type":"public_method","serialized_name":"recurringBilling","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRecurringBilling","setter":"setRecurringBilling"},"type":"boolean"},"customerIP":{"expose":true,"access_type":"public_method","serialized_name":"customerIP","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerIP","setter":"setCustomerIP"},"type":"string"},"product":{"expose":true,"access_type":"public_method","serialized_name":"product","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProduct","setter":"setProduct"},"type":"string"},"entryMode":{"expose":true,"access_type":"public_method","serialized_name":"entryMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEntryMode","setter":"setEntryMode"},"type":"string"},"marketType":{"expose":true,"access_type":"public_method","serialized_name":"marketType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMarketType","setter":"setMarketType"},"type":"string"},"mobileDeviceId":{"expose":true,"access_type":"public_method","serialized_name":"mobileDeviceId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMobileDeviceId","setter":"setMobileDeviceId"},"type":"string"},"customerSignature":{"expose":true,"access_type":"public_method","serialized_name":"customerSignature","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerSignature","setter":"setCustomerSignature"},"type":"string"},"returnedItems":{"expose":true,"access_type":"public_method","serialized_name":"returnedItems","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getReturnedItems","setter":"setReturnedItems"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"returnedItem","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"solution":{"expose":true,"access_type":"public_method","serialized_name":"solution","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSolution","setter":"setSolution"},"type":"net\\authorize\\api\\contract\\v1\\SolutionType"},"emvDetails":{"expose":true,"access_type":"public_method","serialized_name":"emvDetails","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmvDetails","setter":"setEmvDetails"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"tag","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"},"surcharge":{"expose":true,"access_type":"public_method","serialized_name":"surcharge","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSurcharge","setter":"setSurcharge"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"employeeId":{"expose":true,"access_type":"public_method","serialized_name":"employeeId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmployeeId","setter":"setEmployeeId"},"type":"string"},"tip":{"expose":true,"access_type":"public_method","serialized_name":"tip","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTip","setter":"setTip"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"otherTax":{"expose":true,"access_type":"public_method","serialized_name":"otherTax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOtherTax","setter":"setOtherTax"},"type":"net\\authorize\\api\\contract\\v1\\OtherTaxType"},"shipFrom":{"expose":true,"access_type":"public_method","serialized_name":"shipFrom","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipFrom","setter":"setShipFrom"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"}}},"net\\authorize\\api\\contract\\v1\\TransactionListSortingType":{"properties":{"orderBy":{"expose":true,"access_type":"public_method","serialized_name":"orderBy","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderBy","setter":"setOrderBy"},"type":"string"},"orderDescending":{"expose":true,"access_type":"public_method","serialized_name":"orderDescending","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrderDescending","setter":"setOrderDescending"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\TransactionRequestType\\UserFieldsAType":{"properties":{"userField":{"expose":true,"access_type":"public_method","serialized_name":"userField","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUserField","setter":"setUserField"},"xml_list":{"inline":true,"entry_name":"userField","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionRequestType":{"properties":{"transactionType":{"expose":true,"access_type":"public_method","serialized_name":"transactionType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionType","setter":"setTransactionType"},"type":"string"},"amount":{"expose":true,"access_type":"public_method","serialized_name":"amount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAmount","setter":"setAmount"},"type":"float"},"currencyCode":{"expose":true,"access_type":"public_method","serialized_name":"currencyCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCurrencyCode","setter":"setCurrencyCode"},"type":"string"},"payment":{"expose":true,"access_type":"public_method","serialized_name":"payment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayment","setter":"setPayment"},"type":"net\\authorize\\api\\contract\\v1\\PaymentType"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfilePaymentType"},"solution":{"expose":true,"access_type":"public_method","serialized_name":"solution","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSolution","setter":"setSolution"},"type":"net\\authorize\\api\\contract\\v1\\SolutionType"},"callId":{"expose":true,"access_type":"public_method","serialized_name":"callId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCallId","setter":"setCallId"},"type":"string"},"terminalNumber":{"expose":true,"access_type":"public_method","serialized_name":"terminalNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTerminalNumber","setter":"setTerminalNumber"},"type":"string"},"authCode":{"expose":true,"access_type":"public_method","serialized_name":"authCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthCode","setter":"setAuthCode"},"type":"string"},"refTransId":{"expose":true,"access_type":"public_method","serialized_name":"refTransId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefTransId","setter":"setRefTransId"},"type":"string"},"splitTenderId":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderId","setter":"setSplitTenderId"},"type":"string"},"order":{"expose":true,"access_type":"public_method","serialized_name":"order","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOrder","setter":"setOrder"},"type":"net\\authorize\\api\\contract\\v1\\OrderType"},"lineItems":{"expose":true,"access_type":"public_method","serialized_name":"lineItems","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLineItems","setter":"setLineItems"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"lineItem","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"tax":{"expose":true,"access_type":"public_method","serialized_name":"tax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTax","setter":"setTax"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"duty":{"expose":true,"access_type":"public_method","serialized_name":"duty","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDuty","setter":"setDuty"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"shipping":{"expose":true,"access_type":"public_method","serialized_name":"shipping","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipping","setter":"setShipping"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"taxExempt":{"expose":true,"access_type":"public_method","serialized_name":"taxExempt","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTaxExempt","setter":"setTaxExempt"},"type":"boolean"},"poNumber":{"expose":true,"access_type":"public_method","serialized_name":"poNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPoNumber","setter":"setPoNumber"},"type":"string"},"customer":{"expose":true,"access_type":"public_method","serialized_name":"customer","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomer","setter":"setCustomer"},"type":"net\\authorize\\api\\contract\\v1\\CustomerDataType"},"billTo":{"expose":true,"access_type":"public_method","serialized_name":"billTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBillTo","setter":"setBillTo"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressType"},"shipTo":{"expose":true,"access_type":"public_method","serialized_name":"shipTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipTo","setter":"setShipTo"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"},"customerIP":{"expose":true,"access_type":"public_method","serialized_name":"customerIP","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerIP","setter":"setCustomerIP"},"type":"string"},"cardholderAuthentication":{"expose":true,"access_type":"public_method","serialized_name":"cardholderAuthentication","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardholderAuthentication","setter":"setCardholderAuthentication"},"type":"net\\authorize\\api\\contract\\v1\\CcAuthenticationType"},"retail":{"expose":true,"access_type":"public_method","serialized_name":"retail","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRetail","setter":"setRetail"},"type":"net\\authorize\\api\\contract\\v1\\TransRetailInfoType"},"employeeId":{"expose":true,"access_type":"public_method","serialized_name":"employeeId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmployeeId","setter":"setEmployeeId"},"type":"string"},"transactionSettings":{"expose":true,"access_type":"public_method","serialized_name":"transactionSettings","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionSettings","setter":"setTransactionSettings"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"setting","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"userFields":{"expose":true,"access_type":"public_method","serialized_name":"userFields","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUserFields","setter":"setUserFields"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"userField","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"surcharge":{"expose":true,"access_type":"public_method","serialized_name":"surcharge","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSurcharge","setter":"setSurcharge"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"merchantDescriptor":{"expose":true,"access_type":"public_method","serialized_name":"merchantDescriptor","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMerchantDescriptor","setter":"setMerchantDescriptor"},"type":"string"},"subMerchant":{"expose":true,"access_type":"public_method","serialized_name":"subMerchant","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubMerchant","setter":"setSubMerchant"},"type":"net\\authorize\\api\\contract\\v1\\SubMerchantType"},"tip":{"expose":true,"access_type":"public_method","serialized_name":"tip","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTip","setter":"setTip"},"type":"net\\authorize\\api\\contract\\v1\\ExtendedAmountType"},"processingOptions":{"expose":true,"access_type":"public_method","serialized_name":"processingOptions","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProcessingOptions","setter":"setProcessingOptions"},"type":"net\\authorize\\api\\contract\\v1\\ProcessingOptionsType"},"subsequentAuthInformation":{"expose":true,"access_type":"public_method","serialized_name":"subsequentAuthInformation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubsequentAuthInformation","setter":"setSubsequentAuthInformation"},"type":"net\\authorize\\api\\contract\\v1\\SubsequentAuthInformationType"},"otherTax":{"expose":true,"access_type":"public_method","serialized_name":"otherTax","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getOtherTax","setter":"setOtherTax"},"type":"net\\authorize\\api\\contract\\v1\\OtherTaxType"},"shipFrom":{"expose":true,"access_type":"public_method","serialized_name":"shipFrom","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipFrom","setter":"setShipFrom"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\EmvResponseAType\\TagsAType":{"properties":{"tag":{"expose":true,"access_type":"public_method","serialized_name":"tag","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTag","setter":"setTag"},"xml_list":{"inline":true,"entry_name":"tag","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\EmvResponseAType":{"properties":{"tlvData":{"expose":true,"access_type":"public_method","serialized_name":"tlvData","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTlvData","setter":"setTlvData"},"type":"string"},"tags":{"expose":true,"access_type":"public_method","serialized_name":"tags","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTags","setter":"setTags"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"tag","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\ErrorsAType\\ErrorAType":{"properties":{"errorCode":{"expose":true,"access_type":"public_method","serialized_name":"errorCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getErrorCode","setter":"setErrorCode"},"type":"string"},"errorText":{"expose":true,"access_type":"public_method","serialized_name":"errorText","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getErrorText","setter":"setErrorText"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\ErrorsAType":{"properties":{"error":{"expose":true,"access_type":"public_method","serialized_name":"error","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getError","setter":"setError"},"xml_list":{"inline":true,"entry_name":"error","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\MessagesAType\\MessageAType":{"properties":{"code":{"expose":true,"access_type":"public_method","serialized_name":"code","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCode","setter":"setCode"},"type":"string"},"description":{"expose":true,"access_type":"public_method","serialized_name":"description","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDescription","setter":"setDescription"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\MessagesAType":{"properties":{"message":{"expose":true,"access_type":"public_method","serialized_name":"message","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMessage","setter":"setMessage"},"xml_list":{"inline":true,"entry_name":"message","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\PrePaidCardAType":{"properties":{"requestedAmount":{"expose":true,"access_type":"public_method","serialized_name":"requestedAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRequestedAmount","setter":"setRequestedAmount"},"type":"string"},"approvedAmount":{"expose":true,"access_type":"public_method","serialized_name":"approvedAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getApprovedAmount","setter":"setApprovedAmount"},"type":"string"},"balanceOnCard":{"expose":true,"access_type":"public_method","serialized_name":"balanceOnCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBalanceOnCard","setter":"setBalanceOnCard"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\SecureAcceptanceAType":{"properties":{"secureAcceptanceUrl":{"expose":true,"access_type":"public_method","serialized_name":"SecureAcceptanceUrl","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSecureAcceptanceUrl","setter":"setSecureAcceptanceUrl"},"type":"string"},"payerID":{"expose":true,"access_type":"public_method","serialized_name":"PayerID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayerID","setter":"setPayerID"},"type":"string"},"payerEmail":{"expose":true,"access_type":"public_method","serialized_name":"PayerEmail","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPayerEmail","setter":"setPayerEmail"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\SplitTenderPaymentsAType\\SplitTenderPaymentAType":{"properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"responseCode":{"expose":true,"access_type":"public_method","serialized_name":"responseCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseCode","setter":"setResponseCode"},"type":"string"},"responseToCustomer":{"expose":true,"access_type":"public_method","serialized_name":"responseToCustomer","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseToCustomer","setter":"setResponseToCustomer"},"type":"string"},"authCode":{"expose":true,"access_type":"public_method","serialized_name":"authCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthCode","setter":"setAuthCode"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"requestedAmount":{"expose":true,"access_type":"public_method","serialized_name":"requestedAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRequestedAmount","setter":"setRequestedAmount"},"type":"string"},"approvedAmount":{"expose":true,"access_type":"public_method","serialized_name":"approvedAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getApprovedAmount","setter":"setApprovedAmount"},"type":"string"},"balanceOnCard":{"expose":true,"access_type":"public_method","serialized_name":"balanceOnCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBalanceOnCard","setter":"setBalanceOnCard"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\SplitTenderPaymentsAType":{"properties":{"splitTenderPayment":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderPayment","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderPayment","setter":"setSplitTenderPayment"},"xml_list":{"inline":true,"entry_name":"splitTenderPayment","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\UserFieldsAType":{"properties":{"userField":{"expose":true,"access_type":"public_method","serialized_name":"userField","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUserField","setter":"setUserField"},"xml_list":{"inline":true,"entry_name":"userField","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"type":"array"}}},"net\\authorize\\api\\contract\\v1\\TransactionResponseType":{"properties":{"responseCode":{"expose":true,"access_type":"public_method","serialized_name":"responseCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getResponseCode","setter":"setResponseCode"},"type":"string"},"rawResponseCode":{"expose":true,"access_type":"public_method","serialized_name":"rawResponseCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRawResponseCode","setter":"setRawResponseCode"},"type":"string"},"authCode":{"expose":true,"access_type":"public_method","serialized_name":"authCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAuthCode","setter":"setAuthCode"},"type":"string"},"avsResultCode":{"expose":true,"access_type":"public_method","serialized_name":"avsResultCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAvsResultCode","setter":"setAvsResultCode"},"type":"string"},"cvvResultCode":{"expose":true,"access_type":"public_method","serialized_name":"cvvResultCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCvvResultCode","setter":"setCvvResultCode"},"type":"string"},"cavvResultCode":{"expose":true,"access_type":"public_method","serialized_name":"cavvResultCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCavvResultCode","setter":"setCavvResultCode"},"type":"string"},"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"refTransID":{"expose":true,"access_type":"public_method","serialized_name":"refTransID","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getRefTransID","setter":"setRefTransID"},"type":"string"},"transHash":{"expose":true,"access_type":"public_method","serialized_name":"transHash","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransHash","setter":"setTransHash"},"type":"string"},"testRequest":{"expose":true,"access_type":"public_method","serialized_name":"testRequest","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTestRequest","setter":"setTestRequest"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"entryMode":{"expose":true,"access_type":"public_method","serialized_name":"entryMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEntryMode","setter":"setEntryMode"},"type":"string"},"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"splitTenderId":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderId","setter":"setSplitTenderId"},"type":"string"},"prePaidCard":{"expose":true,"access_type":"public_method","serialized_name":"prePaidCard","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPrePaidCard","setter":"setPrePaidCard"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\PrePaidCardAType"},"messages":{"expose":true,"access_type":"public_method","serialized_name":"messages","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMessages","setter":"setMessages"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"message","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"errors":{"expose":true,"access_type":"public_method","serialized_name":"errors","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getErrors","setter":"setErrors"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"error","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"splitTenderPayments":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderPayments","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderPayments","setter":"setSplitTenderPayments"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"splitTenderPayment","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"userFields":{"expose":true,"access_type":"public_method","serialized_name":"userFields","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getUserFields","setter":"setUserFields"},"type":"array","xml_list":{"inline":false,"skip_when_empty":true,"entry_name":"userField","namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"}},"shipTo":{"expose":true,"access_type":"public_method","serialized_name":"shipTo","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getShipTo","setter":"setShipTo"},"type":"net\\authorize\\api\\contract\\v1\\NameAndAddressType"},"secureAcceptance":{"expose":true,"access_type":"public_method","serialized_name":"secureAcceptance","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSecureAcceptance","setter":"setSecureAcceptance"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\SecureAcceptanceAType"},"emvResponse":{"expose":true,"access_type":"public_method","serialized_name":"emvResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getEmvResponse","setter":"setEmvResponse"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType\\EmvResponseAType"},"transHashSha2":{"expose":true,"access_type":"public_method","serialized_name":"transHashSha2","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransHashSha2","setter":"setTransHashSha2"},"type":"string"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"},"networkTransId":{"expose":true,"access_type":"public_method","serialized_name":"networkTransId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getNetworkTransId","setter":"setNetworkTransId"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\TransactionSummaryType":{"properties":{"transId":{"expose":true,"access_type":"public_method","serialized_name":"transId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransId","setter":"setTransId"},"type":"string"},"submitTimeUTC":{"expose":true,"access_type":"public_method","serialized_name":"submitTimeUTC","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubmitTimeUTC","setter":"setSubmitTimeUTC"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"submitTimeLocal":{"expose":true,"access_type":"public_method","serialized_name":"submitTimeLocal","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubmitTimeLocal","setter":"setSubmitTimeLocal"},"type":"GoetasWebservices\\Xsd\\XsdToPhp\\XMLSchema\\DateTime"},"transactionStatus":{"expose":true,"access_type":"public_method","serialized_name":"transactionStatus","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionStatus","setter":"setTransactionStatus"},"type":"string"},"invoiceNumber":{"expose":true,"access_type":"public_method","serialized_name":"invoiceNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getInvoiceNumber","setter":"setInvoiceNumber"},"type":"string"},"firstName":{"expose":true,"access_type":"public_method","serialized_name":"firstName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFirstName","setter":"setFirstName"},"type":"string"},"lastName":{"expose":true,"access_type":"public_method","serialized_name":"lastName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getLastName","setter":"setLastName"},"type":"string"},"accountType":{"expose":true,"access_type":"public_method","serialized_name":"accountType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountType","setter":"setAccountType"},"type":"string"},"accountNumber":{"expose":true,"access_type":"public_method","serialized_name":"accountNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAccountNumber","setter":"setAccountNumber"},"type":"string"},"settleAmount":{"expose":true,"access_type":"public_method","serialized_name":"settleAmount","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSettleAmount","setter":"setSettleAmount"},"type":"float"},"marketType":{"expose":true,"access_type":"public_method","serialized_name":"marketType","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMarketType","setter":"setMarketType"},"type":"string"},"product":{"expose":true,"access_type":"public_method","serialized_name":"product","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProduct","setter":"setProduct"},"type":"string"},"mobileDeviceId":{"expose":true,"access_type":"public_method","serialized_name":"mobileDeviceId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getMobileDeviceId","setter":"setMobileDeviceId"},"type":"string"},"subscription":{"expose":true,"access_type":"public_method","serialized_name":"subscription","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSubscription","setter":"setSubscription"},"type":"net\\authorize\\api\\contract\\v1\\SubscriptionPaymentType"},"hasReturnedItems":{"expose":true,"access_type":"public_method","serialized_name":"hasReturnedItems","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getHasReturnedItems","setter":"setHasReturnedItems"},"type":"boolean"},"fraudInformation":{"expose":true,"access_type":"public_method","serialized_name":"fraudInformation","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFraudInformation","setter":"setFraudInformation"},"type":"net\\authorize\\api\\contract\\v1\\FraudInformationType"},"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileIdType"}}},"net\\authorize\\api\\contract\\v1\\UpdateCustomerPaymentProfileRequest":{"xml_root_name":"updateCustomerPaymentProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"paymentProfile":{"expose":true,"access_type":"public_method","serialized_name":"paymentProfile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getPaymentProfile","setter":"setPaymentProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerPaymentProfileExType"},"validationMode":{"expose":true,"access_type":"public_method","serialized_name":"validationMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationMode","setter":"setValidationMode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\UpdateCustomerPaymentProfileResponse":{"xml_root_name":"updateCustomerPaymentProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"validationDirectResponse":{"expose":true,"access_type":"public_method","serialized_name":"validationDirectResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationDirectResponse","setter":"setValidationDirectResponse"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\UpdateCustomerProfileRequest":{"xml_root_name":"updateCustomerProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"profile":{"expose":true,"access_type":"public_method","serialized_name":"profile","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getProfile","setter":"setProfile"},"type":"net\\authorize\\api\\contract\\v1\\CustomerProfileInfoExType"}}},"net\\authorize\\api\\contract\\v1\\UpdateCustomerProfileResponse":{"xml_root_name":"updateCustomerProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\UpdateCustomerShippingAddressRequest":{"xml_root_name":"updateCustomerShippingAddressRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"address":{"expose":true,"access_type":"public_method","serialized_name":"address","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getAddress","setter":"setAddress"},"type":"net\\authorize\\api\\contract\\v1\\CustomerAddressExType"},"defaultShippingAddress":{"expose":true,"access_type":"public_method","serialized_name":"defaultShippingAddress","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDefaultShippingAddress","setter":"setDefaultShippingAddress"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\UpdateCustomerShippingAddressResponse":{"xml_root_name":"updateCustomerShippingAddressResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\UpdateHeldTransactionRequest":{"xml_root_name":"updateHeldTransactionRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"heldTransactionRequest":{"expose":true,"access_type":"public_method","serialized_name":"heldTransactionRequest","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getHeldTransactionRequest","setter":"setHeldTransactionRequest"},"type":"net\\authorize\\api\\contract\\v1\\HeldTransactionRequestType"}}},"net\\authorize\\api\\contract\\v1\\UpdateHeldTransactionResponse":{"xml_root_name":"updateHeldTransactionResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"transactionResponse":{"expose":true,"access_type":"public_method","serialized_name":"transactionResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getTransactionResponse","setter":"setTransactionResponse"},"type":"net\\authorize\\api\\contract\\v1\\TransactionResponseType"}}},"net\\authorize\\api\\contract\\v1\\UpdateMerchantDetailsRequest":{"xml_root_name":"updateMerchantDetailsRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"isTestMode":{"expose":true,"access_type":"public_method","serialized_name":"isTestMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getIsTestMode","setter":"setIsTestMode"},"type":"boolean"}}},"net\\authorize\\api\\contract\\v1\\UpdateMerchantDetailsResponse":{"xml_root_name":"updateMerchantDetailsResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\UpdateSplitTenderGroupRequest":{"xml_root_name":"updateSplitTenderGroupRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"splitTenderId":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderId","setter":"setSplitTenderId"},"type":"string"},"splitTenderStatus":{"expose":true,"access_type":"public_method","serialized_name":"splitTenderStatus","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getSplitTenderStatus","setter":"setSplitTenderStatus"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\UpdateSplitTenderGroupResponse":{"xml_root_name":"updateSplitTenderGroupResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":[]},"net\\authorize\\api\\contract\\v1\\UserFieldType":{"properties":{"name":{"expose":true,"access_type":"public_method","serialized_name":"name","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getName","setter":"setName"},"type":"string"},"value":{"expose":true,"access_type":"public_method","serialized_name":"value","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValue","setter":"setValue"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ValidateCustomerPaymentProfileRequest":{"xml_root_name":"validateCustomerPaymentProfileRequest","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"customerProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerProfileId","setter":"setCustomerProfileId"},"type":"string"},"customerPaymentProfileId":{"expose":true,"access_type":"public_method","serialized_name":"customerPaymentProfileId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerPaymentProfileId","setter":"setCustomerPaymentProfileId"},"type":"string"},"customerShippingAddressId":{"expose":true,"access_type":"public_method","serialized_name":"customerShippingAddressId","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCustomerShippingAddressId","setter":"setCustomerShippingAddressId"},"type":"string"},"cardCode":{"expose":true,"access_type":"public_method","serialized_name":"cardCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCode","setter":"setCardCode"},"type":"string"},"validationMode":{"expose":true,"access_type":"public_method","serialized_name":"validationMode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getValidationMode","setter":"setValidationMode"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\ValidateCustomerPaymentProfileResponse":{"xml_root_name":"validateCustomerPaymentProfileResponse","xml_root_namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd","properties":{"directResponse":{"expose":true,"access_type":"public_method","serialized_name":"directResponse","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getDirectResponse","setter":"setDirectResponse"},"type":"string"}}},"net\\authorize\\api\\contract\\v1\\WebCheckOutDataType":{"properties":{"type":{"expose":true,"access_type":"public_method","serialized_name":"type","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getType","setter":"setType"},"type":"string"},"id":{"expose":true,"access_type":"public_method","serialized_name":"id","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getId","setter":"setId"},"type":"string"},"token":{"expose":true,"access_type":"public_method","serialized_name":"token","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getToken","setter":"setToken"},"type":"net\\authorize\\api\\contract\\v1\\WebCheckOutDataTypeTokenType"},"bankToken":{"expose":true,"access_type":"public_method","serialized_name":"bankToken","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getBankToken","setter":"setBankToken"},"type":"net\\authorize\\api\\contract\\v1\\BankAccountType"}}},"net\\authorize\\api\\contract\\v1\\WebCheckOutDataTypeTokenType":{"properties":{"cardNumber":{"expose":true,"access_type":"public_method","serialized_name":"cardNumber","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardNumber","setter":"setCardNumber"},"type":"string"},"expirationDate":{"expose":true,"access_type":"public_method","serialized_name":"expirationDate","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getExpirationDate","setter":"setExpirationDate"},"type":"string"},"cardCode":{"expose":true,"access_type":"public_method","serialized_name":"cardCode","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getCardCode","setter":"setCardCode"},"type":"string"},"zip":{"expose":true,"access_type":"public_method","serialized_name":"zip","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getZip","setter":"setZip"},"type":"string"},"fullName":{"expose":true,"access_type":"public_method","serialized_name":"fullName","xml_element":{"namespace":"AnetApi\/xml\/v1\/schema\/AnetApiSchema.xsd"},"accessor":{"getter":"getFullName","setter":"setFullName"},"type":"string"}}}}
\ No newline at end of file
diff --git a/class/payment/authorize/lib/ssl/cert.pem b/class/payment/authorize/lib/ssl/cert.pem
new file mode 100644
index 0000000..45654c0
--- /dev/null
+++ b/class/payment/authorize/lib/ssl/cert.pem
@@ -0,0 +1,3338 @@
+##
+## Bundle of CA Root Certificates
+##
+## Certificate data from Mozilla as of: Wed Mar 7 04:12:06 2018 GMT
+##
+## This is a bundle of X.509 certificates of public Certificate Authorities
+## (CA). These were automatically extracted from Mozilla's root certificates
+## file (certdata.txt). This file can be found in the mozilla source tree:
+## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
+##
+## It contains the certificates in PEM format and therefore
+## can be directly used with curl / libcurl / php_curl, or with
+## an Apache+mod_ssl webserver for SSL client authentication.
+## Just configure this file as the SSLCACertificateFile.
+##
+## Conversion done with mk-ca-bundle.pl version 1.27.
+## SHA256: 704f02707ec6b4c4a7597a8c6039b020def11e64f3ef0605a9c3543d48038a57
+##
+
+
+GlobalSign Root CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
+GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
+b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
+BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
+VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
+DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
+THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
+Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
+c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
+gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
+AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
+Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
+j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
+hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
+X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
+ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
+s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
+S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
+TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
+ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
+YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
+BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
+9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
+01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
+9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+Verisign Class 3 Public Primary Certification Authority - G3
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
+dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
+EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
+cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
+EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
+055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
+ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
+j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
+xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
+t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+Entrust.net Premium 2048 Secure Server CA
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
+ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
+bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
+BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
+NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
+d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
+MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
+ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
+Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
+hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
+nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
+VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
+KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
+T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
+J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
+nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+
+Baltimore CyberTrust Root
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
+ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
+ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
+SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
+dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
+uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
+UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
+G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
+XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
+l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
+VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
+cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
+hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
+Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
+RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+AddTrust External Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
+QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
+VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
+NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
+cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
+Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
+Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
+aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
+2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
+7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
+VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
+VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
+IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
+j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
+e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
+G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority
+====================================
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
+b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
+A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
+MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
+MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
+Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
+dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
+A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
+Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
+j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
+rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
+MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
+hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
+Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
+v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
+W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
+tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+GeoTrust Global CA
+==================
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
+MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
+LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
+BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
+8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
+T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
+vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
+DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
+zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
+d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
+mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
+XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
+Mw==
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
+MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
+Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
+JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
+RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
+7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
+8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
+qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
+Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
+Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
+KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
+ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
+XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
+hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
+qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
+oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
+xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
+KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
+DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
+xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
+p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
+P/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+GeoTrust Universal CA 2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
+R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
+MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
+SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
+DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
+j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
+JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
+QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
+WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
+20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
+ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
+SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
+8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
+BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
+4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
+A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
+Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
+pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
+FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
+gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
+X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+Visa eCommerce Root
+===================
+-----BEGIN CERTIFICATE-----
+MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
+EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
+QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
+WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
+VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
+bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
+F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
+RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
+TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
+/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
+GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
+CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
+YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
+zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
+YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
+398znM/jra6O1I7mT1GvFpLgXPYHDw==
+-----END CERTIFICATE-----
+
+Comodo AAA Services root
+========================
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
+R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
+TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
+MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
+c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
+C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
+i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
+Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
+Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
+Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
+BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
+cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
+LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
+7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
+8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
+12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
+ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
+MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
+cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
+EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
+J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
+F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
+YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
+AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
+PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
+ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
+MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
+YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
+ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
+Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
+BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
+FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
+tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
+fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
+LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
+gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
+5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
+5nrQNiOKSnQ2+Q==
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2
+==================
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
+ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
+XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
+lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
+lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
+lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
+66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
+wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
+D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
+BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
+J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
+DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
+a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
+Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
+UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
+VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
+IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
+WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
+f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
+4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
+VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3
+==================
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
+EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
+OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
+DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
+KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
+DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
+BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
+p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
+nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
+MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
+Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
+uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
+BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
+BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
+VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
+ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
+AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
+qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
+hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
+POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
+Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
+8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
+bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
+g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
+vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
+qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+Security Communication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
+U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
+8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
+DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
+5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
+DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
+JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
+0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
+mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
+s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
+6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
+FL39vmwLAw==
+-----END CERTIFICATE-----
+
+Sonera Class 2 Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
+U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
+NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
+IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
+/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
+dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
+f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
+tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
+nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
+XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
+0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
+cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
+Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
+EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
+llpwrN9M
+-----END CERTIFICATE-----
+
+XRamp Global CA Root
+====================
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
+BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
+dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
+HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
+U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
+IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
+foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
+zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
+AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
+xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
+oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
+AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
+/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
+nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
+8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+Go Daddy Class 2 CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
+VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
+A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
+RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
+ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
+2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
+qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
+YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
+vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
+BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
+atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
+MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
+PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
+I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
+Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
+vZ8=
+-----END CERTIFICATE-----
+
+Starfield Class 2 CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
+U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
+MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
+A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
+SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
+bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
+JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
+epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
+F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
+MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
+hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
+bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
+afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
+PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
+KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
+QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+
+Taiwan GRCA
+===========
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
+EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
+DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
+dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
+w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
+BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
+1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
+htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
+J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
+Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
+B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
+O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
+lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
+HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
+09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
+Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
+Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
+D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
+DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
+Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
+7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
+CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
+MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
+9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
+UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
+/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
+oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
+GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
+66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
+hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
+EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
+SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
+8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+DigiCert Global Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
+MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
+TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
+BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
+4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
+7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
+o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
+8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
+BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
+EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
+tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
+UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+DigiCert High Assurance EV Root CA
+==================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
+KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
+MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
+MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
+Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
+Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
+OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
+MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
+NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
+h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
+JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
+V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
+myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
+mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
+-----END CERTIFICATE-----
+
+Certplus Class 2 Primary CA
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
+BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
+OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
+dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
+5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
+Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
+YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
+e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
+CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
+YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
+L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
+P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
+TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
+7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
+//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
+l7+ijrRU
+-----END CERTIFICATE-----
+
+DST Root CA X3
+==============
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
+ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
+DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
+cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
+rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
+UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
+xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
+utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
+MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
+dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
+GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
+RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
+fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+SwissSign Gold CA - G2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
+EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
+MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
+c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
+t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
+jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
+vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
+ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
+AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
+jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
+peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
+7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
+GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
+OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
+5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
+44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
+Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
+Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
+mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
+vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
+KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
+NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
+viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+
+SwissSign Silver CA - G2
+========================
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
+BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
+DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
+aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
+N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
+6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
+MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
+qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
+FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
+ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
+celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
+CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
+tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
+4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
+kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
+3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
+/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
+DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
+e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
+WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
+DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
+DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
+cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
+b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
+nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
+RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
+tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
+hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
+Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
+NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
+Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
+1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+
+thawte Primary Root CA
+======================
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
+MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
+SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
+KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
+FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
+oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
+1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
+q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
+aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
+afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
+AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
+uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
+jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
+z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G5
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
+dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
+j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
+Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
+Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
+fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
+BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
+SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
+KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
+Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
+ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+SecureTrust CA
+==============
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
+dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
+BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
+OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
+DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
+GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
+01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
+ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
+aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
+SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
+mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
+nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+Secure Global CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
+EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
+bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
+MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
+Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
+YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
+bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
+8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
+HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
+0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
+oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
+MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
+CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
+3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+COMODO Certification Authority
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
+MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
+T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
+xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
+4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
+1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
+rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
+b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
+AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
+OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
+RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
+IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
+-----END CERTIFICATE-----
+
+Network Solutions Certificate Authority
+=======================================
+-----BEGIN CERTIFICATE-----
+MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
+EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
+IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
+MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
+jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
+aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
+crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
+/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
+AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
+bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
+A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
+4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
+GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
+wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
+ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
+-----END CERTIFICATE-----
+
+COMODO ECC Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
+GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
+4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
+wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
+FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
+U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GA CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
+BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
+A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
+bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
+VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
+IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
+IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
+Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
+Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
+d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
+/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
+LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
+MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
+okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
+-----END CERTIFICATE-----
+
+Certigna
+========
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
+EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
+MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
+Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
+XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
+GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
+ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
+DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
+Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
+tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
+BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
+SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
+PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
+1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+Deutsche Telekom Root CA 2
+==========================
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
+RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
+A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
+MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
+A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
+b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
+bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
+KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
+AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
+Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
+jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
+HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
+E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
+zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
+rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
+dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
+Cm26OWMohpLzGITY+9HPBVZkVw==
+-----END CERTIFICATE-----
+
+Cybertrust Global Root
+======================
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
+ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
+MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
+ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
+0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
+AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
+89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
+8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
+MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
+A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
+lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
+5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
+hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
+X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+ePKI Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
+EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
+MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
+MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
+IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
+lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
+qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
+12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
+WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
+lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
+vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
+Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
+MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
+1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
+KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
+xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
+NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
+GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
+xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
+gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
+sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
+BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+certSIGN ROOT CA
+================
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
+VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
+Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
+CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
+JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
+rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
+ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
+0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
+AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
+Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
+AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
+SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
+x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
+vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
+TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G3
+=============================================
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
+eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
+NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
+YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
+LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
+K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
+c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
+IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
+dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
+2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
+cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
+Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
+t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
+VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
+IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
+Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
+MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
+b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
+IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
+LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
+8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
+mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
+G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
+rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+thawte Primary Root CA - G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
+BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
+aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
+cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
+ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
+VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
+A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
+P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
+7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
+vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
+KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
+A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
+8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
+er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+GeoTrust Primary Certification Authority - G2
+=============================================
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
+OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
+b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
+BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
+KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
+EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
+ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
+npaqBA+K
+-----END CERTIFICATE-----
+
+VeriSign Universal Root Certification Authority
+===============================================
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
+ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
+IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
+UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
+cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
+1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
+MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
+9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
+AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
+tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
+CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
+a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
+Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
+Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
+P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
+wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
+mJO37M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+VeriSign Class 3 Public Primary Certification Authority - G4
+============================================================
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
+VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
+b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
+ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
+b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
+Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
+rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
+HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
+Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
+A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
+AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+NetLock Arany (Class Gold) FÅ‘tanúsÃtvány
+========================================
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
+A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
+dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
+cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
+MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
+ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
+c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
+0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
+/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
+H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
+fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
+neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
+qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
+YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
+NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
+dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G2
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
+5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
+vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
+CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
+e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
+OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
+CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
+48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
+trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
+qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
+AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
+ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
+A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
+f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
+kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
+CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
+URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
+CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
+oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
+IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
+66+KAQ==
+-----END CERTIFICATE-----
+
+Hongkong Post Root CA 1
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
+DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
+NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
+IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
+ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
+auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
+qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
+V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
+HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
+h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
+l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
+IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
+T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
+c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
+-----END CERTIFICATE-----
+
+SecureSign RootCA11
+===================
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
+SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
+b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
+KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
+cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
+TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
+wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
+g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
+O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
+bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
+t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
+OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
+bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
+Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
+y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
+lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+Microsec e-Szigno Root CA 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
+MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
+c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
+BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
+U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
+fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
+0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
+pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
+1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
+AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
+QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
+FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
+lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
+I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
+yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
+LXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+GlobalSign Root CA - R3
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
+YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
+bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
+aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
+bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
+iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
+0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
+rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
+OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
+xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
+lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
+EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
+bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
+YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
+kpeDMdmztcpHWD9f
+-----END CERTIFICATE-----
+
+Autoridad de Certificacion Firmaprofesional CIF A62634068
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
+BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
+MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
+QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
+NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
+Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
+B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
+7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
+ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
+plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
+MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
+LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
+bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
+vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
+DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
+bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
+ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
+51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
+R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
+T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
+Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
+osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
+crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
+saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
+KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
+6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+Izenpe.com
+==========
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
+EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
+MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
+QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
+03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
+ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
+PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
+OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
+F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
+0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
+0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
+leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
+AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
+SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
+NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
+MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
+Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
+kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
+hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
+g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
+aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
+nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
+ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
+Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
+WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
+-----END CERTIFICATE-----
+
+Chambers of Commerce Root - 2008
+================================
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
+Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
+ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
+EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
+cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
+XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
+h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
+ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
+NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
+D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
+lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
+0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
+EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
+G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
+BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
+bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
+bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
+CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
+AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
+wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
+3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
+RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
+M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
+YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
+9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
+zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
+nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
+-----END CERTIFICATE-----
+
+Global Chambersign Root - 2008
+==============================
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
+MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
+bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
+QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
+NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
+Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
+QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
+VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
+XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
+ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
+/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
+TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
+H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
+Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
+HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
+AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
+BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
+BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
+aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
+aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
+1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
+dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
+/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
+ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
+dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
+9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
+foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
+qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
+P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
+c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+Go Daddy Root Certificate Authority - G2
+========================================
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
+MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
+A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
+9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
+fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
+NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
+BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
+vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
+5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
+N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+Starfield Root Certificate Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
+DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
+VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
+dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
+W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
+bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
+N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
+ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
+JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
+TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
+4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
+F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
+c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+Starfield Services Root Certificate Authority - G2
+==================================================
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
+b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
+IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
+dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
+h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
+hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
+LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
+rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
+SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
+E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
+xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
+YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
+-----END CERTIFICATE-----
+
+AffirmTrust Commercial
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
+MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
+DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
+C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
+BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
+MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
+HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
+hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
+qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
+0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
+sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+AffirmTrust Networking
+======================
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
+MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
+bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
+Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
+dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
+/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
+h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
+HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
+UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
+12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
+WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
+/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+AffirmTrust Premium
+===================
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
+BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
+OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
+dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
+BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
+5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
+GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
+p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
+S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
+6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
+/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
+MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
+6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
+L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
+BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
+IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
+g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
+zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+AffirmTrust Premium ECC
+=======================
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
+BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
+MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
+cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
+N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
+BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
+BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
+57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
+eQ==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA
+=========================
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
+ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
+MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
+ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
+l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
+J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
+fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
+cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
+DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
+jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
+mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
+Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+TWCA Root Certification Authority
+=================================
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
+VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
+EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
+IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
+QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
+oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
+4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
+y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
+9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
+mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
+QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
+T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
+Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+Security Communication RootCA2
+==============================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
+dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
+SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
+aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
+3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
+spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
+EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
+QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
+u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
+3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
+tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
+mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+EC-ACC
+======
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
+BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
+ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
+VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
+CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
+BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
+MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
+SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
+Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
+cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
+w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
+ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
+HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
+E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
+0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
+VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
+Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
+dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
+lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
+Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
+l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
+E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
+5EI=
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2011
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
+O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
+aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
+AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
+IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
+IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
+1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
+71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
+8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
+3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
+MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
+MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
+b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
+XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
+/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
+7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+Actalis Authentication Root CA
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
+BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
+AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
+MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
+IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
+wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
+by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
+zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
+YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
+oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
+EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
+hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
+EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
+jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
+iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
+WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
+JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
+K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
+Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
+4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
+2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
+lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
+OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
+vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+Trustis FPS Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
+EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
+IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
+BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
+RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
+H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
+cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
+o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
+AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
+BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
+GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
+yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
+8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
+l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
+iB6XzCGcKQENZetX2fNXlrtIzYE=
+-----END CERTIFICATE-----
+
+Buypass Class 2 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
+DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
+g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
+9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
+/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
+CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
+awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
+zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
+Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
+Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
+M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
+osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
+aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
+DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
+LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
+oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
+wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
+CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
+rJgWVqA=
+-----END CERTIFICATE-----
+
+Buypass Class 3 Root CA
+=======================
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
+QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
+DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
+eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
+sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
+5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
+7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
+ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
+2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
+/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
+RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
+Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
+j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
+AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
+uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
+Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
+ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
+KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
+6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
+UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
+eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
+Cp/HuZc=
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 3
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
+MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
+9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
+NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
+iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
+0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
+AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
+fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
+ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
+P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
+e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
+-----END CERTIFICATE-----
+
+EE Certification Centre Root CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
+EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
+dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
+MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
+UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
+ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
+TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
+rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
+93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
+P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
+MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
+BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
+xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
+lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
+3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
+dcGWxZ0=
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 2009
+==============================
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
+Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
+LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
+ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
+BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
+KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
+p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
+AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
+4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
+eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
+MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
+PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
+OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
+2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
+dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
+X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+
+D-TRUST Root Class 3 CA 2 EV 2009
+=================================
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
+DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
+OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
+egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
+zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
+7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
+sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
+11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
+cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
+ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
+MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
+b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
+c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
+PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
+ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
+NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
+w9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+
+CA Disig Root R2
+================
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
+EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
+ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
+EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
+c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
+w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
+xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
+A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
+GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
+g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
+5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
+koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
+Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
+Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
+Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
+sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
+dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
+1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
+mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
+utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
+sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
+UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
+7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+
+ACCVRAIZ1
+=========
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
+SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
+MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
+UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
+jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
+RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
+aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
+0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
+WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
+8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
+5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
+9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
+Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
+Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
+Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
+VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
+Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
+QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
+AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
+YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
+AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
+IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
+aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
+dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
+MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
+hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
+R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
+YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
+nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
+TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
+sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
+I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
+Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
+3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
+EfbRD0tVNEYqi4Y7
+-----END CERTIFICATE-----
+
+TWCA Global Root CA
+===================
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
+CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
+QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
+EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
+Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
+nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
+r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
+Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
+tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
+KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
+sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
+yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
+kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
+zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
+cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
+LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
+8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
+/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
+lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
+A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
+i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
+EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
+zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
+-----END CERTIFICATE-----
+
+TeliaSonera Root CA v1
+======================
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
+CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
+MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
+VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
+6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
+3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
+B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
+Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
+oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
+F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
+oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
+gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
+TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
+AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
+DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
+zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
+pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
+G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
+c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
+JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
+qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
+Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
+WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+E-Tugra Certification Authority
+===============================
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
+DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
+ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
+NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
+QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
+cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
+DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
+hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
+CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
+ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
+BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
+E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
+rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
+jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
+dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
+/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
+kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
+XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
+VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
+a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
+dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
+KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
+Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
+8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
+C7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+T-TeleSec GlobalRoot Class 2
+============================
+-----BEGIN CERTIFICATE-----
+MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
+IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
+cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
+MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
+dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
+ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
+SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
+vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
+2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
+WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
+YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
+r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
+vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
+3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
+9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
+-----END CERTIFICATE-----
+
+Atos TrustedRoot 2011
+=====================
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
+cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
+MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
+A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
+hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
+54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
+HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
+z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
+l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
+bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
+k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
+TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
+61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
+3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 1 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
+PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
+PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
+Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
+ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
+g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
+7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
+9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
+iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
+t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
+hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
+GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
+Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
+3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
+wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
+O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
+FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
+hMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 2 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
+ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
+NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
+oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
+MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
+V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
+L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
+sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
+6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
+lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
+hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
+pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
+x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
+dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
+U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
+mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
+zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
+JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
+O3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+QuoVadis Root CA 3 G3
+=====================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
+A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
+b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
+RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
+IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
+Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
+6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
+I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
+VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
+5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
+Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
+dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
+rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
+hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
+t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
+TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
+DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
+Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
+hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
+0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
+dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
+PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
+IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
+MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
+ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
+35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
+bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
+VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
+YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
+lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
+w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
+0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
+d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
+hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
+jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+DigiCert Assured ID Root G3
+===========================
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
+VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
+BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
+RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
+KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
+UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
+YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
+1vUhZscv6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+DigiCert Global Root G2
+=======================
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
+HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
+MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
+dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
+kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
+3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
+BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
+UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
+5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
+F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
+WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
+QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
+iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+DigiCert Global Root G3
+=======================
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
+VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
+MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
+aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
+AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
+YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
+Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
+3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
+VOKa5Vt8sycX
+-----END CERTIFICATE-----
+
+DigiCert Trusted Root G4
+========================
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
+HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
+MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
+pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
+k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
+vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
+QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
+MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
+mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
+f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
+dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
+oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
+ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
+yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
+7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
+ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
+5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
+/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
+5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
+G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
+82Z+
+-----END CERTIFICATE-----
+
+COMODO RSA Certification Authority
+==================================
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
+BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
+A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
+R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
+ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
+dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
+FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
+5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
+x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
+2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
+OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
+sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
+GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
+WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
+rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
+tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
+sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
+pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
+zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
+ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
+7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
+LaZRfyHBNVOFBkpdn627G190
+-----END CERTIFICATE-----
+
+USERTrust RSA Certification Authority
+=====================================
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
+ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
+BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
+ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
+0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
+Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
+RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
+/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
+Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
+lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
+yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
+eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
+FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
+7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
+Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
+8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
+FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
+yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
+J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
+sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
+Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+
+USERTrust ECC Certification Authority
+=====================================
+-----BEGIN CERTIFICATE-----
+MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
+0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
+nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
+HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
+HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
+9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
+-----END CERTIFICATE-----
+
+GlobalSign ECC Root CA - R4
+===========================
+-----BEGIN CERTIFICATE-----
+MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
+OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
+MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
+JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
+-----END CERTIFICATE-----
+
+GlobalSign ECC Root CA - R5
+===========================
+-----BEGIN CERTIFICATE-----
+MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
+R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
+EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
+SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
+h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
+uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
+yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G3
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
+olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
+x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
+EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
+Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
+mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
+1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
+07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
+FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
+41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
+yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
+U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
+KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
+v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
+8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
+8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
+mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
+1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
+JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
+tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden EV Root CA
+================================
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
+MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
+cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
+SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
+O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
+0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
+Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
+XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
+08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
+0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
+74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
+fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
+ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
+eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
+c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
+5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
+b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
+f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
+5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
+WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
+DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
+eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
+-----END CERTIFICATE-----
+
+IdenTrust Commercial Root CA 1
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
+b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
+MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
+IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
+hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
+mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
+1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
+XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
+3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
+NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
+WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
+xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
+uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
+hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
+ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
+ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
+YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
+feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
+kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
+2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
+Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
+cGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+IdenTrust Public Sector Root CA 1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
+ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
+UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
+b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
+P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
+Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
+rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
+qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
+mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
+ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
+LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
+iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
+4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
+DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
+mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
+GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
+m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
+NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
+Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
+ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
+ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
+3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
+bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
+b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
+HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
+DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
+OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
+/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
+HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
+s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
+TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
+AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
+0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
+iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
+nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
+e4pIb4tF9g==
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - EC1
+==========================================
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
+FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
+YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
+FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
+LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
+AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
+9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
+vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
+kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+CFCA EV ROOT
+============
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
+CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
+IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
+MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
+DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
+BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
+7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
+uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
+ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
+xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
+py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
+gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
+hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
+tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
+BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
+ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
+4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
+E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
+BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
+aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
+PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
+kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
+ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+
+TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
+====================================================
+-----BEGIN CERTIFICATE-----
+MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
+RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
+ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
+SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
+n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
+ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
+jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
+ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
+9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
+4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
+HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
+BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
+URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
+lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
+B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
+-----END CERTIFICATE-----
+
+Certinomis - Root CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
+LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
+EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
+ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
+P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
+d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
+z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
+8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
+RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
+6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
+FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
+PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
+i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
+YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
+6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
+AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
+WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
+Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
+lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
+y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
+Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
+DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
+I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
+cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
+hkIGuUE=
+-----END CERTIFICATE-----
+
+OISTE WISeKey Global Root GB CA
+===============================
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG
+EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
+ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw
+MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD
+VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds
+b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX
+scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP
+rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk
+9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o
+Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg
+GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
+hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD
+dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0
+VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui
+HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+SZAFIR ROOT CA2
+===============
+-----BEGIN CERTIFICATE-----
+MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG
+A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV
+BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ
+BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD
+VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q
+qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK
+DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE
+2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ
+ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi
+ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC
+AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5
+O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67
+oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul
+4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6
++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw==
+-----END CERTIFICATE-----
+
+Certum Trusted Network CA 2
+===========================
+-----BEGIN CERTIFICATE-----
+MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE
+BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1
+bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y
+ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ
+TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB
+IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9
+7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o
+CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b
+Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p
+uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130
+GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ
+9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB
+Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye
+hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM
+BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW
+Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA
+L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo
+clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM
+pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb
+w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo
+J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm
+ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX
+is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7
+zAYspsbiDrW5viSP
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions RootCA 2015
+=======================================================
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT
+BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0
+aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl
+YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx
+MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg
+QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV
+BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw
+MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv
+bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh
+iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+
+6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd
+FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr
+i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F
+GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2
+fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu
+iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
+Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI
+hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+
+D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM
+d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y
+d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn
+82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb
+davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F
+Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt
+J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa
+JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q
+p/UsQu0yrbYhnr68
+-----END CERTIFICATE-----
+
+Hellenic Academic and Research Institutions ECC RootCA 2015
+===========================================================
+-----BEGIN CERTIFICATE-----
+MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0
+aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
+cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj
+aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw
+MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj
+IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD
+VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290
+Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP
+dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK
+Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA
+GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn
+dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
+-----END CERTIFICATE-----
+
+Certplus Root CA G1
+===================
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUAMD4xCzAJBgNV
+BAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTAe
+Fw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhD
+ZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHN
+r49aiZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt6kuJPKNx
+Qv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP0FG7Yn2ksYyy/yARujVj
+BYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTv
+LRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDEEW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2
+z4QTd28n6v+WZxcIbekN1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc
+4nBvCGrch2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCTmehd
+4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV4EJQeIQEQWGw9CEj
+jy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPOWftwenMGE9nTdDckQQoRb5fc5+R+
+ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0G
+A1UdDgQWBBSowcCbkahDFXxdBie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHY
+lwuBsTANBgkqhkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
+66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7/SMNkPX0XtPG
+YX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BSS7CTKtQ+FjPlnsZlFT5kOwQ/
+2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F
+6ALEUz65noe8zDUa3qHpimOHZR4RKttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilX
+CNQ314cnrUlZp5GrRHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWe
+tUNy6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEVV/xuZDDC
+VRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5g4VCXA9DO2pJNdWY9BW/
++mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl++O/QmueD6i9a5jc2NvLi6Td11n0bt3+
+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
+-----END CERTIFICATE-----
+
+Certplus Root CA G2
+===================
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4xCzAJBgNVBAYT
+AkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjAeFw0x
+NDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0
+cGx1czEcMBoGA1UEAwwTQ2VydHBsdXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BM0PW1aC3/BFGtat93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uN
+Am8xIk0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMB8GA1Ud
+IwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqGSM49BAMDA2gAMGUCMHD+sAvZ94OX7PNV
+HdTcswYO/jOYnYs5kGuUIe22113WTNchp+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjl
+vPl5adytRSv3tjFzzAalU5ORGpOucGpnutee5WEaXw==
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G1
+====================
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUAMEAxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcx
+MB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
+CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7fa
+Yp6bwiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX/uMftk87
+ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR077F9jAHiOH3BX2pfJLKO
+YheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGPuY4zbGneWK2gDqdkVBFpRGZPTBKnjix9
+xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLxp2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO
+9z0M+Yo0FMT7MzUj8czxKselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq
+3ywgsNw2TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+WG+Oi
+n6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPwvFEVVJSmdz7QdFG9
+URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYYEQRVzXR7z2FwefR7LFxckvzluFqr
+TJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUl0YhVyE12jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/Px
+N3DlCPaTKbYwDQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E
+PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kfgLMtMrpkZ2Cv
+uVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbSFXJfLkur1J1juONI5f6ELlgK
+n0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLh
+X4SPgPL0DTatdrOjteFkdjpY3H1PXlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80
+nR14SohWZ25g/4/Ii+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcm
+GS3tTAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L9109S5zvE/
+bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/KyPu1svf0OnWZzsD2097+o
+4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJAwSQiumPv+i2tCqjI40cHLI5kqiPAlxA
+OXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj1oxx
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G2
+====================
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUAMEAxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEcy
+MB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoM
+CU9wZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+
+Ntmh/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78eCbY2albz
+4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/61UWY0jUJ9gNDlP7ZvyCV
+eYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fEFY8ElggGQgT4hNYdvJGmQr5J1WqIP7wt
+UdGejeBSzFfdNTVY27SPJIjki9/ca1TSgSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz
+3GIZ38i1MH/1PCZ1Eb3XG7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj
+3CzMpSZyYhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaHvGOz
+9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4t/bQWVyJ98LVtZR0
+0dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/gh7PU3+06yzbXfZqfUAkBXKJOAGT
+y3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUajn6QiL35okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59
+M4PLuG53hq8wDQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
+Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0nXGEL8pZ0keI
+mUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qTRmTFAHneIWv2V6CG1wZy7HBG
+S4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpTwm+bREx50B1ws9efAvSyB7DH5fitIw6mVskp
+EndI2S9G/Tvw/HRwkqWOOAgfZDC2t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ
+6e18CL13zSdkzJTaTkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97kr
+gCf2o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU3jg9CcCo
+SmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eAiN1nE28daCSLT7d0geX0
+YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14fWKGVyasvc0rQLW6aWQ9VGHgtPFGml4vm
+u7JwqkwR3v98KzfUetF3NI/n+UL3PIEMS1IK
+-----END CERTIFICATE-----
+
+OpenTrust Root CA G3
+====================
+-----BEGIN CERTIFICATE-----
+MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAxCzAJBgNVBAYT
+AkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5UcnVzdCBSb290IENBIEczMB4X
+DTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9w
+ZW5UcnVzdDEdMBsGA1UEAwwUT3BlblRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAARK7liuTcpm3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5B
+ta1doYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4GA1UdDwEB
+/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAf
+BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
+BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
+3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
+-----END CERTIFICATE-----
+
+ISRG Root X1
+============
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE
+BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD
+EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG
+EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT
+DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r
+Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1
+3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
+b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN
+Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
+4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf
+1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu
+hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
+usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r
+OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY
+9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV
+0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
+hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw
+TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx
+e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
+JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD
+YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
+JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
+m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
+
+AC RAIZ FNMT-RCM
+================
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT
+AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw
+MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD
+TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf
+qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr
+btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL
+j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou
+08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw
+WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT
+tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ
+47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC
+ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa
+i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o
+dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
+nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s
+D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ
+j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT
+Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW
++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7
+Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d
+8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm
+5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG
+rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
+-----END CERTIFICATE-----
+
+Amazon Root CA 1
+================
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD
+VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1
+MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
+bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH
+FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ
+gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t
+dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce
+VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3
+DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM
+CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy
+8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa
+2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2
+xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5
+-----END CERTIFICATE-----
+
+Amazon Root CA 2
+================
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD
+VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1
+MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv
+bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4
+kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp
+N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9
+AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd
+fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx
+kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS
+btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0
+Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN
+c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+
+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw
+DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA
+A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE
+YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW
+xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ
+gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW
+aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV
+Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3
+KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi
+JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=
+-----END CERTIFICATE-----
+
+Amazon Root CA 3
+================
+-----BEGIN CERTIFICATE-----
+MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG
+EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy
+NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
+MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB
+f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr
+Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43
+rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc
+eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==
+-----END CERTIFICATE-----
+
+Amazon Root CA 4
+================
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG
+EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy
+NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ
+MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN
+/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri
+83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA
+MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1
+AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==
+-----END CERTIFICATE-----
+
+LuxTrust Global Root 2
+======================
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQELBQAwRjELMAkG
+A1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNVBAMMFkx1eFRydXN0IEdsb2Jh
+bCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUwMzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEW
+MBQGA1UECgwNTHV4VHJ1c3QgUy5BLjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wm
+Kb3FibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTemhfY7RBi2
+xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1EMShduxq3sVs35a0VkBC
+wGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsnXpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm
+1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkm
+FRseTJIpgp7VkoGSQXAZ96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niF
+wpN6cj5mj5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4gDEa/
+a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+8kPREd8vZS9kzl8U
+ubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2jX5t/Lax5Gw5CMZdjpPuKadUiDTSQ
+MC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmHhFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB
+/zBCBgNVHSAEOzA5MDcGByuBKwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5
+Lmx1eHRydXN0Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQELBQADggIBAGoZ
+FO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9BzZAcg4atmpZ1gDlaCDdLnIN
+H2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTOjFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW
+7MM3LGVYvlcAGvI1+ut7MV3CwRI9loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIu
+ZY+kt9J/Z93I055cqqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWA
+VWe+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/JEAdemrR
+TxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKrezrnK+T+Tb/mjuuqlPpmt
+/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQfLSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc
+7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31I
+iyBMz2TWuJdGsE7RKlY6oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
+-----END CERTIFICATE-----
+
+TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
+=============================================
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT
+D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr
+IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g
+TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp
+ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD
+VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt
+c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth
+bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11
+IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8
+6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc
+wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0
+3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9
+WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU
+ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
+KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh
+AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc
+lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
+e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
+q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
+-----END CERTIFICATE-----
+
+GDCA TrustAUTH R5 ROOT
+======================
+-----BEGIN CERTIFICATE-----
+MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw
+BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD
+DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow
+YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
+IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs
+AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p
+OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr
+pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ
+9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ
+xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM
+R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ
+D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4
+oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx
+9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
+p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9
+H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35
+6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd
++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ
+HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD
+F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
+8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv
+/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT
+aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
+-----END CERTIFICATE-----
+
+TrustCor RootCert CA-1
+======================
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
+MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
+U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
+MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
+YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
+VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
+dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
+jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
+pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
+JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
+gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
+/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
+BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
+mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
+ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
+qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
+3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
+-----END CERTIFICATE-----
+
+TrustCor RootCert CA-2
+======================
+-----BEGIN CERTIFICATE-----
+MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
+DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
+eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
+eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
+MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
+bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
+cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
+IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
+ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
+RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
+oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
+XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
+/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
+jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
+eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
+rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
+8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
+2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
+Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
+kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
+2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
+S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
+PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
+DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
+RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
+xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
+RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
+-----END CERTIFICATE-----
+
+TrustCor ECA-1
+==============
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
+MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
+U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
+N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
+MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
+IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
+MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
+xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
+p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
+YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
+f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
+/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
+hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
+J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
+jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
+-----END CERTIFICATE-----
+
+SSL.com Root Certification Authority RSA
+========================================
+-----BEGIN CERTIFICATE-----
+MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM
+BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x
+MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw
+MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
+EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM
+LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C
+Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8
+P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge
+oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp
+k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z
+fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ
+gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2
+UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8
+1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s
+bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr
+dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf
+ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl
+u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq
+erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj
+MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ
+vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI
+Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y
+wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI
+WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k=
+-----END CERTIFICATE-----
+
+SSL.com Root Certification Authority ECC
+========================================
+-----BEGIN CERTIFICATE-----
+MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV
+BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv
+BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy
+MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO
+BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
+bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+
+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR
+hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT
+jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW
+e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z
+5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
+-----END CERTIFICATE-----
+
+SSL.com EV Root Certification Authority RSA R2
+==============================================
+-----BEGIN CERTIFICATE-----
+MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w
+DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
+MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
+MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
+DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD
+VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh
+hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w
+cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO
+Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+
+B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh
+CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim
+9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto
+RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm
+JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48
++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
+HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp
+qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1
+++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx
+Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G
+guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz
+OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7
+CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq
+lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR
+rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1
+hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX
+9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
+-----END CERTIFICATE-----
+
+SSL.com EV Root Certification Authority ECC
+===========================================
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV
+BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy
+BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw
+MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
+EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
+LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy
+3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O
+BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe
+5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ
+N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm
+m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
+-----END CERTIFICATE-----
diff --git a/class/payment/authorize/phpunit.xml.dist b/class/payment/authorize/phpunit.xml.dist
new file mode 100644
index 0000000..186a680
--- /dev/null
+++ b/class/payment/authorize/phpunit.xml.dist
@@ -0,0 +1,49 @@
+
+
+
+
+
+ ./tests
+
+
+
+
+
+
+
+
+
+
+ ./lib
+
+ ./vendor
+ ./tests
+ ./build
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/class/payment/authorize/resources/ControllerTemplate.phpt b/class/payment/authorize/resources/ControllerTemplate.phpt
new file mode 100644
index 0000000..6b57aa9
--- /dev/null
+++ b/class/payment/authorize/resources/ControllerTemplate.phpt
@@ -0,0 +1,21 @@
+apiRequest->
+
+ //validate non-required fields of $this->apiRequest->
+ }
+}
\ No newline at end of file
diff --git a/class/payment/paypal/LICENSE b/class/payment/paypal/LICENSE
new file mode 100644
index 0000000..a20bbb1
--- /dev/null
+++ b/class/payment/paypal/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2016 PayPal
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/class/payment/paypal/README.md b/class/payment/paypal/README.md
new file mode 100644
index 0000000..7b4cc2f
--- /dev/null
+++ b/class/payment/paypal/README.md
@@ -0,0 +1,175 @@
+# REST API SDK for PHP V2
+
+
+
+### To consolidate support across various channels, we have currently turned off the feature of GitHub issues. Please visit https://www.paypal.com/support to submit your request or ask questions within our community forum.
+
+__Welcome to PayPal PHP SDK__. This repository contains PayPal's PHP SDK and samples for [v2/checkout/orders](https://developer.paypal.com/docs/api/orders/v2/) and [v2/payments](https://developer.paypal.com/docs/api/payments/v2/) APIs.
+
+This is a part of the next major PayPal SDK. It includes a simplified interface to only provide simple model objects and blueprints for HTTP calls. This repo currently contains functionality for PayPal Checkout APIs which includes [Orders V2](https://developer.paypal.com/docs/api/orders/v2/) and [Payments V2](https://developer.paypal.com/docs/api/payments/v2/).
+
+Please refer to the [PayPal Checkout Integration Guide](https://developer.paypal.com/docs/checkout/) for more information. Also refer to [Setup your SDK](https://developer.paypal.com/docs/checkout/reference/server-integration/setup-sdk/) for additional information about setting up the SDK's.
+## Latest Updates
+Beginning January 2020, PayPal will require an update on the Personal Home Page (PHP) Checkout Software Developer Kit (SDK) to version 1.0.1. Merchants who have not updated their PHP Checkout SDK to version 1.0.1 will not be able to deserialize responses using outdated SDK integrations.
+All PHP Checkout SDK integrations are expected to be updated by March 1, 2020. Merchants are encouraged to prepare for the update as soon as possible to avoid possible service disruption.
+The Status Page has been updated with this information. The bulletin can be found [here](https://www.paypal-status.com/history/eventdetails/11015)
+
+## Prerequisites
+
+PHP 5.6 and above
+
+An environment which supports TLS 1.2 (see the TLS-update site for more information)
+
+## Usage
+
+### Binaries
+
+It is not mandatory to fork this repository for using the PayPal SDK. You can refer [PayPal Checkout Server SDK](https://developer.paypal.com/docs/checkout/reference/server-integration) for configuring and working with SDK without forking this code.
+
+For contributing or referring the samples, You can fork/refer this repository.
+
+### Setting up credentials
+Get client ID and client secret by going to https://developer.paypal.com/developer/applications and generating a REST API app. Get Client ID and Secret from there.
+
+```php
+require __DIR__ . '/vendor/autoload.php';
+use PayPalCheckoutSdk\Core\PayPalHttpClient;
+use PayPalCheckoutSdk\Core\SandboxEnvironment;
+// Creating an environment
+$clientId = "<>";
+$clientSecret = "<>";
+
+$environment = new SandboxEnvironment($clientId, $clientSecret);
+$client = new PayPalHttpClient($environment);
+```
+
+## Examples
+### Creating an Order
+#### Code:
+```php
+// Construct a request object and set desired parameters
+// Here, OrdersCreateRequest() creates a POST request to /v2/checkout/orders
+use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
+$request = new OrdersCreateRequest();
+$request->prefer('return=representation');
+$request->body = [
+ "intent" => "CAPTURE",
+ "purchase_units" => [[
+ "reference_id" => "test_ref_id1",
+ "amount" => [
+ "value" => "100.00",
+ "currency_code" => "USD"
+ ]
+ ]],
+ "application_context" => [
+ "cancel_url" => "https://example.com/cancel",
+ "return_url" => "https://example.com/return"
+ ]
+ ];
+
+try {
+ // Call API with your client and get a response for your call
+ $response = $client->execute($request);
+
+ // If call returns body in response, you can get the deserialized version from the result attribute of the response
+ print_r($response);
+}catch (HttpException $ex) {
+ echo $ex->statusCode;
+ print_r($ex->getMessage());
+}
+```
+#### Example Output:
+```
+Status Code: 201
+Id: 8GB67279RC051624C
+Intent: CAPTURE
+Gross_amount:
+ Currency_code: USD
+ Value: 100.00
+Purchase_units:
+ 1:
+ Amount:
+ Currency_code: USD
+ Value: 100.00
+Create_time: 2018-08-06T23:34:31Z
+Links:
+ 1:
+ Href: https://api.sandbox.paypal.com/v2/checkout/orders/8GB67279RC051624C
+ Rel: self
+ Method: GET
+ 2:
+ Href: https://www.sandbox.paypal.com/checkoutnow?token=8GB67279RC051624C
+ Rel: approve
+ Method: GET
+ 3:
+ Href: https://api.sandbox.paypal.com/v2/checkout/orders/8GB67279RC051624C/capture
+ Rel: capture
+ Method: POST
+Status: CREATED
+```
+
+## Capturing an Order
+Before capture, Order should be approved by the buyer using the approval URL returned in the create order response.
+### Code to Execute:
+```php
+use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
+// Here, OrdersCaptureRequest() creates a POST request to /v2/checkout/orders
+// $response->result->id gives the orderId of the order created above
+$request = new OrdersCaptureRequest("APPROVED-ORDER-ID");
+$request->prefer('return=representation');
+try {
+ // Call API with your client and get a response for your call
+ $response = $client->execute($request);
+
+ // If call returns body in response, you can get the deserialized version from the result attribute of the response
+ print_r($response);
+}catch (HttpException $ex) {
+ echo $ex->statusCode;
+ print_r($ex->getMessage());
+}
+```
+
+#### Example Output:
+```
+Status Code: 201
+Id: 8GB67279RC051624C
+Create_time: 2018-08-06T23:39:11Z
+Update_time: 2018-08-06T23:39:11Z
+Payer:
+ Name:
+ Given_name: test
+ Surname: buyer
+ Email_address: test-buyer@paypal.com
+ Payer_id: KWADC7LXRRWCE
+ Phone:
+ Phone_number:
+ National_number: 408-411-2134
+ Address:
+ Country_code: US
+Links:
+ 1:
+ Href: https://api.sandbox.paypal.com/v2/checkout/orders/3L848818A2897925Y
+ Rel: self
+ Method: GET
+Status: COMPLETED
+```
+
+## Running tests
+
+To run integration tests using your client id and secret, clone this repository and run the following command:
+```sh
+$ composer install
+$ CLIENT_ID=YOUR_SANDBOX_CLIENT_ID CLIENT_SECRET=OUR_SANDBOX_CLIENT_SECRET composer integration
+```
+
+## Samples
+
+You can start off by trying out [creating and capturing an order](/samples/CaptureIntentExamples/RunAll.php)
+
+To try out different samples for both create and authorize intent check [this link](/samples)
+
+Note: Update the `PayPalClient.php` with your sandbox client credentials or pass your client credentials as environment variable while executing the samples.
+
+
+## License
+Code released under [SDK LICENSE](LICENSE)
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessToken.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessToken.php
new file mode 100644
index 0000000..a8fa1be
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessToken.php
@@ -0,0 +1,25 @@
+token = $token;
+ $this->tokenType = $tokenType;
+ $this->expiresIn = $expiresIn;
+ $this->createDate = time();
+ }
+
+ public function isExpired()
+ {
+ return time() >= $this->createDate + $this->expiresIn;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessTokenRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessTokenRequest.php
new file mode 100644
index 0000000..5c3e26e
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AccessTokenRequest.php
@@ -0,0 +1,27 @@
+headers["Authorization"] = "Basic " . $environment->authorizationString();
+ $body = [
+ "grant_type" => "client_credentials"
+ ];
+
+ if (!is_null($refreshToken))
+ {
+ $body["grant_type"] = "refresh_token";
+ $body["refresh_token"] = $refreshToken;
+ }
+
+ $this->body = $body;
+ $this->headers["Content-Type"] = "application/x-www-form-urlencoded";
+ }
+}
+
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AuthorizationInjector.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AuthorizationInjector.php
new file mode 100644
index 0000000..0b38bba
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/AuthorizationInjector.php
@@ -0,0 +1,51 @@
+client = $client;
+ $this->environment = $environment;
+ $this->refreshToken = $refreshToken;
+ }
+
+ public function inject($request)
+ {
+ if (!$this->hasAuthHeader($request) && !$this->isAuthRequest($request))
+ {
+ if (is_null($this->accessToken) || $this->accessToken->isExpired())
+ {
+ $this->accessToken = $this->fetchAccessToken();
+ }
+ $request->headers['Authorization'] = 'Bearer ' . $this->accessToken->token;
+ }
+ }
+
+ private function fetchAccessToken()
+ {
+ $accessTokenResponse = $this->client->execute(new AccessTokenRequest($this->environment, $this->refreshToken));
+ $accessToken = $accessTokenResponse->result;
+ return new AccessToken($accessToken->access_token, $accessToken->token_type, $accessToken->expires_in);
+ }
+
+ private function isAuthRequest($request)
+ {
+ return $request instanceof AccessTokenRequest || $request instanceof RefreshTokenRequest;
+ }
+
+ private function hasAuthHeader(HttpRequest $request)
+ {
+ return array_key_exists("Authorization", $request->headers);
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/FPTIInstrumentationInjector.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/FPTIInstrumentationInjector.php
new file mode 100644
index 0000000..898a750
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/FPTIInstrumentationInjector.php
@@ -0,0 +1,16 @@
+headers["sdk_name"] = "Checkout SDK";
+ $request->headers["sdk_version"] = "1.0.1";
+ $request->headers["sdk_tech_stack"] = "PHP " . PHP_VERSION;
+ $request->headers["api_integration_type"] = "PAYPALSDK";
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/GzipInjector.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/GzipInjector.php
new file mode 100644
index 0000000..202b6b1
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/GzipInjector.php
@@ -0,0 +1,14 @@
+headers["Accept-Encoding"] = "gzip";
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalEnvironment.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalEnvironment.php
new file mode 100644
index 0000000..252864b
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalEnvironment.php
@@ -0,0 +1,23 @@
+clientId = $clientId;
+ $this->clientSecret = $clientSecret;
+ }
+
+ public function authorizationString()
+ {
+ return base64_encode($this->clientId . ":" . $this->clientSecret);
+ }
+}
+
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalHttpClient.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalHttpClient.php
new file mode 100644
index 0000000..3b3c205
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/PayPalHttpClient.php
@@ -0,0 +1,27 @@
+refreshToken = $refreshToken;
+ $this->authInjector = new AuthorizationInjector($this, $environment, $refreshToken);
+ $this->addInjector($this->authInjector);
+ $this->addInjector(new GzipInjector());
+ $this->addInjector(new FPTIInstrumentationInjector());
+ }
+
+ public function userAgent()
+ {
+ return UserAgent::getValue();
+ }
+}
+
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/ProductionEnvironment.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/ProductionEnvironment.php
new file mode 100644
index 0000000..20a47b2
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/ProductionEnvironment.php
@@ -0,0 +1,16 @@
+headers["Authorization"] = "Basic " . $environment->authorizationString();
+ $this->headers["Content-Type"] = "application/x-www-form-urlencoded";
+ $this->body = [
+ "grant_type" => "authorization_code",
+ "code" => $authorizationCode
+ ];
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Core/SandboxEnvironment.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/SandboxEnvironment.php
new file mode 100644
index 0000000..92c1f7a
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Core/SandboxEnvironment.php
@@ -0,0 +1,16 @@
+path = str_replace("{order_id}", urlencode($orderId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalClientMetadataId($payPalClientMetadataId)
+ {
+ $this->headers["PayPal-Client-Metadata-Id"] = $payPalClientMetadataId;
+ }
+ public function payPalRequestId($payPalRequestId)
+ {
+ $this->headers["PayPal-Request-Id"] = $payPalRequestId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCaptureRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCaptureRequest.php
new file mode 100644
index 0000000..8af8a60
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCaptureRequest.php
@@ -0,0 +1,37 @@
+path = str_replace("{order_id}", urlencode($orderId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalClientMetadataId($payPalClientMetadataId)
+ {
+ $this->headers["PayPal-Client-Metadata-Id"] = $payPalClientMetadataId;
+ }
+ public function payPalRequestId($payPalRequestId)
+ {
+ $this->headers["PayPal-Request-Id"] = $payPalRequestId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCreateRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCreateRequest.php
new file mode 100644
index 0000000..0d9f5a9
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersCreateRequest.php
@@ -0,0 +1,31 @@
+headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalPartnerAttributionId($payPalPartnerAttributionId)
+ {
+ $this->headers["PayPal-Partner-Attribution-Id"] = $payPalPartnerAttributionId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersGetRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersGetRequest.php
new file mode 100644
index 0000000..3d1c8f1
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersGetRequest.php
@@ -0,0 +1,26 @@
+path = str_replace("{order_id}", urlencode($orderId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersPatchRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersPatchRequest.php
new file mode 100644
index 0000000..4313c42
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersPatchRequest.php
@@ -0,0 +1,26 @@
+path = str_replace("{order_id}", urlencode($orderId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersValidateRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersValidateRequest.php
new file mode 100644
index 0000000..0a68f90
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Orders/OrdersValidateRequest.php
@@ -0,0 +1,29 @@
+path = str_replace("{order_id}", urlencode($orderId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalClientMetadataId($payPalClientMetadataId)
+ {
+ $this->headers["PayPal-Client-Metadata-Id"] = $payPalClientMetadataId;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsCaptureRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsCaptureRequest.php
new file mode 100644
index 0000000..68d5e81
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsCaptureRequest.php
@@ -0,0 +1,33 @@
+path = str_replace("{authorization_id}", urlencode($authorizationId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalRequestId($payPalRequestId)
+ {
+ $this->headers["PayPal-Request-Id"] = $payPalRequestId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsGetRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsGetRequest.php
new file mode 100644
index 0000000..e088224
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsGetRequest.php
@@ -0,0 +1,25 @@
+path = str_replace("{authorization_id}", urlencode($authorizationId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsReauthorizeRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsReauthorizeRequest.php
new file mode 100644
index 0000000..7547ece
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsReauthorizeRequest.php
@@ -0,0 +1,33 @@
+path = str_replace("{authorization_id}", urlencode($authorizationId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalRequestId($payPalRequestId)
+ {
+ $this->headers["PayPal-Request-Id"] = $payPalRequestId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsVoidRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsVoidRequest.php
new file mode 100644
index 0000000..f5c0f74
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/AuthorizationsVoidRequest.php
@@ -0,0 +1,25 @@
+path = str_replace("{authorization_id}", urlencode($authorizationId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesGetRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesGetRequest.php
new file mode 100644
index 0000000..5b9b335
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesGetRequest.php
@@ -0,0 +1,25 @@
+path = str_replace("{capture_id}", urlencode($captureId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesRefundRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesRefundRequest.php
new file mode 100644
index 0000000..7624c6b
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/CapturesRefundRequest.php
@@ -0,0 +1,33 @@
+path = str_replace("{capture_id}", urlencode($captureId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+ public function payPalRequestId($payPalRequestId)
+ {
+ $this->headers["PayPal-Request-Id"] = $payPalRequestId;
+ }
+ public function prefer($prefer)
+ {
+ $this->headers["Prefer"] = $prefer;
+ }
+}
diff --git a/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/RefundsGetRequest.php b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/RefundsGetRequest.php
new file mode 100644
index 0000000..cdf1b8a
--- /dev/null
+++ b/class/payment/paypal/lib/PayPalCheckoutSdk/Payments/RefundsGetRequest.php
@@ -0,0 +1,25 @@
+path = str_replace("{refund_id}", urlencode($refundId), $this->path);
+ $this->headers["Content-Type"] = "application/json";
+ }
+
+
+}
diff --git a/class/payment/paypal/vendor/autoload.php b/class/payment/paypal/vendor/autoload.php
new file mode 100644
index 0000000..fbf903a
--- /dev/null
+++ b/class/payment/paypal/vendor/autoload.php
@@ -0,0 +1,7 @@
+ var_export($binPath, true),
+ '__DIR__' => var_export(dirname($binPath), true),
+ ));
+
+ eval($contents);
+ exit(0);
+}
+include $binPath;
diff --git a/class/payment/paypal/vendor/bin/phpunit.bat b/class/payment/paypal/vendor/bin/phpunit.bat
new file mode 100644
index 0000000..b377b3e
--- /dev/null
+++ b/class/payment/paypal/vendor/bin/phpunit.bat
@@ -0,0 +1,4 @@
+@ECHO OFF
+setlocal DISABLEDELAYEDEXPANSION
+SET BIN_TARGET=%~dp0/../phpunit/phpunit/phpunit
+php "%BIN_TARGET%" %*
diff --git a/class/payment/paypal/vendor/composer/ClassLoader.php b/class/payment/paypal/vendor/composer/ClassLoader.php
new file mode 100644
index 0000000..247294d
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/ClassLoader.php
@@ -0,0 +1,479 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier
+ * @author Jordi Boggiano
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ private $vendorDir;
+
+ // PSR-4
+ private $prefixLengthsPsr4 = array();
+ private $prefixDirsPsr4 = array();
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ private $prefixesPsr0 = array();
+ private $fallbackDirsPsr0 = array();
+
+ private $useIncludePath = false;
+ private $classMap = array();
+ private $classMapAuthoritative = false;
+ private $missingClasses = array();
+ private $apcuPrefix;
+
+ private static $registeredLoaders = array();
+
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap Class to filename map
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix, either
+ * appending or prepending to the ones previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ (array) $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace, either
+ * appending or prepending to the ones previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function addPsr4($prefix, $paths, $prepend = false)
+ {
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ (array) $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ (array) $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ (array) $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ (array) $paths
+ );
+ }
+ }
+
+ /**
+ * Registers a set of PSR-0 directories for a given prefix,
+ * replacing any others previously set for this prefix.
+ *
+ * @param string $prefix The prefix
+ * @param array|string $paths The PSR-0 base directories
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Registers a set of PSR-4 directories for a given namespace,
+ * replacing any others previously set for this namespace.
+ *
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param array|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * Registers this instance as an autoloader.
+ *
+ * @param bool $prepend Whether to prepend the autoloader or not
+ */
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
+ }
+
+ /**
+ * Unregisters this instance as an autoloader.
+ */
+ public function unregister()
+ {
+ spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
+ }
+
+ /**
+ * Loads the given class or interface.
+ *
+ * @param string $class The name of the class
+ * @return bool|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ includeFile($file);
+
+ return true;
+ }
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ */
+function includeFile($file)
+{
+ include $file;
+}
diff --git a/class/payment/paypal/vendor/composer/InstalledVersions.php b/class/payment/paypal/vendor/composer/InstalledVersions.php
new file mode 100644
index 0000000..65bf06e
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/InstalledVersions.php
@@ -0,0 +1,530 @@
+
+ array (
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => NULL,
+ 'name' => 'paypal/paypal-checkout-sdk',
+ ),
+ 'versions' =>
+ array (
+ 'doctrine/instantiator' =>
+ array (
+ 'pretty_version' => '1.4.0',
+ 'version' => '1.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
+ ),
+ 'myclabs/deep-copy' =>
+ array (
+ 'pretty_version' => '1.10.2',
+ 'version' => '1.10.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
+ 'replaced' =>
+ array (
+ 0 => '1.10.2',
+ ),
+ ),
+ 'paypal/paypal-checkout-sdk' =>
+ array (
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => NULL,
+ ),
+ 'paypal/paypalhttp' =>
+ array (
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1ad9b846a046f09d6135cbf2cbaa7701bbc630a3',
+ ),
+ 'phpdocumentor/reflection-common' =>
+ array (
+ 'pretty_version' => '2.2.0',
+ 'version' => '2.2.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
+ ),
+ 'phpdocumentor/reflection-docblock' =>
+ array (
+ 'pretty_version' => '5.2.2',
+ 'version' => '5.2.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
+ ),
+ 'phpdocumentor/type-resolver' =>
+ array (
+ 'pretty_version' => '1.4.0',
+ 'version' => '1.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
+ ),
+ 'phpspec/prophecy' =>
+ array (
+ 'pretty_version' => 'v1.10.3',
+ 'version' => '1.10.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '451c3cd1418cf640de218914901e51b064abb093',
+ ),
+ 'phpunit/php-code-coverage' =>
+ array (
+ 'pretty_version' => '4.0.8',
+ 'version' => '4.0.8.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ef7b2f56815df854e66ceaee8ebe9393ae36a40d',
+ ),
+ 'phpunit/php-file-iterator' =>
+ array (
+ 'pretty_version' => '1.4.5',
+ 'version' => '1.4.5.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4',
+ ),
+ 'phpunit/php-text-template' =>
+ array (
+ 'pretty_version' => '1.2.1',
+ 'version' => '1.2.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
+ ),
+ 'phpunit/php-timer' =>
+ array (
+ 'pretty_version' => '1.0.9',
+ 'version' => '1.0.9.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
+ ),
+ 'phpunit/php-token-stream' =>
+ array (
+ 'pretty_version' => '2.0.2',
+ 'version' => '2.0.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '791198a2c6254db10131eecfe8c06670700904db',
+ ),
+ 'phpunit/phpunit' =>
+ array (
+ 'pretty_version' => '5.7.27',
+ 'version' => '5.7.27.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c',
+ ),
+ 'phpunit/phpunit-mock-objects' =>
+ array (
+ 'pretty_version' => '3.4.4',
+ 'version' => '3.4.4.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'a23b761686d50a560cc56233b9ecf49597cc9118',
+ ),
+ 'sebastian/code-unit-reverse-lookup' =>
+ array (
+ 'pretty_version' => '1.0.2',
+ 'version' => '1.0.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
+ ),
+ 'sebastian/comparator' =>
+ array (
+ 'pretty_version' => '1.2.4',
+ 'version' => '1.2.4.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '2b7424b55f5047b47ac6e5ccb20b2aea4011d9be',
+ ),
+ 'sebastian/diff' =>
+ array (
+ 'pretty_version' => '1.4.3',
+ 'version' => '1.4.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '7f066a26a962dbe58ddea9f72a4e82874a3975a4',
+ ),
+ 'sebastian/environment' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '5795ffe5dc5b02460c3e34222fee8cbe245d8fac',
+ ),
+ 'sebastian/exporter' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4',
+ ),
+ 'sebastian/global-state' =>
+ array (
+ 'pretty_version' => '1.1.1',
+ 'version' => '1.1.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'bc37d50fea7d017d3d340f230811c9f1d7280af4',
+ ),
+ 'sebastian/object-enumerator' =>
+ array (
+ 'pretty_version' => '2.0.1',
+ 'version' => '2.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1311872ac850040a79c3c058bea3e22d0f09cbb7',
+ ),
+ 'sebastian/recursion-context' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '2c3ba150cbec723aa057506e73a8d33bdb286c9a',
+ ),
+ 'sebastian/resource-operations' =>
+ array (
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
+ ),
+ 'sebastian/version' =>
+ array (
+ 'pretty_version' => '2.0.1',
+ 'version' => '2.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
+ ),
+ 'symfony/polyfill-ctype' =>
+ array (
+ 'pretty_version' => 'v1.22.1',
+ 'version' => '1.22.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
+ ),
+ 'symfony/yaml' =>
+ array (
+ 'pretty_version' => 'v4.4.19',
+ 'version' => '4.4.19.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9',
+ ),
+ 'webmozart/assert' =>
+ array (
+ 'pretty_version' => '1.9.1',
+ 'version' => '1.9.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
+ ),
+ ),
+);
+private static $canGetVendors;
+private static $installedByVendor = array();
+
+
+
+
+
+
+
+public static function getInstalledPackages()
+{
+$packages = array();
+foreach (self::getInstalled() as $installed) {
+$packages[] = array_keys($installed['versions']);
+}
+
+
+if (1 === \count($packages)) {
+return $packages[0];
+}
+
+return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+}
+
+
+
+
+
+
+
+
+
+public static function isInstalled($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (isset($installed['versions'][$packageName])) {
+return true;
+}
+}
+
+return false;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function satisfies(VersionParser $parser, $packageName, $constraint)
+{
+$constraint = $parser->parseConstraints($constraint);
+$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+return $provided->matches($constraint);
+}
+
+
+
+
+
+
+
+
+
+
+public static function getVersionRanges($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+$ranges = array();
+if (isset($installed['versions'][$packageName]['pretty_version'])) {
+$ranges[] = $installed['versions'][$packageName]['pretty_version'];
+}
+if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+}
+if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+}
+if (array_key_exists('provided', $installed['versions'][$packageName])) {
+$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+}
+
+return implode(' || ', $ranges);
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getPrettyVersion($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['pretty_version'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getReference($packageName)
+{
+foreach (self::getInstalled() as $installed) {
+if (!isset($installed['versions'][$packageName])) {
+continue;
+}
+
+if (!isset($installed['versions'][$packageName]['reference'])) {
+return null;
+}
+
+return $installed['versions'][$packageName]['reference'];
+}
+
+throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+}
+
+
+
+
+
+public static function getRootPackage()
+{
+$installed = self::getInstalled();
+
+return $installed[0]['root'];
+}
+
+
+
+
+
+
+
+public static function getRawData()
+{
+return self::$installed;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+public static function reload($data)
+{
+self::$installed = $data;
+self::$installedByVendor = array();
+}
+
+
+
+
+private static function getInstalled()
+{
+if (null === self::$canGetVendors) {
+self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+}
+
+$installed = array();
+
+if (self::$canGetVendors) {
+foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+if (isset(self::$installedByVendor[$vendorDir])) {
+$installed[] = self::$installedByVendor[$vendorDir];
+} elseif (is_file($vendorDir.'/composer/installed.php')) {
+$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+}
+}
+}
+
+$installed[] = self::$installed;
+
+return $installed;
+}
+}
diff --git a/class/payment/paypal/vendor/composer/LICENSE b/class/payment/paypal/vendor/composer/LICENSE
new file mode 100644
index 0000000..f27399a
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/class/payment/paypal/vendor/composer/autoload_classmap.php b/class/payment/paypal/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000..8ae0cb3
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/autoload_classmap.php
@@ -0,0 +1,475 @@
+ $vendorDir . '/composer/InstalledVersions.php',
+ 'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
+ 'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
+ 'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
+ 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php',
+ 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php',
+ 'PHPUnit\\Framework\\BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php',
+ 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/Test.php',
+ 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php',
+ 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php',
+ 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php',
+ 'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
+ 'PHPUnit_Extensions_GroupTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
+ 'PHPUnit_Extensions_PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
+ 'PHPUnit_Extensions_PhptTestSuite' => $vendorDir . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
+ 'PHPUnit_Extensions_RepeatedTest' => $vendorDir . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
+ 'PHPUnit_Extensions_TestDecorator' => $vendorDir . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
+ 'PHPUnit_Extensions_TicketListener' => $vendorDir . '/phpunit/phpunit/src/Extensions/TicketListener.php',
+ 'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php',
+ 'PHPUnit_Framework_AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
+ 'PHPUnit_Framework_BaseTestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
+ 'PHPUnit_Framework_CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
+ 'PHPUnit_Framework_Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint.php',
+ 'PHPUnit_Framework_Constraint_And' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/And.php',
+ 'PHPUnit_Framework_Constraint_ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
+ 'PHPUnit_Framework_Constraint_ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
+ 'PHPUnit_Framework_Constraint_Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
+ 'PHPUnit_Framework_Constraint_Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
+ 'PHPUnit_Framework_Constraint_ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
+ 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
+ 'PHPUnit_Framework_Constraint_Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
+ 'PHPUnit_Framework_Constraint_Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
+ 'PHPUnit_Framework_Constraint_DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
+ 'PHPUnit_Framework_Constraint_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
+ 'PHPUnit_Framework_Constraint_ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
+ 'PHPUnit_Framework_Constraint_ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
+ 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
+ 'PHPUnit_Framework_Constraint_FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
+ 'PHPUnit_Framework_Constraint_GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
+ 'PHPUnit_Framework_Constraint_IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
+ 'PHPUnit_Framework_Constraint_IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
+ 'PHPUnit_Framework_Constraint_IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
+ 'PHPUnit_Framework_Constraint_IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
+ 'PHPUnit_Framework_Constraint_IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
+ 'PHPUnit_Framework_Constraint_IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
+ 'PHPUnit_Framework_Constraint_IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
+ 'PHPUnit_Framework_Constraint_IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
+ 'PHPUnit_Framework_Constraint_IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
+ 'PHPUnit_Framework_Constraint_IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
+ 'PHPUnit_Framework_Constraint_IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
+ 'PHPUnit_Framework_Constraint_IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
+ 'PHPUnit_Framework_Constraint_IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
+ 'PHPUnit_Framework_Constraint_IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
+ 'PHPUnit_Framework_Constraint_IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
+ 'PHPUnit_Framework_Constraint_JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
+ 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
+ 'PHPUnit_Framework_Constraint_LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
+ 'PHPUnit_Framework_Constraint_Not' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
+ 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
+ 'PHPUnit_Framework_Constraint_Or' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
+ 'PHPUnit_Framework_Constraint_PCREMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
+ 'PHPUnit_Framework_Constraint_SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
+ 'PHPUnit_Framework_Constraint_StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
+ 'PHPUnit_Framework_Constraint_StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
+ 'PHPUnit_Framework_Constraint_StringMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
+ 'PHPUnit_Framework_Constraint_StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
+ 'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
+ 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
+ 'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
+ 'PHPUnit_Framework_CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
+ 'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php',
+ 'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
+ 'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
+ 'PHPUnit_Framework_Error_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php',
+ 'PHPUnit_Framework_Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php',
+ 'PHPUnit_Framework_ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
+ 'PHPUnit_Framework_ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
+ 'PHPUnit_Framework_IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
+ 'PHPUnit_Framework_IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
+ 'PHPUnit_Framework_IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
+ 'PHPUnit_Framework_InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
+ 'PHPUnit_Framework_MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
+ 'PHPUnit_Framework_MockObject_BadMethodCallException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
+ 'PHPUnit_Framework_MockObject_Builder_Identity' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
+ 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
+ 'PHPUnit_Framework_MockObject_Builder_Match' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
+ 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
+ 'PHPUnit_Framework_MockObject_Builder_Namespace' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
+ 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
+ 'PHPUnit_Framework_MockObject_Builder_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
+ 'PHPUnit_Framework_MockObject_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
+ 'PHPUnit_Framework_MockObject_Generator' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
+ 'PHPUnit_Framework_MockObject_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
+ 'PHPUnit_Framework_MockObject_InvocationMocker' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
+ 'PHPUnit_Framework_MockObject_Invocation_Object' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
+ 'PHPUnit_Framework_MockObject_Invocation_Static' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
+ 'PHPUnit_Framework_MockObject_Invokable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
+ 'PHPUnit_Framework_MockObject_Matcher' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
+ 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_Invocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
+ 'PHPUnit_Framework_MockObject_Matcher_MethodName' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
+ 'PHPUnit_Framework_MockObject_Matcher_Parameters' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
+ 'PHPUnit_Framework_MockObject_MockBuilder' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
+ 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
+ 'PHPUnit_Framework_MockObject_RuntimeException' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
+ 'PHPUnit_Framework_MockObject_Stub' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
+ 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
+ 'PHPUnit_Framework_MockObject_Stub_Exception' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
+ 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
+ 'PHPUnit_Framework_MockObject_Stub_Return' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnReference' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnReference.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
+ 'PHPUnit_Framework_MockObject_Verifiable' => $vendorDir . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
+ 'PHPUnit_Framework_OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php',
+ 'PHPUnit_Framework_RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php',
+ 'PHPUnit_Framework_RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
+ 'PHPUnit_Framework_SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
+ 'PHPUnit_Framework_SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php',
+ 'PHPUnit_Framework_SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
+ 'PHPUnit_Framework_SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
+ 'PHPUnit_Framework_SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
+ 'PHPUnit_Framework_SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php',
+ 'PHPUnit_Framework_Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php',
+ 'PHPUnit_Framework_TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php',
+ 'PHPUnit_Framework_TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php',
+ 'PHPUnit_Framework_TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php',
+ 'PHPUnit_Framework_TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php',
+ 'PHPUnit_Framework_TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php',
+ 'PHPUnit_Framework_TestSuite_DataProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
+ 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
+ 'PHPUnit_Framework_Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php',
+ 'PHPUnit_Framework_WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
+ 'PHPUnit_Runner_BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
+ 'PHPUnit_Runner_Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php',
+ 'PHPUnit_Runner_Filter_Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
+ 'PHPUnit_Runner_Filter_GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group.php',
+ 'PHPUnit_Runner_Filter_Group_Exclude' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
+ 'PHPUnit_Runner_Filter_Group_Include' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
+ 'PHPUnit_Runner_Filter_Test' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Test.php',
+ 'PHPUnit_Runner_StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
+ 'PHPUnit_Runner_TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
+ 'PHPUnit_Runner_Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php',
+ 'PHPUnit_TextUI_Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php',
+ 'PHPUnit_TextUI_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
+ 'PHPUnit_TextUI_TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php',
+ 'PHPUnit_Util_Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php',
+ 'PHPUnit_Util_Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php',
+ 'PHPUnit_Util_ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
+ 'PHPUnit_Util_ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php',
+ 'PHPUnit_Util_Fileloader' => $vendorDir . '/phpunit/phpunit/src/Util/Fileloader.php',
+ 'PHPUnit_Util_Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php',
+ 'PHPUnit_Util_Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php',
+ 'PHPUnit_Util_Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php',
+ 'PHPUnit_Util_GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php',
+ 'PHPUnit_Util_InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
+ 'PHPUnit_Util_Log_JSON' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JSON.php',
+ 'PHPUnit_Util_Log_JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php',
+ 'PHPUnit_Util_Log_TAP' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TAP.php',
+ 'PHPUnit_Util_Log_TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
+ 'PHPUnit_Util_PHP' => $vendorDir . '/phpunit/phpunit/src/Util/PHP.php',
+ 'PHPUnit_Util_PHP_Default' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Default.php',
+ 'PHPUnit_Util_PHP_Windows' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/Windows.php',
+ 'PHPUnit_Util_Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php',
+ 'PHPUnit_Util_Regex' => $vendorDir . '/phpunit/phpunit/src/Util/Regex.php',
+ 'PHPUnit_Util_String' => $vendorDir . '/phpunit/phpunit/src/Util/String.php',
+ 'PHPUnit_Util_Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php',
+ 'PHPUnit_Util_TestDox_NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_Text' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_XML' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/XML.php',
+ 'PHPUnit_Util_TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
+ 'PHPUnit_Util_Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php',
+ 'PHPUnit_Util_XML' => $vendorDir . '/phpunit/phpunit/src/Util/XML.php',
+ 'PHP_Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
+ 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ASYNC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AWAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMPILER_HALT_OFFSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENUM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EQUALS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_JOIN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_CP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_OP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ONUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SHAPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SUPER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php',
+ 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
+ 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPELIST_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPELIST_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHERE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_ATTRIBUTE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CATEGORY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CATEGORY_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CHILDREN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_LABEL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_REQUIRED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TAG_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TAG_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TEXT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php',
+ 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
+ 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
+ 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php',
+ 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php',
+ 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
+ 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
+ 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
+ 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php',
+ 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
+ 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php',
+ 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php',
+ 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php',
+ 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php',
+ 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php',
+ 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php',
+ 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php',
+ 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php',
+ 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php',
+ 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php',
+ 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php',
+ 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php',
+ 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php',
+ 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php',
+ 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php',
+ 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php',
+ 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php',
+ 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php',
+ 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => $vendorDir . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
+ 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
+ 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => $vendorDir . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
+ 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php',
+ 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php',
+ 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php',
+ 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php',
+ 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php',
+ 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php',
+ 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php',
+ 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/Exception.php',
+ 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php',
+ 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/RuntimeException.php',
+ 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php',
+ 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php',
+ 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php',
+ 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
+ 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php',
+ 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php',
+ 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php',
+ 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php',
+ 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
+ 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php',
+);
diff --git a/class/payment/paypal/vendor/composer/autoload_files.php b/class/payment/paypal/vendor/composer/autoload_files.php
new file mode 100644
index 0000000..814add3
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/autoload_files.php
@@ -0,0 +1,11 @@
+ $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
+ '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
+);
diff --git a/class/payment/paypal/vendor/composer/autoload_namespaces.php b/class/payment/paypal/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000..b7fc012
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+ array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
+ 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
+ 'Test\\' => array($baseDir . '/tests'),
+ 'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
+ 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'),
+ 'Sample\\' => array($baseDir . '/samples'),
+ 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
+ 'PayPalHttp\\' => array($vendorDir . '/paypal/paypalhttp/lib/PayPalHttp'),
+ 'PayPalCheckoutSdk\\' => array($baseDir . '/lib/PayPalCheckoutSdk'),
+ 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
+ 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
+);
diff --git a/class/payment/paypal/vendor/composer/autoload_real.php b/class/payment/paypal/vendor/composer/autoload_real.php
new file mode 100644
index 0000000..2e0a350
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/autoload_real.php
@@ -0,0 +1,73 @@
+= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInit107967a293d5f94f4a2fae1a45e13a43::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ if ($useStaticLoader) {
+ $includeFiles = Composer\Autoload\ComposerStaticInit107967a293d5f94f4a2fae1a45e13a43::$files;
+ } else {
+ $includeFiles = require __DIR__ . '/autoload_files.php';
+ }
+ foreach ($includeFiles as $fileIdentifier => $file) {
+ composerRequire107967a293d5f94f4a2fae1a45e13a43($fileIdentifier, $file);
+ }
+
+ return $loader;
+ }
+}
+
+function composerRequire107967a293d5f94f4a2fae1a45e13a43($fileIdentifier, $file)
+{
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ require $file;
+
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
+ }
+}
diff --git a/class/payment/paypal/vendor/composer/autoload_static.php b/class/payment/paypal/vendor/composer/autoload_static.php
new file mode 100644
index 0000000..5da5dfc
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/autoload_static.php
@@ -0,0 +1,573 @@
+ __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
+ '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
+ );
+
+ public static $prefixLengthsPsr4 = array (
+ 'p' =>
+ array (
+ 'phpDocumentor\\Reflection\\' => 25,
+ ),
+ 'W' =>
+ array (
+ 'Webmozart\\Assert\\' => 17,
+ ),
+ 'T' =>
+ array (
+ 'Test\\' => 5,
+ ),
+ 'S' =>
+ array (
+ 'Symfony\\Polyfill\\Ctype\\' => 23,
+ 'Symfony\\Component\\Yaml\\' => 23,
+ 'Sample\\' => 7,
+ ),
+ 'P' =>
+ array (
+ 'Prophecy\\' => 9,
+ 'PayPalHttp\\' => 11,
+ 'PayPalCheckoutSdk\\' => 18,
+ ),
+ 'D' =>
+ array (
+ 'Doctrine\\Instantiator\\' => 22,
+ 'DeepCopy\\' => 9,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'phpDocumentor\\Reflection\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
+ 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
+ 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
+ ),
+ 'Webmozart\\Assert\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/webmozart/assert/src',
+ ),
+ 'Test\\' =>
+ array (
+ 0 => __DIR__ . '/../..' . '/tests',
+ ),
+ 'Symfony\\Polyfill\\Ctype\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
+ ),
+ 'Symfony\\Component\\Yaml\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/symfony/yaml',
+ ),
+ 'Sample\\' =>
+ array (
+ 0 => __DIR__ . '/../..' . '/samples',
+ ),
+ 'Prophecy\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
+ ),
+ 'PayPalHttp\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/paypal/paypalhttp/lib/PayPalHttp',
+ ),
+ 'PayPalCheckoutSdk\\' =>
+ array (
+ 0 => __DIR__ . '/../..' . '/lib/PayPalCheckoutSdk',
+ ),
+ 'Doctrine\\Instantiator\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
+ ),
+ 'DeepCopy\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ 'File_Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php',
+ 'File_Iterator_Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php',
+ 'File_Iterator_Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php',
+ 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Assert.php',
+ 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/AssertionFailedError.php',
+ 'PHPUnit\\Framework\\BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/BaseTestListener.php',
+ 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/Test.php',
+ 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestCase.php',
+ 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestListener.php',
+ 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/ForwardCompatibility/TestSuite.php',
+ 'PHPUnit_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php',
+ 'PHPUnit_Extensions_GroupTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/GroupTestSuite.php',
+ 'PHPUnit_Extensions_PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestCase.php',
+ 'PHPUnit_Extensions_PhptTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/PhptTestSuite.php',
+ 'PHPUnit_Extensions_RepeatedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/RepeatedTest.php',
+ 'PHPUnit_Extensions_TestDecorator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TestDecorator.php',
+ 'PHPUnit_Extensions_TicketListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Extensions/TicketListener.php',
+ 'PHPUnit_Framework_Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php',
+ 'PHPUnit_Framework_AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php',
+ 'PHPUnit_Framework_BaseTestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/BaseTestListener.php',
+ 'PHPUnit_Framework_CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php',
+ 'PHPUnit_Framework_Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint.php',
+ 'PHPUnit_Framework_Constraint_And' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/And.php',
+ 'PHPUnit_Framework_Constraint_ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php',
+ 'PHPUnit_Framework_Constraint_ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php',
+ 'PHPUnit_Framework_Constraint_Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php',
+ 'PHPUnit_Framework_Constraint_Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php',
+ 'PHPUnit_Framework_Constraint_ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php',
+ 'PHPUnit_Framework_Constraint_ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php',
+ 'PHPUnit_Framework_Constraint_Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php',
+ 'PHPUnit_Framework_Constraint_Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php',
+ 'PHPUnit_Framework_Constraint_DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php',
+ 'PHPUnit_Framework_Constraint_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php',
+ 'PHPUnit_Framework_Constraint_ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php',
+ 'PHPUnit_Framework_Constraint_ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php',
+ 'PHPUnit_Framework_Constraint_ExceptionMessageRegExp' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegExp.php',
+ 'PHPUnit_Framework_Constraint_FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php',
+ 'PHPUnit_Framework_Constraint_GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php',
+ 'PHPUnit_Framework_Constraint_IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php',
+ 'PHPUnit_Framework_Constraint_IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php',
+ 'PHPUnit_Framework_Constraint_IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php',
+ 'PHPUnit_Framework_Constraint_IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php',
+ 'PHPUnit_Framework_Constraint_IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php',
+ 'PHPUnit_Framework_Constraint_IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php',
+ 'PHPUnit_Framework_Constraint_IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php',
+ 'PHPUnit_Framework_Constraint_IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php',
+ 'PHPUnit_Framework_Constraint_IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php',
+ 'PHPUnit_Framework_Constraint_IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php',
+ 'PHPUnit_Framework_Constraint_IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php',
+ 'PHPUnit_Framework_Constraint_IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php',
+ 'PHPUnit_Framework_Constraint_IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php',
+ 'PHPUnit_Framework_Constraint_IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php',
+ 'PHPUnit_Framework_Constraint_IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php',
+ 'PHPUnit_Framework_Constraint_JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php',
+ 'PHPUnit_Framework_Constraint_JsonMatches_ErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches/ErrorMessageProvider.php',
+ 'PHPUnit_Framework_Constraint_LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php',
+ 'PHPUnit_Framework_Constraint_Not' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Not.php',
+ 'PHPUnit_Framework_Constraint_ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php',
+ 'PHPUnit_Framework_Constraint_Or' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Or.php',
+ 'PHPUnit_Framework_Constraint_PCREMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/PCREMatch.php',
+ 'PHPUnit_Framework_Constraint_SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php',
+ 'PHPUnit_Framework_Constraint_StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php',
+ 'PHPUnit_Framework_Constraint_StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php',
+ 'PHPUnit_Framework_Constraint_StringMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatches.php',
+ 'PHPUnit_Framework_Constraint_StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php',
+ 'PHPUnit_Framework_Constraint_TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
+ 'PHPUnit_Framework_Constraint_TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
+ 'PHPUnit_Framework_Constraint_Xor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
+ 'PHPUnit_Framework_CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php',
+ 'PHPUnit_Framework_Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error.php',
+ 'PHPUnit_Framework_Error_Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
+ 'PHPUnit_Framework_Error_Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php',
+ 'PHPUnit_Framework_Error_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php',
+ 'PHPUnit_Framework_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php',
+ 'PHPUnit_Framework_ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php',
+ 'PHPUnit_Framework_ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php',
+ 'PHPUnit_Framework_IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php',
+ 'PHPUnit_Framework_IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php',
+ 'PHPUnit_Framework_IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php',
+ 'PHPUnit_Framework_InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php',
+ 'PHPUnit_Framework_MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php',
+ 'PHPUnit_Framework_MockObject_BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/BadMethodCallException.php',
+ 'PHPUnit_Framework_MockObject_Builder_Identity' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Identity.php',
+ 'PHPUnit_Framework_MockObject_Builder_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/InvocationMocker.php',
+ 'PHPUnit_Framework_MockObject_Builder_Match' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Match.php',
+ 'PHPUnit_Framework_MockObject_Builder_MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/MethodNameMatch.php',
+ 'PHPUnit_Framework_MockObject_Builder_Namespace' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Namespace.php',
+ 'PHPUnit_Framework_MockObject_Builder_ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/ParametersMatch.php',
+ 'PHPUnit_Framework_MockObject_Builder_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Builder/Stub.php',
+ 'PHPUnit_Framework_MockObject_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/Exception.php',
+ 'PHPUnit_Framework_MockObject_Generator' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php',
+ 'PHPUnit_Framework_MockObject_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation.php',
+ 'PHPUnit_Framework_MockObject_InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/InvocationMocker.php',
+ 'PHPUnit_Framework_MockObject_Invocation_Object' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Object.php',
+ 'PHPUnit_Framework_MockObject_Invocation_Static' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invocation/Static.php',
+ 'PHPUnit_Framework_MockObject_Invokable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Invokable.php',
+ 'PHPUnit_Framework_MockObject_Matcher' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php',
+ 'PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyInvokedCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/AnyParameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/ConsecutiveParameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_Invocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Invocation.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtIndex.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedAtMostCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php',
+ 'PHPUnit_Framework_MockObject_Matcher_InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedRecorder.php',
+ 'PHPUnit_Framework_MockObject_Matcher_MethodName' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/MethodName.php',
+ 'PHPUnit_Framework_MockObject_Matcher_Parameters' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/Parameters.php',
+ 'PHPUnit_Framework_MockObject_Matcher_StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/StatelessInvocation.php',
+ 'PHPUnit_Framework_MockObject_MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockBuilder.php',
+ 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/MockObject.php',
+ 'PHPUnit_Framework_MockObject_RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Exception/RuntimeException.php',
+ 'PHPUnit_Framework_MockObject_Stub' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub.php',
+ 'PHPUnit_Framework_MockObject_Stub_ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ConsecutiveCalls.php',
+ 'PHPUnit_Framework_MockObject_Stub_Exception' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Exception.php',
+ 'PHPUnit_Framework_MockObject_Stub_MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/MatcherCollection.php',
+ 'PHPUnit_Framework_MockObject_Stub_Return' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/Return.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnArgument.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnCallback.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnReference.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnSelf.php',
+ 'PHPUnit_Framework_MockObject_Stub_ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Stub/ReturnValueMap.php',
+ 'PHPUnit_Framework_MockObject_Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit-mock-objects/src/Framework/MockObject/Verifiable.php',
+ 'PHPUnit_Framework_OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php',
+ 'PHPUnit_Framework_RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php',
+ 'PHPUnit_Framework_RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php',
+ 'PHPUnit_Framework_SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php',
+ 'PHPUnit_Framework_SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php',
+ 'PHPUnit_Framework_SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php',
+ 'PHPUnit_Framework_SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php',
+ 'PHPUnit_Framework_SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php',
+ 'PHPUnit_Framework_SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php',
+ 'PHPUnit_Framework_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php',
+ 'PHPUnit_Framework_TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php',
+ 'PHPUnit_Framework_TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php',
+ 'PHPUnit_Framework_TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php',
+ 'PHPUnit_Framework_TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php',
+ 'PHPUnit_Framework_TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php',
+ 'PHPUnit_Framework_TestSuite_DataProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite/DataProvider.php',
+ 'PHPUnit_Framework_UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php',
+ 'PHPUnit_Framework_Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php',
+ 'PHPUnit_Framework_WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php',
+ 'PHPUnit_Runner_BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php',
+ 'PHPUnit_Runner_Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php',
+ 'PHPUnit_Runner_Filter_Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php',
+ 'PHPUnit_Runner_Filter_GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group.php',
+ 'PHPUnit_Runner_Filter_Group_Exclude' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Exclude.php',
+ 'PHPUnit_Runner_Filter_Group_Include' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Group/Include.php',
+ 'PHPUnit_Runner_Filter_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Test.php',
+ 'PHPUnit_Runner_StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php',
+ 'PHPUnit_Runner_TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php',
+ 'PHPUnit_Runner_Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php',
+ 'PHPUnit_TextUI_Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php',
+ 'PHPUnit_TextUI_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php',
+ 'PHPUnit_TextUI_TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php',
+ 'PHPUnit_Util_Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php',
+ 'PHPUnit_Util_Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php',
+ 'PHPUnit_Util_ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php',
+ 'PHPUnit_Util_ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php',
+ 'PHPUnit_Util_Fileloader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Fileloader.php',
+ 'PHPUnit_Util_Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php',
+ 'PHPUnit_Util_Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php',
+ 'PHPUnit_Util_Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php',
+ 'PHPUnit_Util_GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php',
+ 'PHPUnit_Util_InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php',
+ 'PHPUnit_Util_Log_JSON' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JSON.php',
+ 'PHPUnit_Util_Log_JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php',
+ 'PHPUnit_Util_Log_TAP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TAP.php',
+ 'PHPUnit_Util_Log_TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php',
+ 'PHPUnit_Util_PHP' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP.php',
+ 'PHPUnit_Util_PHP_Default' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Default.php',
+ 'PHPUnit_Util_PHP_Windows' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/Windows.php',
+ 'PHPUnit_Util_Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php',
+ 'PHPUnit_Util_Regex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Regex.php',
+ 'PHPUnit_Util_String' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/String.php',
+ 'PHPUnit_Util_Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php',
+ 'PHPUnit_Util_TestDox_NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_HTML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/HTML.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_Text' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/Text.php',
+ 'PHPUnit_Util_TestDox_ResultPrinter_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter/XML.php',
+ 'PHPUnit_Util_TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestSuiteIterator.php',
+ 'PHPUnit_Util_Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php',
+ 'PHPUnit_Util_XML' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XML.php',
+ 'PHP_Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
+ 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ASYNC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_AWAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_COMPILER_HALT_OFFSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ENUM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EQUALS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_JOIN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_CP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LAMBDA_OP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NULLSAFE_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_ONUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SHAPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SUPER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php',
+ 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php',
+ 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPELIST_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_TYPELIST_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHERE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_ATTRIBUTE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CATEGORY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CATEGORY_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_CHILDREN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_LABEL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_REQUIRED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TAG_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TAG_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XHP_TEXT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php',
+ 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
+ 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\HHVM' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/HHVM.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php',
+ 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php',
+ 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php',
+ 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php',
+ 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php',
+ 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
+ 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
+ 'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php',
+ 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php',
+ 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
+ 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php',
+ 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php',
+ 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php',
+ 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php',
+ 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php',
+ 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php',
+ 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php',
+ 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php',
+ 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php',
+ 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php',
+ 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php',
+ 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php',
+ 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php',
+ 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php',
+ 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php',
+ 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php',
+ 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php',
+ 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php',
+ 'SebastianBergmann\\Diff\\LCS\\LongestCommonSubsequence' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/LongestCommonSubsequence.php',
+ 'SebastianBergmann\\Diff\\LCS\\MemoryEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/MemoryEfficientLongestCommonSubsequenceImplementation.php',
+ 'SebastianBergmann\\Diff\\LCS\\TimeEfficientImplementation' => __DIR__ . '/..' . '/sebastian/diff/src/LCS/TimeEfficientLongestCommonSubsequenceImplementation.php',
+ 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php',
+ 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php',
+ 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php',
+ 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php',
+ 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php',
+ 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php',
+ 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php',
+ 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/Exception.php',
+ 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php',
+ 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/RuntimeException.php',
+ 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php',
+ 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php',
+ 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php',
+ 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php',
+ 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php',
+ 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php',
+ 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php',
+ 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php',
+ 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
+ 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInit107967a293d5f94f4a2fae1a45e13a43::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit107967a293d5f94f4a2fae1a45e13a43::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit107967a293d5f94f4a2fae1a45e13a43::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/class/payment/paypal/vendor/composer/installed.json b/class/payment/paypal/vendor/composer/installed.json
new file mode 100644
index 0000000..3299f0e
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/installed.json
@@ -0,0 +1,1694 @@
+{
+ "packages": [
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.4.0",
+ "version_normalized": "1.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^8.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "time": "2020-11-10T18:47:58+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../doctrine/instantiator"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.10.2",
+ "version_normalized": "1.10.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "time": "2020-11-13T09:40:50+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../myclabs/deep-copy"
+ },
+ {
+ "name": "paypal/paypalhttp",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paypal/paypalhttp_php.git",
+ "reference": "1ad9b846a046f09d6135cbf2cbaa7701bbc630a3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paypal/paypalhttp_php/zipball/1ad9b846a046f09d6135cbf2cbaa7701bbc630a3",
+ "reference": "1ad9b846a046f09d6135cbf2cbaa7701bbc630a3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "wiremock-php/wiremock-php": "1.43.2"
+ },
+ "time": "2019-11-06T21:27:12+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "PayPalHttp\\": "lib/PayPalHttp"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PayPal",
+ "homepage": "https://github.com/paypal/paypalhttp_php/contributors"
+ }
+ ],
+ "support": {
+ "issues": "https://github.com/paypal/paypalhttp_php/issues",
+ "source": "https://github.com/paypal/paypalhttp_php/tree/1.0.0"
+ },
+ "install-path": "../paypal/paypalhttp"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "version_normalized": "2.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "time": "2020-06-27T09:03:43+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "install-path": "../phpdocumentor/reflection-common"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.2.2",
+ "version_normalized": "5.2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2"
+ },
+ "time": "2020-09-03T19:13:55+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
+ },
+ "install-path": "../phpdocumentor/reflection-docblock"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.4.0",
+ "version_normalized": "1.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*"
+ },
+ "time": "2020-09-17T18:55:26+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0"
+ },
+ "install-path": "../phpdocumentor/type-resolver"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.10.3",
+ "version_normalized": "1.10.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
+ "reference": "451c3cd1418cf640de218914901e51b064abb093",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.3|^7.0",
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
+ "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^2.5 || ^3.2",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ },
+ "time": "2020-03-05T15:02:03+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "support": {
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
+ },
+ "install-path": "../phpspec/prophecy"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "4.0.8",
+ "version_normalized": "4.0.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
+ "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-xmlwriter": "*",
+ "php": "^5.6 || ^7.0",
+ "phpunit/php-file-iterator": "^1.3",
+ "phpunit/php-text-template": "^1.2",
+ "phpunit/php-token-stream": "^1.4.2 || ^2.0",
+ "sebastian/code-unit-reverse-lookup": "^1.0",
+ "sebastian/environment": "^1.3.2 || ^2.0",
+ "sebastian/version": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "ext-xdebug": "^2.1.4",
+ "phpunit/phpunit": "^5.7"
+ },
+ "suggest": {
+ "ext-xdebug": "^2.5.1"
+ },
+ "time": "2017-04-02T07:44:40+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/4.0"
+ },
+ "install-path": "../phpunit/php-code-coverage"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "1.4.5",
+ "version_normalized": "1.4.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "time": "2017-11-27T13:52:08+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5"
+ },
+ "install-path": "../phpunit/php-file-iterator"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "version_normalized": "1.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "time": "2015-06-21T13:50:34+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1"
+ },
+ "install-path": "../phpunit/php-text-template"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "1.0.9",
+ "version_normalized": "1.0.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ },
+ "time": "2017-02-26T11:10:40+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/master"
+ },
+ "install-path": "../phpunit/php-timer"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "2.0.2",
+ "version_normalized": "2.0.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "791198a2c6254db10131eecfe8c06670700904db"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
+ "reference": "791198a2c6254db10131eecfe8c06670700904db",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.2.4"
+ },
+ "time": "2017-11-27T05:48:46+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
+ "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master"
+ },
+ "abandoned": true,
+ "install-path": "../phpunit/php-token-stream"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "5.7.27",
+ "version_normalized": "5.7.27.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
+ "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "myclabs/deep-copy": "~1.3",
+ "php": "^5.6 || ^7.0",
+ "phpspec/prophecy": "^1.6.2",
+ "phpunit/php-code-coverage": "^4.0.4",
+ "phpunit/php-file-iterator": "~1.4",
+ "phpunit/php-text-template": "~1.2",
+ "phpunit/php-timer": "^1.0.6",
+ "phpunit/phpunit-mock-objects": "^3.2",
+ "sebastian/comparator": "^1.2.4",
+ "sebastian/diff": "^1.4.3",
+ "sebastian/environment": "^1.3.4 || ^2.0",
+ "sebastian/exporter": "~2.0",
+ "sebastian/global-state": "^1.1",
+ "sebastian/object-enumerator": "~2.0",
+ "sebastian/resource-operations": "~1.0",
+ "sebastian/version": "^1.0.6|^2.0.1",
+ "symfony/yaml": "~2.1|~3.0|~4.0"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "3.0.2"
+ },
+ "require-dev": {
+ "ext-pdo": "*"
+ },
+ "suggest": {
+ "ext-xdebug": "*",
+ "phpunit/php-invoker": "~1.1"
+ },
+ "time": "2018-02-01T05:50:59+00:00",
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.7.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/5.7.27"
+ },
+ "install-path": "../phpunit/phpunit"
+ },
+ {
+ "name": "phpunit/phpunit-mock-objects",
+ "version": "3.4.4",
+ "version_normalized": "3.4.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
+ "reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": "^5.6 || ^7.0",
+ "phpunit/php-text-template": "^1.2",
+ "sebastian/exporter": "^1.2 || ^2.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.4"
+ },
+ "suggest": {
+ "ext-soap": "*"
+ },
+ "time": "2017-06-30T09:13:00+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Mock Object library for PHPUnit",
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+ "keywords": [
+ "mock",
+ "xunit"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.net/phpunit",
+ "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/3.4"
+ },
+ "abandoned": true,
+ "install-path": "../phpunit/phpunit-mock-objects"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "1.0.2",
+ "version_normalized": "1.0.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
+ "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5"
+ },
+ "time": "2020-11-30T08:15:22+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "install-path": "../sebastian/code-unit-reverse-lookup"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "1.2.4",
+ "version_normalized": "1.2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/diff": "~1.2",
+ "sebastian/exporter": "~1.2 || ~2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "time": "2017-01-29T09:50:25+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/1.2"
+ },
+ "install-path": "../sebastian/comparator"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "1.4.3",
+ "version_normalized": "1.4.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ },
+ "time": "2017-05-22T07:24:03+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/1.4"
+ },
+ "install-path": "../sebastian/diff"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "2.0.0",
+ "version_normalized": "2.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.0"
+ },
+ "time": "2016-11-26T07:53:53+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/master"
+ },
+ "install-path": "../sebastian/environment"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "2.0.0",
+ "version_normalized": "2.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/recursion-context": "~2.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "~4.4"
+ },
+ "time": "2016-11-19T08:54:04+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/master"
+ },
+ "install-path": "../sebastian/exporter"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "1.1.1",
+ "version_normalized": "1.1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "time": "2015-10-12T03:26:01+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1"
+ },
+ "install-path": "../sebastian/global-state"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "2.0.1",
+ "version_normalized": "2.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6",
+ "sebastian/recursion-context": "~2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~5"
+ },
+ "time": "2017-02-18T15:18:39+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/master"
+ },
+ "install-path": "../sebastian/object-enumerator"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "2.0.0",
+ "version_normalized": "2.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "time": "2016-11-19T07:33:16+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/master"
+ },
+ "install-path": "../sebastian/recursion-context"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "1.0.0",
+ "version_normalized": "1.0.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6.0"
+ },
+ "time": "2015-07-28T20:34:47+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/master"
+ },
+ "install-path": "../sebastian/resource-operations"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "2.0.1",
+ "version_normalized": "2.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "time": "2016-10-03T07:35:21+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/master"
+ },
+ "install-path": "../sebastian/version"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.22.1",
+ "version_normalized": "1.22.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e",
+ "reference": "c6c942b1ac76c82448322025e084cadc56048b4e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "time": "2021-01-07T16:49:33+00:00",
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.22-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/polyfill-ctype"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v4.4.19",
+ "version_normalized": "4.4.19.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9",
+ "reference": "17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1.3",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<3.4"
+ },
+ "require-dev": {
+ "symfony/console": "^3.4|^4.0|^5.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "time": "2021-01-27T09:09:26+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v4.4.19"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "install-path": "../symfony/yaml"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.9.1",
+ "version_normalized": "1.9.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389",
+ "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.3 || ^7.0 || ^8.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<3.9.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ },
+ "time": "2020-07-08T17:02:28+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.9.1"
+ },
+ "install-path": "../webmozart/assert"
+ }
+ ],
+ "dev": true,
+ "dev-package-names": [
+ "doctrine/instantiator",
+ "myclabs/deep-copy",
+ "phpdocumentor/reflection-common",
+ "phpdocumentor/reflection-docblock",
+ "phpdocumentor/type-resolver",
+ "phpspec/prophecy",
+ "phpunit/php-code-coverage",
+ "phpunit/php-file-iterator",
+ "phpunit/php-text-template",
+ "phpunit/php-timer",
+ "phpunit/php-token-stream",
+ "phpunit/phpunit",
+ "phpunit/phpunit-mock-objects",
+ "sebastian/code-unit-reverse-lookup",
+ "sebastian/comparator",
+ "sebastian/diff",
+ "sebastian/environment",
+ "sebastian/exporter",
+ "sebastian/global-state",
+ "sebastian/object-enumerator",
+ "sebastian/recursion-context",
+ "sebastian/resource-operations",
+ "sebastian/version",
+ "symfony/polyfill-ctype",
+ "symfony/yaml",
+ "webmozart/assert"
+ ]
+}
diff --git a/class/payment/paypal/vendor/composer/installed.php b/class/payment/paypal/vendor/composer/installed.php
new file mode 100644
index 0000000..8adcfc8
--- /dev/null
+++ b/class/payment/paypal/vendor/composer/installed.php
@@ -0,0 +1,271 @@
+
+ array (
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => NULL,
+ 'name' => 'paypal/paypal-checkout-sdk',
+ ),
+ 'versions' =>
+ array (
+ 'doctrine/instantiator' =>
+ array (
+ 'pretty_version' => '1.4.0',
+ 'version' => '1.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
+ ),
+ 'myclabs/deep-copy' =>
+ array (
+ 'pretty_version' => '1.10.2',
+ 'version' => '1.10.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
+ 'replaced' =>
+ array (
+ 0 => '1.10.2',
+ ),
+ ),
+ 'paypal/paypal-checkout-sdk' =>
+ array (
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => NULL,
+ ),
+ 'paypal/paypalhttp' =>
+ array (
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1ad9b846a046f09d6135cbf2cbaa7701bbc630a3',
+ ),
+ 'phpdocumentor/reflection-common' =>
+ array (
+ 'pretty_version' => '2.2.0',
+ 'version' => '2.2.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
+ ),
+ 'phpdocumentor/reflection-docblock' =>
+ array (
+ 'pretty_version' => '5.2.2',
+ 'version' => '5.2.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
+ ),
+ 'phpdocumentor/type-resolver' =>
+ array (
+ 'pretty_version' => '1.4.0',
+ 'version' => '1.4.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0',
+ ),
+ 'phpspec/prophecy' =>
+ array (
+ 'pretty_version' => 'v1.10.3',
+ 'version' => '1.10.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '451c3cd1418cf640de218914901e51b064abb093',
+ ),
+ 'phpunit/php-code-coverage' =>
+ array (
+ 'pretty_version' => '4.0.8',
+ 'version' => '4.0.8.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ef7b2f56815df854e66ceaee8ebe9393ae36a40d',
+ ),
+ 'phpunit/php-file-iterator' =>
+ array (
+ 'pretty_version' => '1.4.5',
+ 'version' => '1.4.5.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '730b01bc3e867237eaac355e06a36b85dd93a8b4',
+ ),
+ 'phpunit/php-text-template' =>
+ array (
+ 'pretty_version' => '1.2.1',
+ 'version' => '1.2.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686',
+ ),
+ 'phpunit/php-timer' =>
+ array (
+ 'pretty_version' => '1.0.9',
+ 'version' => '1.0.9.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '3dcf38ca72b158baf0bc245e9184d3fdffa9c46f',
+ ),
+ 'phpunit/php-token-stream' =>
+ array (
+ 'pretty_version' => '2.0.2',
+ 'version' => '2.0.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '791198a2c6254db10131eecfe8c06670700904db',
+ ),
+ 'phpunit/phpunit' =>
+ array (
+ 'pretty_version' => '5.7.27',
+ 'version' => '5.7.27.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c',
+ ),
+ 'phpunit/phpunit-mock-objects' =>
+ array (
+ 'pretty_version' => '3.4.4',
+ 'version' => '3.4.4.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'a23b761686d50a560cc56233b9ecf49597cc9118',
+ ),
+ 'sebastian/code-unit-reverse-lookup' =>
+ array (
+ 'pretty_version' => '1.0.2',
+ 'version' => '1.0.2.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1de8cd5c010cb153fcd68b8d0f64606f523f7619',
+ ),
+ 'sebastian/comparator' =>
+ array (
+ 'pretty_version' => '1.2.4',
+ 'version' => '1.2.4.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '2b7424b55f5047b47ac6e5ccb20b2aea4011d9be',
+ ),
+ 'sebastian/diff' =>
+ array (
+ 'pretty_version' => '1.4.3',
+ 'version' => '1.4.3.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '7f066a26a962dbe58ddea9f72a4e82874a3975a4',
+ ),
+ 'sebastian/environment' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '5795ffe5dc5b02460c3e34222fee8cbe245d8fac',
+ ),
+ 'sebastian/exporter' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4',
+ ),
+ 'sebastian/global-state' =>
+ array (
+ 'pretty_version' => '1.1.1',
+ 'version' => '1.1.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'bc37d50fea7d017d3d340f230811c9f1d7280af4',
+ ),
+ 'sebastian/object-enumerator' =>
+ array (
+ 'pretty_version' => '2.0.1',
+ 'version' => '2.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '1311872ac850040a79c3c058bea3e22d0f09cbb7',
+ ),
+ 'sebastian/recursion-context' =>
+ array (
+ 'pretty_version' => '2.0.0',
+ 'version' => '2.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '2c3ba150cbec723aa057506e73a8d33bdb286c9a',
+ ),
+ 'sebastian/resource-operations' =>
+ array (
+ 'pretty_version' => '1.0.0',
+ 'version' => '1.0.0.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'ce990bb21759f94aeafd30209e8cfcdfa8bc3f52',
+ ),
+ 'sebastian/version' =>
+ array (
+ 'pretty_version' => '2.0.1',
+ 'version' => '2.0.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019',
+ ),
+ 'symfony/polyfill-ctype' =>
+ array (
+ 'pretty_version' => 'v1.22.1',
+ 'version' => '1.22.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'c6c942b1ac76c82448322025e084cadc56048b4e',
+ ),
+ 'symfony/yaml' =>
+ array (
+ 'pretty_version' => 'v4.4.19',
+ 'version' => '4.4.19.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => '17ed9f14c1aa05b1a5cf2e2c5ef2d0be28058ef9',
+ ),
+ 'webmozart/assert' =>
+ array (
+ 'pretty_version' => '1.9.1',
+ 'version' => '1.9.1.0',
+ 'aliases' =>
+ array (
+ ),
+ 'reference' => 'bafc69caeb4d49c39fd0779086c03a3738cbb389',
+ ),
+ ),
+);
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.doctrine-project.json b/class/payment/paypal/vendor/doctrine/instantiator/.doctrine-project.json
new file mode 100644
index 0000000..eb4f455
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.doctrine-project.json
@@ -0,0 +1,41 @@
+{
+ "active": true,
+ "name": "Instantiator",
+ "slug": "instantiator",
+ "docsSlug": "doctrine-instantiator",
+ "codePath": "/src",
+ "versions": [
+ {
+ "name": "1.4",
+ "branchName": "master",
+ "slug": "latest",
+ "upcoming": true
+ },
+ {
+ "name": "1.3",
+ "branchName": "1.3.x",
+ "slug": "1.3",
+ "aliases": [
+ "current",
+ "stable"
+ ],
+ "maintained": true,
+ "current": true
+ },
+ {
+ "name": "1.2",
+ "branchName": "1.2.x",
+ "slug": "1.2"
+ },
+ {
+ "name": "1.1",
+ "branchName": "1.1.x",
+ "slug": "1.1"
+ },
+ {
+ "name": "1.0",
+ "branchName": "1.0.x",
+ "slug": "1.0"
+ }
+ ]
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/FUNDING.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/FUNDING.yml
new file mode 100644
index 0000000..9a35064
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+patreon: phpdoctrine
+tidelift: packagist/doctrine%2Finstantiator
+custom: https://www.doctrine-project.org/sponsorship.html
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/coding-standards.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/coding-standards.yml
new file mode 100644
index 0000000..92981b1
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/coding-standards.yml
@@ -0,0 +1,48 @@
+
+name: "Coding Standards"
+
+on:
+ pull_request:
+ branches:
+ - "*.x"
+ push:
+ branches:
+ - "*.x"
+
+env:
+ COMPOSER_ROOT_VERSION: "1.4"
+
+jobs:
+ coding-standards:
+ name: "Coding Standards"
+ runs-on: "ubuntu-20.04"
+
+ strategy:
+ matrix:
+ php-version:
+ - "7.4"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+
+ - name: "Install PHP"
+ uses: "shivammathur/setup-php@v2"
+ with:
+ coverage: "none"
+ php-version: "${{ matrix.php-version }}"
+ tools: "cs2pr"
+
+ - name: "Cache dependencies installed with Composer"
+ uses: "actions/cache@v2"
+ with:
+ path: "~/.composer/cache"
+ key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
+ restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
+
+ - name: "Install dependencies with Composer"
+ run: "composer install --no-interaction --no-progress"
+
+ # https://github.com/doctrine/.github/issues/3
+ - name: "Run PHP_CodeSniffer"
+ run: "vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr"
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/continuous-integration.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/continuous-integration.yml
new file mode 100644
index 0000000..493374f
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/continuous-integration.yml
@@ -0,0 +1,91 @@
+
+name: "Continuous Integration"
+
+on:
+ pull_request:
+ branches:
+ - "*.x"
+ push:
+ branches:
+ - "*.x"
+
+env:
+ fail-fast: true
+ COMPOSER_ROOT_VERSION: "1.4"
+
+jobs:
+ phpunit:
+ name: "PHPUnit with SQLite"
+ runs-on: "ubuntu-20.04"
+
+ strategy:
+ matrix:
+ php-version:
+ - "7.1"
+ - "7.2"
+ - "7.3"
+ - "7.4"
+ - "8.0"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+ with:
+ fetch-depth: 2
+
+ - name: "Install PHP with XDebug"
+ uses: "shivammathur/setup-php@v2"
+ if: "${{ matrix.php-version == '7.1' }}"
+ with:
+ php-version: "${{ matrix.php-version }}"
+ coverage: "xdebug"
+ ini-values: "zend.assertions=1"
+
+ - name: "Install PHP with PCOV"
+ uses: "shivammathur/setup-php@v2"
+ if: "${{ matrix.php-version != '7.1' }}"
+ with:
+ php-version: "${{ matrix.php-version }}"
+ coverage: "pcov"
+ ini-values: "zend.assertions=1"
+
+ - name: "Cache dependencies installed with composer"
+ uses: "actions/cache@v2"
+ with:
+ path: "~/.composer/cache"
+ key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
+ restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
+
+ - name: "Install dependencies with composer"
+ run: "composer update --no-interaction --no-progress"
+
+ - name: "Run PHPUnit"
+ run: "vendor/bin/phpunit --coverage-clover=coverage.xml"
+
+ - name: "Upload coverage file"
+ uses: "actions/upload-artifact@v2"
+ with:
+ name: "phpunit-${{ matrix.php-version }}.coverage"
+ path: "coverage.xml"
+
+ upload_coverage:
+ name: "Upload coverage to Codecov"
+ runs-on: "ubuntu-20.04"
+ needs:
+ - "phpunit"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+ with:
+ fetch-depth: 2
+
+ - name: "Download coverage files"
+ uses: "actions/download-artifact@v2"
+ with:
+ path: "reports"
+
+ - name: "Upload to Codecov"
+ uses: "codecov/codecov-action@v1"
+ with:
+ directory: reports
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/phpbench.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/phpbench.yml
new file mode 100644
index 0000000..9d131e7
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/phpbench.yml
@@ -0,0 +1,50 @@
+
+name: "Performance benchmark"
+
+on:
+ pull_request:
+ branches:
+ - "*.x"
+ push:
+ branches:
+ - "*.x"
+
+env:
+ fail-fast: true
+ COMPOSER_ROOT_VERSION: "1.4"
+
+jobs:
+ phpbench:
+ name: "PHPBench"
+ runs-on: "ubuntu-20.04"
+
+ strategy:
+ matrix:
+ php-version:
+ - "7.4"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+ with:
+ fetch-depth: 2
+
+ - name: "Install PHP"
+ uses: "shivammathur/setup-php@v2"
+ with:
+ php-version: "${{ matrix.php-version }}"
+ coverage: "pcov"
+ ini-values: "zend.assertions=1"
+
+ - name: "Cache dependencies installed with composer"
+ uses: "actions/cache@v2"
+ with:
+ path: "~/.composer/cache"
+ key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
+ restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
+
+ - name: "Install dependencies with composer"
+ run: "composer update --no-interaction --no-progress"
+
+ - name: "Run PHPBench"
+ run: "php ./vendor/bin/phpbench run --iterations=3 --warmup=1 --report=aggregate"
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/release-on-milestone-closed.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/release-on-milestone-closed.yml
new file mode 100644
index 0000000..b7a56f7
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/release-on-milestone-closed.yml
@@ -0,0 +1,45 @@
+name: "Automatic Releases"
+
+on:
+ milestone:
+ types:
+ - "closed"
+
+jobs:
+ release:
+ name: "Git tag, release & create merge-up PR"
+ runs-on: "ubuntu-20.04"
+
+ steps:
+ - name: "Checkout"
+ uses: "actions/checkout@v2"
+
+ - name: "Release"
+ uses: "laminas/automatic-releases@v1"
+ with:
+ command-name: "laminas:automatic-releases:release"
+ env:
+ "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
+ "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
+ "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
+ "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
+
+ - name: "Create Merge-Up Pull Request"
+ uses: "laminas/automatic-releases@v1"
+ with:
+ command-name: "laminas:automatic-releases:create-merge-up-pull-request"
+ env:
+ "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
+ "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
+ "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
+ "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
+
+ - name: "Create new milestones"
+ uses: "laminas/automatic-releases@v1"
+ with:
+ command-name: "laminas:automatic-releases:create-milestones"
+ env:
+ "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }}
+ "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }}
+ "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }}
+ "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/static-analysis.yml b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/static-analysis.yml
new file mode 100644
index 0000000..4a58318
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/.github/workflows/static-analysis.yml
@@ -0,0 +1,47 @@
+
+name: "Static Analysis"
+
+on:
+ pull_request:
+ branches:
+ - "*.x"
+ push:
+ branches:
+ - "*.x"
+
+env:
+ COMPOSER_ROOT_VERSION: "1.4"
+
+jobs:
+ static-analysis-phpstan:
+ name: "Static Analysis with PHPStan"
+ runs-on: "ubuntu-20.04"
+
+ strategy:
+ matrix:
+ php-version:
+ - "7.4"
+
+ steps:
+ - name: "Checkout code"
+ uses: "actions/checkout@v2"
+
+ - name: "Install PHP"
+ uses: "shivammathur/setup-php@v2"
+ with:
+ coverage: "none"
+ php-version: "${{ matrix.php-version }}"
+ tools: "cs2pr"
+
+ - name: "Cache dependencies installed with composer"
+ uses: "actions/cache@v2"
+ with:
+ path: "~/.composer/cache"
+ key: "php-${{ matrix.php-version }}-composer-locked-${{ hashFiles('composer.lock') }}"
+ restore-keys: "php-${{ matrix.php-version }}-composer-locked-"
+
+ - name: "Install dependencies with composer"
+ run: "composer install --no-interaction --no-progress"
+
+ - name: "Run a static analysis with phpstan/phpstan"
+ run: "vendor/bin/phpstan analyse --error-format=checkstyle | cs2pr"
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/CONTRIBUTING.md b/class/payment/paypal/vendor/doctrine/instantiator/CONTRIBUTING.md
new file mode 100644
index 0000000..c1a2c42
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/CONTRIBUTING.md
@@ -0,0 +1,35 @@
+# Contributing
+
+ * Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard)
+ * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php)
+ * Any contribution must provide tests for additional introduced conditions
+ * Any un-confirmed issue needs a failing test case before being accepted
+ * Pull requests must be sent from a new hotfix/feature branch, not from `master`.
+
+## Installation
+
+To install the project and run the tests, you need to clone it first:
+
+```sh
+$ git clone git://github.com/doctrine/instantiator.git
+```
+
+You will then need to run a composer installation:
+
+```sh
+$ cd Instantiator
+$ curl -s https://getcomposer.org/installer | php
+$ php composer.phar update
+```
+
+## Testing
+
+The PHPUnit version to be used is the one installed as a dev- dependency via composer:
+
+```sh
+$ ./vendor/bin/phpunit
+```
+
+Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement
+won't be merged.
+
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/LICENSE b/class/payment/paypal/vendor/doctrine/instantiator/LICENSE
new file mode 100644
index 0000000..4d983d1
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2014 Doctrine Project
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/README.md b/class/payment/paypal/vendor/doctrine/instantiator/README.md
new file mode 100644
index 0000000..4bc02b6
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/README.md
@@ -0,0 +1,38 @@
+# Instantiator
+
+This library provides a way of avoiding usage of constructors when instantiating PHP classes.
+
+[](https://travis-ci.org/doctrine/instantiator)
+[](https://codecov.io/gh/doctrine/instantiator/branch/master)
+[](https://www.versioneye.com/package/php--doctrine--instantiator)
+
+[](https://packagist.org/packages/doctrine/instantiator)
+[](https://packagist.org/packages/doctrine/instantiator)
+
+## Installation
+
+The suggested installation method is via [composer](https://getcomposer.org/):
+
+```sh
+php composer.phar require "doctrine/instantiator:~1.0.3"
+```
+
+## Usage
+
+The instantiator is able to create new instances of any class without using the constructor or any API of the class
+itself:
+
+```php
+$instantiator = new \Doctrine\Instantiator\Instantiator();
+
+$instance = $instantiator->instantiate(\My\ClassName\Here::class);
+```
+
+## Contributing
+
+Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out!
+
+## Credits
+
+This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which
+has been donated to the doctrine organization, and which is now deprecated in favour of this package.
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/composer.json b/class/payment/paypal/vendor/doctrine/instantiator/composer.json
new file mode 100644
index 0000000..1ce3473
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/composer.json
@@ -0,0 +1,42 @@
+{
+ "name": "doctrine/instantiator",
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "type": "library",
+ "license": "MIT",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "instantiate",
+ "constructor"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "ext-phar": "*",
+ "ext-pdo": "*",
+ "doctrine/coding-standard": "^8.0",
+ "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "autoload-dev": {
+ "psr-0": {
+ "DoctrineTest\\InstantiatorPerformance\\": "tests",
+ "DoctrineTest\\InstantiatorTest\\": "tests",
+ "DoctrineTest\\InstantiatorTestAsset\\": "tests"
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/docs/en/index.rst b/class/payment/paypal/vendor/doctrine/instantiator/docs/en/index.rst
new file mode 100644
index 0000000..0c85da0
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/docs/en/index.rst
@@ -0,0 +1,68 @@
+Introduction
+============
+
+This library provides a way of avoiding usage of constructors when instantiating PHP classes.
+
+Installation
+============
+
+The suggested installation method is via `composer`_:
+
+.. code-block:: console
+
+ $ composer require doctrine/instantiator
+
+Usage
+=====
+
+The instantiator is able to create new instances of any class without
+using the constructor or any API of the class itself:
+
+.. code-block:: php
+
+ instantiate(User::class);
+
+Contributing
+============
+
+- Follow the `Doctrine Coding Standard`_
+- The project will follow strict `object calisthenics`_
+- Any contribution must provide tests for additional introduced
+ conditions
+- Any un-confirmed issue needs a failing test case before being
+ accepted
+- Pull requests must be sent from a new hotfix/feature branch, not from
+ ``master``.
+
+Testing
+=======
+
+The PHPUnit version to be used is the one installed as a dev- dependency
+via composer:
+
+.. code-block:: console
+
+ $ ./vendor/bin/phpunit
+
+Accepted coverage for new contributions is 80%. Any contribution not
+satisfying this requirement won’t be merged.
+
+Credits
+=======
+
+This library was migrated from `ocramius/instantiator`_, which has been
+donated to the doctrine organization, and which is now deprecated in
+favour of this package.
+
+.. _composer: https://getcomposer.org/
+.. _CONTRIBUTING.md: CONTRIBUTING.md
+.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator
+.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard
+.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/docs/en/sidebar.rst b/class/payment/paypal/vendor/doctrine/instantiator/docs/en/sidebar.rst
new file mode 100644
index 0000000..0c36479
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/docs/en/sidebar.rst
@@ -0,0 +1,4 @@
+.. toctree::
+ :depth: 3
+
+ index
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/phpbench.json b/class/payment/paypal/vendor/doctrine/instantiator/phpbench.json
new file mode 100644
index 0000000..fce5dd6
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/phpbench.json
@@ -0,0 +1,4 @@
+{
+ "bootstrap": "vendor/autoload.php",
+ "path": "tests/DoctrineTest/InstantiatorPerformance"
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/phpcs.xml.dist b/class/payment/paypal/vendor/doctrine/instantiator/phpcs.xml.dist
new file mode 100644
index 0000000..4e08b16
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/phpcs.xml.dist
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+ src
+ tests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ */src/*
+
+
+
+ */src/*
+
+
+
+ tests/DoctrineTest/InstantiatorTestAsset/AbstractClassAsset.php
+
+
+
+ src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
+ src/Doctrine/Instantiator/Exception/InvalidArgumentException.php
+
+
+
+ src/Doctrine/Instantiator/Exception/ExceptionInterface.php
+ src/Doctrine/Instantiator/InstantiatorInterface.php
+
+
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/phpstan.neon.dist b/class/payment/paypal/vendor/doctrine/instantiator/phpstan.neon.dist
new file mode 100644
index 0000000..60bec6b
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/phpstan.neon.dist
@@ -0,0 +1,15 @@
+includes:
+ - vendor/phpstan/phpstan-phpunit/extension.neon
+ - vendor/phpstan/phpstan-phpunit/rules.neon
+
+parameters:
+ level: max
+ paths:
+ - src
+ - tests
+
+ ignoreErrors:
+ # dynamic properties confuse static analysis
+ -
+ message: '#Access to an undefined property object::\$foo\.#'
+ path: '*/tests/DoctrineTest/InstantiatorTest/InstantiatorTest.php'
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php
new file mode 100644
index 0000000..e6a5195
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php
@@ -0,0 +1,12 @@
+ $reflectionClass
+ */
+ public static function fromAbstractClass(ReflectionClass $reflectionClass): self
+ {
+ return new self(sprintf(
+ 'The provided class "%s" is abstract, and can not be instantiated',
+ $reflectionClass->getName()
+ ));
+ }
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
new file mode 100644
index 0000000..19842bb
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php
@@ -0,0 +1,57 @@
+ $reflectionClass
+ */
+ public static function fromSerializationTriggeredException(
+ ReflectionClass $reflectionClass,
+ Exception $exception
+ ): self {
+ return new self(
+ sprintf(
+ 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization',
+ $reflectionClass->getName()
+ ),
+ 0,
+ $exception
+ );
+ }
+
+ /**
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ public static function fromUncleanUnSerialization(
+ ReflectionClass $reflectionClass,
+ string $errorString,
+ int $errorCode,
+ string $errorFile,
+ int $errorLine
+ ): self {
+ return new self(
+ sprintf(
+ 'Could not produce an instance of "%s" via un-serialization, since an error was triggered '
+ . 'in file "%s" at line "%d"',
+ $reflectionClass->getName(),
+ $errorFile,
+ $errorLine
+ ),
+ 0,
+ new Exception($errorString, $errorCode)
+ );
+ }
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
new file mode 100644
index 0000000..ee4803c
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php
@@ -0,0 +1,232 @@
+buildAndCacheFromFactory($className);
+ }
+
+ /**
+ * Builds the requested object and caches it in static properties for performance
+ *
+ * @return object
+ *
+ * @template T of object
+ * @phpstan-param class-string $className
+ *
+ * @phpstan-return T
+ */
+ private function buildAndCacheFromFactory(string $className)
+ {
+ $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className);
+ $instance = $factory();
+
+ if ($this->isSafeToClone(new ReflectionClass($instance))) {
+ self::$cachedCloneables[$className] = clone $instance;
+ }
+
+ return $instance;
+ }
+
+ /**
+ * Builds a callable capable of instantiating the given $className without
+ * invoking its constructor.
+ *
+ * @throws InvalidArgumentException
+ * @throws UnexpectedValueException
+ * @throws ReflectionException
+ *
+ * @template T of object
+ * @phpstan-param class-string $className
+ *
+ * @phpstan-return callable(): T
+ */
+ private function buildFactory(string $className): callable
+ {
+ $reflectionClass = $this->getReflectionClass($className);
+
+ if ($this->isInstantiableViaReflection($reflectionClass)) {
+ return [$reflectionClass, 'newInstanceWithoutConstructor'];
+ }
+
+ $serializedString = sprintf(
+ '%s:%d:"%s":0:{}',
+ is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER,
+ strlen($className),
+ $className
+ );
+
+ $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString);
+
+ return static function () use ($serializedString) {
+ return unserialize($serializedString);
+ };
+ }
+
+ /**
+ * @throws InvalidArgumentException
+ * @throws ReflectionException
+ *
+ * @template T of object
+ * @phpstan-param class-string $className
+ *
+ * @phpstan-return ReflectionClass
+ */
+ private function getReflectionClass(string $className): ReflectionClass
+ {
+ if (! class_exists($className)) {
+ throw InvalidArgumentException::fromNonExistingClass($className);
+ }
+
+ $reflection = new ReflectionClass($className);
+
+ if ($reflection->isAbstract()) {
+ throw InvalidArgumentException::fromAbstractClass($reflection);
+ }
+
+ return $reflection;
+ }
+
+ /**
+ * @throws UnexpectedValueException
+ *
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString): void
+ {
+ set_error_handler(static function (int $code, string $message, string $file, int $line) use ($reflectionClass, &$error): bool {
+ $error = UnexpectedValueException::fromUncleanUnSerialization(
+ $reflectionClass,
+ $message,
+ $code,
+ $file,
+ $line
+ );
+
+ return true;
+ });
+
+ try {
+ $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
+ } finally {
+ restore_error_handler();
+ }
+
+ if ($error) {
+ throw $error;
+ }
+ }
+
+ /**
+ * @throws UnexpectedValueException
+ *
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString): void
+ {
+ try {
+ unserialize($serializedString);
+ } catch (Exception $exception) {
+ throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception);
+ }
+ }
+
+ /**
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool
+ {
+ return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal());
+ }
+
+ /**
+ * Verifies whether the given class is to be considered internal
+ *
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ private function hasInternalAncestors(ReflectionClass $reflectionClass): bool
+ {
+ do {
+ if ($reflectionClass->isInternal()) {
+ return true;
+ }
+
+ $reflectionClass = $reflectionClass->getParentClass();
+ } while ($reflectionClass);
+
+ return false;
+ }
+
+ /**
+ * Checks if a class is cloneable
+ *
+ * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.
+ *
+ * @template T of object
+ * @phpstan-param ReflectionClass $reflectionClass
+ */
+ private function isSafeToClone(ReflectionClass $reflectionClass): bool
+ {
+ return $reflectionClass->isCloneable()
+ && ! $reflectionClass->hasMethod('__clone')
+ && ! $reflectionClass->isSubclassOf(ArrayIterator::class);
+ }
+}
diff --git a/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
new file mode 100644
index 0000000..3ffff82
--- /dev/null
+++ b/class/payment/paypal/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php
@@ -0,0 +1,23 @@
+ $className
+ */
+ public function instantiate($className);
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/.github/FUNDING.yml b/class/payment/paypal/vendor/myclabs/deep-copy/.github/FUNDING.yml
new file mode 100644
index 0000000..b8da664
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: "packagist/myclabs/deep-copy"
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/LICENSE b/class/payment/paypal/vendor/myclabs/deep-copy/LICENSE
new file mode 100644
index 0000000..c3e8350
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 My C-Sense
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/README.md b/class/payment/paypal/vendor/myclabs/deep-copy/README.md
new file mode 100644
index 0000000..007ad5b
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/README.md
@@ -0,0 +1,375 @@
+# DeepCopy
+
+DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph.
+
+[](https://travis-ci.org/myclabs/DeepCopy)
+[](https://coveralls.io/r/myclabs/DeepCopy?branch=1.x)
+[](https://scrutinizer-ci.com/g/myclabs/DeepCopy/)
+[](https://packagist.org/packages/myclabs/deep-copy)
+
+## Table of Contents
+
+1. [How](#how)
+1. [Why](#why)
+ 1. [Using simply `clone`](#using-simply-clone)
+ 1. [Overridding `__clone()`](#overridding-__clone)
+ 1. [With `DeepCopy`](#with-deepcopy)
+1. [How it works](#how-it-works)
+1. [Going further](#going-further)
+ 1. [Matchers](#matchers)
+ 1. [Property name](#property-name)
+ 1. [Specific property](#specific-property)
+ 1. [Type](#type)
+ 1. [Filters](#filters)
+ 1. [`SetNullFilter`](#setnullfilter-filter)
+ 1. [`KeepFilter`](#keepfilter-filter)
+ 1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter)
+ 1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter)
+ 1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter)
+ 1. [`ReplaceFilter`](#replacefilter-type-filter)
+ 1. [`ShallowCopyFilter`](#shallowcopyfilter-type-filter)
+1. [Edge cases](#edge-cases)
+1. [Contributing](#contributing)
+ 1. [Tests](#tests)
+
+
+## How?
+
+Install with Composer:
+
+```json
+composer require myclabs/deep-copy
+```
+
+Use simply:
+
+```php
+use DeepCopy\DeepCopy;
+
+$copier = new DeepCopy();
+$myCopy = $copier->copy($myObject);
+```
+
+
+## Why?
+
+- How do you create copies of your objects?
+
+```php
+$myCopy = clone $myObject;
+```
+
+- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)?
+
+You use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior
+yourself.
+
+- But how do you handle **cycles** in the association graph?
+
+Now you're in for a big mess :(
+
+
+
+
+### Using simply `clone`
+
+
+
+
+### Overridding `__clone()`
+
+
+
+
+### With `DeepCopy`
+
+
+
+
+## How it works
+
+DeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it
+keeps a hash map of all instances and thus preserves the object graph.
+
+To use it:
+
+```php
+use function DeepCopy\deep_copy;
+
+$copy = deep_copy($var);
+```
+
+Alternatively, you can create your own `DeepCopy` instance to configure it differently for example:
+
+```php
+use DeepCopy\DeepCopy;
+
+$copier = new DeepCopy(true);
+
+$copy = $copier->copy($var);
+```
+
+You may want to roll your own deep copy function:
+
+```php
+namespace Acme;
+
+use DeepCopy\DeepCopy;
+
+function deep_copy($var)
+{
+ static $copier = null;
+
+ if (null === $copier) {
+ $copier = new DeepCopy(true);
+ }
+
+ return $copier->copy($var);
+}
+```
+
+
+## Going further
+
+You can add filters to customize the copy process.
+
+The method to add a filter is `DeepCopy\DeepCopy::addFilter($filter, $matcher)`,
+with `$filter` implementing `DeepCopy\Filter\Filter`
+and `$matcher` implementing `DeepCopy\Matcher\Matcher`.
+
+We provide some generic filters and matchers.
+
+
+### Matchers
+
+ - `DeepCopy\Matcher` applies on a object attribute.
+ - `DeepCopy\TypeMatcher` applies on any element found in graph, including array elements.
+
+
+#### Property name
+
+The `PropertyNameMatcher` will match a property by its name:
+
+```php
+use DeepCopy\Matcher\PropertyNameMatcher;
+
+// Will apply a filter to any property of any objects named "id"
+$matcher = new PropertyNameMatcher('id');
+```
+
+
+#### Specific property
+
+The `PropertyMatcher` will match a specific property of a specific class:
+
+```php
+use DeepCopy\Matcher\PropertyMatcher;
+
+// Will apply a filter to the property "id" of any objects of the class "MyClass"
+$matcher = new PropertyMatcher('MyClass', 'id');
+```
+
+
+#### Type
+
+The `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of
+[gettype()](http://php.net/manual/en/function.gettype.php) function):
+
+```php
+use DeepCopy\TypeMatcher\TypeMatcher;
+
+// Will apply a filter to any object that is an instance of Doctrine\Common\Collections\Collection
+$matcher = new TypeMatcher('Doctrine\Common\Collections\Collection');
+```
+
+
+### Filters
+
+- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher`
+- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher`
+
+
+#### `SetNullFilter` (filter)
+
+Let's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have
+any ID:
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\SetNullFilter;
+use DeepCopy\Matcher\PropertyNameMatcher;
+
+$object = MyClass::load(123);
+echo $object->id; // 123
+
+$copier = new DeepCopy();
+$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id'));
+
+$copy = $copier->copy($object);
+
+echo $copy->id; // null
+```
+
+
+#### `KeepFilter` (filter)
+
+If you want a property to remain untouched (for example, an association to an object):
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\KeepFilter;
+use DeepCopy\Matcher\PropertyMatcher;
+
+$copier = new DeepCopy();
+$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category'));
+
+$copy = $copier->copy($object);
+// $copy->category has not been touched
+```
+
+
+#### `DoctrineCollectionFilter` (filter)
+
+If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`:
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\Doctrine\DoctrineCollectionFilter;
+use DeepCopy\Matcher\PropertyTypeMatcher;
+
+$copier = new DeepCopy();
+$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\Common\Collections\Collection'));
+
+$copy = $copier->copy($object);
+```
+
+
+#### `DoctrineEmptyCollectionFilter` (filter)
+
+If you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the
+`DoctrineEmptyCollectionFilter`
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\Doctrine\DoctrineEmptyCollectionFilter;
+use DeepCopy\Matcher\PropertyMatcher;
+
+$copier = new DeepCopy();
+$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty'));
+
+$copy = $copier->copy($object);
+
+// $copy->myProperty will return an empty collection
+```
+
+
+#### `DoctrineProxyFilter` (filter)
+
+If you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a
+Doctrine proxy class (...\\\_\_CG\_\_\Proxy).
+You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class.
+**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded
+before other filters are applied!**
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\Doctrine\DoctrineProxyFilter;
+use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher;
+
+$copier = new DeepCopy();
+$copier->addFilter(new DoctrineProxyFilter(), new DoctrineProxyMatcher());
+
+$copy = $copier->copy($object);
+
+// $copy should now contain a clone of all entities, including those that were not yet fully loaded.
+```
+
+
+#### `ReplaceFilter` (type filter)
+
+1. If you want to replace the value of a property:
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\Filter\ReplaceFilter;
+use DeepCopy\Matcher\PropertyMatcher;
+
+$copier = new DeepCopy();
+$callback = function ($currentValue) {
+ return $currentValue . ' (copy)'
+};
+$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title'));
+
+$copy = $copier->copy($object);
+
+// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)'
+```
+
+2. If you want to replace whole element:
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\TypeFilter\ReplaceFilter;
+use DeepCopy\TypeMatcher\TypeMatcher;
+
+$copier = new DeepCopy();
+$callback = function (MyClass $myClass) {
+ return get_class($myClass);
+};
+$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass'));
+
+$copy = $copier->copy([new MyClass, 'some string', new MyClass]);
+
+// $copy will contain ['MyClass', 'some string', 'MyClass']
+```
+
+
+The `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable.
+
+
+#### `ShallowCopyFilter` (type filter)
+
+Stop *DeepCopy* from recursively copying element, using standard `clone` instead:
+
+```php
+use DeepCopy\DeepCopy;
+use DeepCopy\TypeFilter\ShallowCopyFilter;
+use DeepCopy\TypeMatcher\TypeMatcher;
+use Mockery as m;
+
+$this->deepCopy = new DeepCopy();
+$this->deepCopy->addTypeFilter(
+ new ShallowCopyFilter,
+ new TypeMatcher(m\MockInterface::class)
+);
+
+$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class));
+// All mocks will be just cloned, not deep copied
+```
+
+
+## Edge cases
+
+The following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are
+not applied. There is two ways for you to handle them:
+
+- Implement your own `__clone()` method
+- Use a filter with a type matcher
+
+
+## Contributing
+
+DeepCopy is distributed under the MIT license.
+
+
+### Tests
+
+Running the tests is simple:
+
+```php
+vendor/bin/phpunit
+```
+
+### Support
+
+Get professional support via [the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-myclabs-deep-copy?utm_source=packagist-myclabs-deep-copy&utm_medium=referral&utm_campaign=readme).
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/composer.json b/class/payment/paypal/vendor/myclabs/deep-copy/composer.json
new file mode 100644
index 0000000..45656c9
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/composer.json
@@ -0,0 +1,38 @@
+{
+ "name": "myclabs/deep-copy",
+ "type": "library",
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": ["clone", "copy", "duplicate", "object", "object graph"],
+ "license": "MIT",
+
+ "autoload": {
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ },
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "DeepCopy\\": "fixtures/",
+ "DeepCopyTest\\": "tests/DeepCopyTest/"
+ }
+ },
+
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.0",
+ "doctrine/common": "^2.6",
+ "phpunit/phpunit": "^7.1"
+ },
+ "replace": {
+ "myclabs/deep-copy": "self.version"
+ },
+
+ "config": {
+ "sort-packages": true
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
new file mode 100644
index 0000000..15e5c68
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php
@@ -0,0 +1,298 @@
+ Filter, 'matcher' => Matcher] pairs.
+ */
+ private $filters = [];
+
+ /**
+ * Type Filters to apply.
+ *
+ * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
+ */
+ private $typeFilters = [];
+
+ /**
+ * @var bool
+ */
+ private $skipUncloneable = false;
+
+ /**
+ * @var bool
+ */
+ private $useCloneMethod;
+
+ /**
+ * @param bool $useCloneMethod If set to true, when an object implements the __clone() function, it will be used
+ * instead of the regular deep cloning.
+ */
+ public function __construct($useCloneMethod = false)
+ {
+ $this->useCloneMethod = $useCloneMethod;
+
+ $this->addTypeFilter(new ArrayObjectFilter($this), new TypeMatcher(ArrayObject::class));
+ $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class));
+ $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class));
+ }
+
+ /**
+ * If enabled, will not throw an exception when coming across an uncloneable property.
+ *
+ * @param $skipUncloneable
+ *
+ * @return $this
+ */
+ public function skipUncloneable($skipUncloneable = true)
+ {
+ $this->skipUncloneable = $skipUncloneable;
+
+ return $this;
+ }
+
+ /**
+ * Deep copies the given object.
+ *
+ * @param mixed $object
+ *
+ * @return mixed
+ */
+ public function copy($object)
+ {
+ $this->hashMap = [];
+
+ return $this->recursiveCopy($object);
+ }
+
+ public function addFilter(Filter $filter, Matcher $matcher)
+ {
+ $this->filters[] = [
+ 'matcher' => $matcher,
+ 'filter' => $filter,
+ ];
+ }
+
+ public function prependFilter(Filter $filter, Matcher $matcher)
+ {
+ array_unshift($this->filters, [
+ 'matcher' => $matcher,
+ 'filter' => $filter,
+ ]);
+ }
+
+ public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher)
+ {
+ $this->typeFilters[] = [
+ 'matcher' => $matcher,
+ 'filter' => $filter,
+ ];
+ }
+
+ private function recursiveCopy($var)
+ {
+ // Matches Type Filter
+ if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) {
+ return $filter->apply($var);
+ }
+
+ // Resource
+ if (is_resource($var)) {
+ return $var;
+ }
+
+ // Array
+ if (is_array($var)) {
+ return $this->copyArray($var);
+ }
+
+ // Scalar
+ if (! is_object($var)) {
+ return $var;
+ }
+
+ // Object
+ return $this->copyObject($var);
+ }
+
+ /**
+ * Copy an array
+ * @param array $array
+ * @return array
+ */
+ private function copyArray(array $array)
+ {
+ foreach ($array as $key => $value) {
+ $array[$key] = $this->recursiveCopy($value);
+ }
+
+ return $array;
+ }
+
+ /**
+ * Copies an object.
+ *
+ * @param object $object
+ *
+ * @throws CloneException
+ *
+ * @return object
+ */
+ private function copyObject($object)
+ {
+ $objectHash = spl_object_hash($object);
+
+ if (isset($this->hashMap[$objectHash])) {
+ return $this->hashMap[$objectHash];
+ }
+
+ $reflectedObject = new ReflectionObject($object);
+ $isCloneable = $reflectedObject->isCloneable();
+
+ if (false === $isCloneable) {
+ if ($this->skipUncloneable) {
+ $this->hashMap[$objectHash] = $object;
+
+ return $object;
+ }
+
+ throw new CloneException(
+ sprintf(
+ 'The class "%s" is not cloneable.',
+ $reflectedObject->getName()
+ )
+ );
+ }
+
+ $newObject = clone $object;
+ $this->hashMap[$objectHash] = $newObject;
+
+ if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) {
+ return $newObject;
+ }
+
+ if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) {
+ return $newObject;
+ }
+
+ foreach (ReflectionHelper::getProperties($reflectedObject) as $property) {
+ $this->copyObjectProperty($newObject, $property);
+ }
+
+ return $newObject;
+ }
+
+ private function copyObjectProperty($object, ReflectionProperty $property)
+ {
+ // Ignore static properties
+ if ($property->isStatic()) {
+ return;
+ }
+
+ // Apply the filters
+ foreach ($this->filters as $item) {
+ /** @var Matcher $matcher */
+ $matcher = $item['matcher'];
+ /** @var Filter $filter */
+ $filter = $item['filter'];
+
+ if ($matcher->matches($object, $property->getName())) {
+ $filter->apply(
+ $object,
+ $property->getName(),
+ function ($object) {
+ return $this->recursiveCopy($object);
+ }
+ );
+
+ // If a filter matches, we stop processing this property
+ return;
+ }
+ }
+
+ $property->setAccessible(true);
+
+ // Ignore uninitialized properties (for PHP >7.4)
+ if (method_exists($property, 'isInitialized') && !$property->isInitialized($object)) {
+ return;
+ }
+
+ $propertyValue = $property->getValue($object);
+
+ // Copy the property
+ $property->setValue($object, $this->recursiveCopy($propertyValue));
+ }
+
+ /**
+ * Returns first filter that matches variable, `null` if no such filter found.
+ *
+ * @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and
+ * 'matcher' with value of type {@see TypeMatcher}
+ * @param mixed $var
+ *
+ * @return TypeFilter|null
+ */
+ private function getFirstMatchedTypeFilter(array $filterRecords, $var)
+ {
+ $matched = $this->first(
+ $filterRecords,
+ function (array $record) use ($var) {
+ /* @var TypeMatcher $matcher */
+ $matcher = $record['matcher'];
+
+ return $matcher->matches($var);
+ }
+ );
+
+ return isset($matched) ? $matched['filter'] : null;
+ }
+
+ /**
+ * Returns first element that matches predicate, `null` if no such element found.
+ *
+ * @param array $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
+ * @param callable $predicate Predicate arguments are: element.
+ *
+ * @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher'
+ * with value of type {@see TypeMatcher} or `null`.
+ */
+ private function first(array $elements, callable $predicate)
+ {
+ foreach ($elements as $element) {
+ if (call_user_func($predicate, $element)) {
+ return $element;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php
new file mode 100644
index 0000000..5c006f8
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php
@@ -0,0 +1,9 @@
+setAccessible(true);
+ $oldCollection = $reflectionProperty->getValue($object);
+
+ $newCollection = $oldCollection->map(
+ function ($item) use ($objectCopier) {
+ return $objectCopier($item);
+ }
+ );
+
+ $reflectionProperty->setValue($object, $newCollection);
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php
new file mode 100644
index 0000000..e66bf77
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php
@@ -0,0 +1,28 @@
+setAccessible(true);
+
+ $reflectionProperty->setValue($object, new ArrayCollection());
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php
new file mode 100644
index 0000000..8bee8f7
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php
@@ -0,0 +1,22 @@
+__load();
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php
new file mode 100644
index 0000000..85ba18c
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php
@@ -0,0 +1,18 @@
+callback = $callable;
+ }
+
+ /**
+ * Replaces the object property by the result of the callback called with the object property.
+ *
+ * {@inheritdoc}
+ */
+ public function apply($object, $property, $objectCopier)
+ {
+ $reflectionProperty = ReflectionHelper::getProperty($object, $property);
+ $reflectionProperty->setAccessible(true);
+
+ $value = call_user_func($this->callback, $reflectionProperty->getValue($object));
+
+ $reflectionProperty->setValue($object, $value);
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php
new file mode 100644
index 0000000..bea86b8
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php
@@ -0,0 +1,24 @@
+setAccessible(true);
+ $reflectionProperty->setValue($object, null);
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php
new file mode 100644
index 0000000..ec8856f
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php
@@ -0,0 +1,22 @@
+class = $class;
+ $this->property = $property;
+ }
+
+ /**
+ * Matches a specific property of a specific class.
+ *
+ * {@inheritdoc}
+ */
+ public function matches($object, $property)
+ {
+ return ($object instanceof $this->class) && $property == $this->property;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php
new file mode 100644
index 0000000..c8ec0d2
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php
@@ -0,0 +1,32 @@
+property = $property;
+ }
+
+ /**
+ * Matches a property by its name.
+ *
+ * {@inheritdoc}
+ */
+ public function matches($object, $property)
+ {
+ return $property == $this->property;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php
new file mode 100644
index 0000000..c7f4690
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php
@@ -0,0 +1,52 @@
+propertyType = $propertyType;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function matches($object, $property)
+ {
+ try {
+ $reflectionProperty = ReflectionHelper::getProperty($object, $property);
+ } catch (ReflectionException $exception) {
+ return false;
+ }
+
+ $reflectionProperty->setAccessible(true);
+
+ // Uninitialized properties (for PHP >7.4)
+ if (method_exists($reflectionProperty, 'isInitialized') && !$reflectionProperty->isInitialized($object)) {
+ // null instanceof $this->propertyType
+ return false;
+ }
+
+ return $reflectionProperty->getValue($object) instanceof $this->propertyType;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php
new file mode 100644
index 0000000..742410c
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php
@@ -0,0 +1,78 @@
+getProperties() does not return private properties from ancestor classes.
+ *
+ * @author muratyaman@gmail.com
+ * @see http://php.net/manual/en/reflectionclass.getproperties.php
+ *
+ * @param ReflectionClass $ref
+ *
+ * @return ReflectionProperty[]
+ */
+ public static function getProperties(ReflectionClass $ref)
+ {
+ $props = $ref->getProperties();
+ $propsArr = array();
+
+ foreach ($props as $prop) {
+ $propertyName = $prop->getName();
+ $propsArr[$propertyName] = $prop;
+ }
+
+ if ($parentClass = $ref->getParentClass()) {
+ $parentPropsArr = self::getProperties($parentClass);
+ foreach ($propsArr as $key => $property) {
+ $parentPropsArr[$key] = $property;
+ }
+
+ return $parentPropsArr;
+ }
+
+ return $propsArr;
+ }
+
+ /**
+ * Retrieves property by name from object and all its ancestors.
+ *
+ * @param object|string $object
+ * @param string $name
+ *
+ * @throws PropertyException
+ * @throws ReflectionException
+ *
+ * @return ReflectionProperty
+ */
+ public static function getProperty($object, $name)
+ {
+ $reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object);
+
+ if ($reflection->hasProperty($name)) {
+ return $reflection->getProperty($name);
+ }
+
+ if ($parentClass = $reflection->getParentClass()) {
+ return self::getProperty($parentClass->getName(), $name);
+ }
+
+ throw new PropertyException(
+ sprintf(
+ 'The class "%s" doesn\'t have a property with the given name: "%s".',
+ is_object($object) ? get_class($object) : $object,
+ $name
+ )
+ );
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php
new file mode 100644
index 0000000..becd1cf
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php
@@ -0,0 +1,33 @@
+ $propertyValue) {
+ $copy->{$propertyName} = $propertyValue;
+ }
+
+ return $copy;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php
new file mode 100644
index 0000000..164f8b8
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php
@@ -0,0 +1,30 @@
+callback = $callable;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function apply($element)
+ {
+ return call_user_func($this->callback, $element);
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php
new file mode 100644
index 0000000..a5fbd7a
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php
@@ -0,0 +1,17 @@
+copier = $copier;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function apply($arrayObject)
+ {
+ $clone = clone $arrayObject;
+ foreach ($arrayObject->getArrayCopy() as $k => $v) {
+ $clone->offsetSet($k, $this->copier->copy($v));
+ }
+
+ return $clone;
+ }
+}
+
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php
new file mode 100644
index 0000000..c5644cf
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php
@@ -0,0 +1,10 @@
+copier = $copier;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function apply($element)
+ {
+ $newElement = clone $element;
+
+ $copy = $this->createCopyClosure();
+
+ return $copy($newElement);
+ }
+
+ private function createCopyClosure()
+ {
+ $copier = $this->copier;
+
+ $copy = function (SplDoublyLinkedList $list) use ($copier) {
+ // Replace each element in the list with a deep copy of itself
+ for ($i = 1; $i <= $list->count(); $i++) {
+ $copy = $copier->recursiveCopy($list->shift());
+
+ $list->push($copy);
+ }
+
+ return $list;
+ };
+
+ return Closure::bind($copy, null, DeepCopy::class);
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php
new file mode 100644
index 0000000..5785a7d
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php
@@ -0,0 +1,13 @@
+type = $type;
+ }
+
+ /**
+ * @param mixed $element
+ *
+ * @return boolean
+ */
+ public function matches($element)
+ {
+ return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type;
+ }
+}
diff --git a/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
new file mode 100644
index 0000000..55dcc92
--- /dev/null
+++ b/class/payment/paypal/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
@@ -0,0 +1,20 @@
+copy($value);
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/.gitattributes b/class/payment/paypal/vendor/paypal/paypalhttp/.gitattributes
new file mode 100644
index 0000000..ec6c2f5
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/.gitattributes
@@ -0,0 +1,7 @@
+tests/ export-ignore
+.idea/ export-ignore
+.github/ export-ignore
+.releasinator.rb export-ignore
+Gemfile export-ignore
+Gemfile.lock export-ignore
+
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/.gitignore b/class/payment/paypal/vendor/paypal/paypalhttp/.gitignore
new file mode 100644
index 0000000..2efb91f
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/.gitignore
@@ -0,0 +1,32 @@
+.DS_Store
+/vendor/
+composer.phar
+composer.lock
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/dictionaries
+
+.idea/codeStyles/Project.xml
+.idea/codeStyles/codeStyleConfig.xml
+.idea/*
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+## File-based project format:
+*.iws
+.idea/*.iml
+.idea/vcs.xml
+.idea/php.xml
+.idea/php-test-framework.xml
+.idea/modules.xml
+__files/*
+mappings/*
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/.travis.yml b/class/payment/paypal/vendor/paypal/paypalhttp/.travis.yml
new file mode 100644
index 0000000..4fddbb9
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/.travis.yml
@@ -0,0 +1,16 @@
+sudo: false
+language: php
+php:
+- 5.6
+- 7.0
+- 7.1
+- hhvm
+matrix:
+ allow_failures:
+ - php: hhvm
+ fast_finish: true
+before_script:
+- composer self-update
+- composer install --dev
+script:
+- vendor/bin/phpunit
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/CHANGELOG.md b/class/payment/paypal/vendor/paypal/paypalhttp/CHANGELOG.md
new file mode 100644
index 0000000..f55b907
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/CHANGELOG.md
@@ -0,0 +1,2 @@
+## 1.0.0
+- First release
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/CONTRIBUTING.md b/class/payment/paypal/vendor/paypal/paypalhttp/CONTRIBUTING.md
new file mode 100644
index 0000000..3810a58
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/CONTRIBUTING.md
@@ -0,0 +1,10 @@
+# Contribute to the PayPal PHP HttpClient
+
+### *Pull requests are welcome!*
+
+General Guidelines
+------------------
+
+* **Code style.** Please follow local code style. Ask if you're unsure.
+* **No warnings.** All generated code must compile without warnings.
+
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/LICENSE b/class/payment/paypal/vendor/paypal/paypalhttp/LICENSE
new file mode 100644
index 0000000..c689d74
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2009-2016 PayPal, Inc.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/README.md b/class/payment/paypal/vendor/paypal/paypalhttp/README.md
new file mode 100644
index 0000000..c4bc958
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/README.md
@@ -0,0 +1,76 @@
+## PayPal HttpClient
+
+PayPalHttp is a generic HTTP Client.
+
+In it's simplest form, an [`HttpClient`](lib/PayPalHttp/HttpClient.php) exposes an `execute` method which takes an [HTTP request](lib/PayPalHttp/HttpRequest.php), executes it against the domain described in an [Environment](lib/PayPalHttp/Environment.php), and returns an [HTTP response](lib/PayPalHttp/HttpResponse.php).
+
+### Environment
+
+An [`Environment`](./lib/PayPalHttp/environment.rb) describes a domain that hosts a REST API, against which an `HttpClient` will make requests. `Environment` is a simple interface that wraps one method, `baseUrl`.
+
+```php
+$env = new Environment('https://example.com');
+```
+
+### Requests
+
+HTTP requests contain all the information needed to make an HTTP request against the REST API. Specifically, one request describes a path, a verb, any path/query/form parameters, headers, attached files for upload, and body data.
+
+### Responses
+
+HTTP responses contain information returned by a server in response to a request as described above. They are simple objects which contain a status code, headers, and any data returned by the server.
+
+```php
+$request = new HttpRequest("/path", "GET");
+$request->body[] = "some data";
+
+$response = $client->execute($req);
+
+$statusCode = $response->statusCode;
+$headers = $response->headers;
+$data = $response->result;
+```
+
+### Injectors
+
+Injectors are blocks that can be used for executing arbitrary pre-flight logic, such as modifying a request or logging data. Injectors are attached to an `HttpClient` using the `addInjector` method.
+
+The `HttpClient` executes its injectors in a first-in, first-out order, before each request.
+
+```php
+class LogInjector implements Injector
+{
+ public function inject($httpRequest)
+ {
+ // Do some logging here
+ }
+}
+
+$logInjector = new LogInjector();
+$client = new HttpClient($environment);
+$client->addInjector($logInjector);
+...
+```
+
+### Error Handling
+
+`HttpClient#execute` may throw an `Exception` if something went wrong during the course of execution. If the server returned a non-200 response, [IOException](lib/PayPalHttp/IOException.php) will be thrown, that will contain a status code and headers you can use for debugging.
+
+```php
+try
+{
+ $client->execute($req);
+}
+catch (HttpException $e)
+{
+ $statusCode = $e->response->statusCode;
+ $headers = $e->response->headers;
+ $body = $e->response->result;
+}
+```
+
+## License
+PayPalHttp-PHP is open source and available under the MIT license. See the [LICENSE](./LICENSE) file for more information.
+
+## Contributing
+Pull requests and issues are welcome. Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/Rakefile b/class/payment/paypal/vendor/paypal/paypalhttp/Rakefile
new file mode 100644
index 0000000..33a443c
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/Rakefile
@@ -0,0 +1,2 @@
+spec = Gem::Specification.find_by_name 'releasinator'
+load "#{spec.gem_dir}/lib/tasks/releasinator.rake"
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/composer.json b/class/payment/paypal/vendor/paypal/paypalhttp/composer.json
new file mode 100644
index 0000000..05728a3
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/composer.json
@@ -0,0 +1,23 @@
+{
+ "name": "paypal/paypalhttp",
+ "type": "library",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "PayPal",
+ "homepage": "https://github.com/paypal/paypalhttp_php/contributors"
+ }
+ ],
+ "require": {
+ "ext-curl": "*"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "wiremock-php/wiremock-php": "1.43.2"
+ },
+ "autoload": {
+ "psr-4": {
+ "PayPalHttp\\": "lib/PayPalHttp"
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Curl.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Curl.php
new file mode 100644
index 0000000..08e6eaf
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Curl.php
@@ -0,0 +1,57 @@
+curl = $curl;
+ }
+
+ public function setOpt($option, $value)
+ {
+ curl_setopt($this->curl, $option, $value);
+ return $this;
+ }
+
+ public function close()
+ {
+ curl_close($this->curl);
+ return $this;
+ }
+
+ public function exec()
+ {
+ return curl_exec($this->curl);
+ }
+
+ public function errNo()
+ {
+ return curl_errno($this->curl);
+ }
+
+ public function getInfo($option)
+ {
+ return curl_getinfo($this->curl, $option);
+ }
+
+ public function error()
+ {
+ return curl_error($this->curl);
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Encoder.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Encoder.php
new file mode 100644
index 0000000..b7158a7
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Encoder.php
@@ -0,0 +1,114 @@
+serializers[] = new Json();
+ $this->serializers[] = new Text();
+ $this->serializers[] = new Multipart();
+ $this->serializers[] = new Form();
+ }
+
+
+
+ public function serializeRequest(HttpRequest $request)
+ {
+ if (!array_key_exists('content-type', $request->headers)) {
+ $message = "HttpRequest does not have Content-Type header set";
+ echo $message;
+ throw new \Exception($message);
+ }
+
+ $contentType = $request->headers['content-type'];
+ /** @var Serializer $serializer */
+ $serializer = $this->serializer($contentType);
+
+ if (is_null($serializer)) {
+ $message = sprintf("Unable to serialize request with Content-Type: %s. Supported encodings are: %s", $contentType, implode(", ", $this->supportedEncodings()));
+ echo $message;
+ throw new \Exception($message);
+ }
+
+ if (!(is_string($request->body) || is_array($request->body))) {
+ $message = "Body must be either string or array";
+ echo $message;
+ throw new \Exception($message);
+ }
+
+ $serialized = $serializer->encode($request);
+
+ if (array_key_exists("content-encoding", $request->headers) && $request->headers["content-encoding"] === "gzip") {
+ $serialized = gzencode($serialized);
+ }
+ return $serialized;
+ }
+
+
+ public function deserializeResponse($responseBody, $headers)
+ {
+
+ if (!array_key_exists('content-type', $headers)) {
+ $message = "HTTP response does not have Content-Type header set";
+ echo $message;
+ throw new \Exception($message);
+ }
+
+ $contentType = $headers['content-type'];
+ /** @var Serializer $serializer */
+ $serializer = $this->serializer($contentType);
+
+ if (is_null($serializer)) {
+ throw new \Exception(sprintf("Unable to deserialize response with Content-Type: %s. Supported encodings are: %s", $contentType, implode(", ", $this->supportedEncodings())));
+ }
+
+ if (array_key_exists("content-encoding", $headers) && $headers["content-encoding"] === "gzip") {
+ $responseBody = gzdecode($responseBody);
+ }
+
+ return $serializer->decode($responseBody);
+ }
+
+ private function serializer($contentType)
+ {
+ /** @var Serializer $serializer */
+ foreach ($this->serializers as $serializer) {
+ try {
+ if (preg_match($serializer->contentType(), $contentType) == 1) {
+ return $serializer;
+ }
+ } catch (\Exception $ex) {
+ $message = sprintf("Error while checking content type of %s: %s", get_class($serializer), $ex->getMessage());
+ echo $message;
+ throw new \Exception($message, $ex->getCode(), $ex);
+ }
+ }
+
+ return NULL;
+ }
+
+ private function supportedEncodings()
+ {
+ $values = [];
+ /** @var Serializer $serializer */
+ foreach ($this->serializers as $serializer) {
+ $values[] = $serializer->contentType();
+ }
+ return $values;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Environment.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Environment.php
new file mode 100644
index 0000000..4eb0ce0
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Environment.php
@@ -0,0 +1,18 @@
+environment = $environment;
+ $this->encoder = new Encoder();
+ $this->curlCls = Curl::class;
+ }
+
+ /**
+ * Injectors are blocks that can be used for executing arbitrary pre-flight logic, such as modifying a request or logging data.
+ * Executed in first-in first-out order.
+ *
+ * @param Injector $inj
+ */
+ public function addInjector(Injector $inj)
+ {
+ $this->injectors[] = $inj;
+ }
+
+ /**
+ * The method that takes an HTTP request, serializes the request, makes a call to given environment, and deserialize response
+ *
+ * @param $httpRequest HttpRequest
+ * @return HttpResponse
+ */
+ public function execute(HttpRequest $httpRequest)
+ {
+ $requestCpy = clone $httpRequest;
+ $curl = new Curl();
+
+ foreach ($this->injectors as $inj) {
+ $inj->inject($requestCpy);
+ }
+
+ $url = $this->environment->baseUrl() . $requestCpy->path;
+ $formattedHeaders = $this->prepareHeaders($requestCpy->headers);
+ if (!array_key_exists("user-agent", $formattedHeaders)) {
+ $requestCpy->headers["user-agent"] = $this->userAgent();
+ }
+
+ $body = "";
+ if (!is_null($requestCpy->body)) {
+ $rawHeaders = $requestCpy->headers;
+ $requestCpy->headers = $formattedHeaders;
+ $body = $this->encoder->serializeRequest($requestCpy);
+ $requestCpy->headers = $this->mapHeaders($rawHeaders,$requestCpy->headers);
+ }
+
+ $curl->setOpt(CURLOPT_URL, $url);
+ $curl->setOpt(CURLOPT_CUSTOMREQUEST, $requestCpy->verb);
+ $curl->setOpt(CURLOPT_HTTPHEADER, $this->serializeHeaders($requestCpy->headers));
+ $curl->setOpt(CURLOPT_RETURNTRANSFER, 1);
+ $curl->setOpt(CURLOPT_HEADER, 0);
+
+ if (!is_null($requestCpy->body)) {
+ $curl->setOpt(CURLOPT_POSTFIELDS, $body);
+ }
+
+ if (strpos($this->environment->baseUrl(), "https://") === 0) {
+ $curl->setOpt(CURLOPT_SSL_VERIFYPEER, true);
+ $curl->setOpt(CURLOPT_SSL_VERIFYHOST, 2);
+ }
+
+ if ($caCertPath = $this->getCACertFilePath()) {
+ $curl->setOpt(CURLOPT_CAINFO, $caCertPath);
+ }
+
+ $response = $this->parseResponse($curl);
+ $curl->close();
+
+ return $response;
+ }
+
+ /**
+ * Returns an array representing headers with their keys
+ * to be lower case
+ * @param $headers
+ * @return array
+ */
+ public function prepareHeaders($headers){
+ return array_change_key_case($headers);
+ }
+
+ /**
+ * Returns an array representing headers with their key in
+ * original cases and updated values
+ * @param $rawHeaders
+ * @param $formattedHeaders
+ * @return array
+ */
+ public function mapHeaders($rawHeaders, $formattedHeaders){
+ $rawHeadersKey = array_keys($rawHeaders);
+ foreach ($rawHeadersKey as $array_key) {
+ if(array_key_exists(strtolower($array_key), $formattedHeaders)){
+ $rawHeaders[$array_key] = $formattedHeaders[strtolower($array_key)];
+ }
+ }
+ return $rawHeaders;
+ }
+
+ /**
+ * Returns default user-agent
+ *
+ * @return string
+ */
+ public function userAgent()
+ {
+ return "PayPalHttp-PHP HTTP/1.1";
+ }
+
+ /**
+ * Return the filepath to your custom CA Cert if needed.
+ * @return string
+ */
+ protected function getCACertFilePath()
+ {
+ return null;
+ }
+
+ protected function setCurl(Curl $curl)
+ {
+ $this->curl = $curl;
+ }
+
+ protected function setEncoder(Encoder $encoder)
+ {
+ $this->encoder = $encoder;
+ }
+
+ private function serializeHeaders($headers)
+ {
+ $headerArray = [];
+ if ($headers) {
+ foreach ($headers as $key => $val) {
+ $headerArray[] = $key . ": " . $val;
+ }
+ }
+
+ return $headerArray;
+ }
+
+ private function parseResponse($curl)
+ {
+ $headers = [];
+ $curl->setOpt(CURLOPT_HEADERFUNCTION,
+ function($curl, $header) use (&$headers)
+ {
+ $len = strlen($header);
+
+ $k = "";
+ $v = "";
+
+ $this->deserializeHeader($header, $k, $v);
+ $headers[$k] = $v;
+
+ return $len;
+ });
+
+ $responseData = $curl->exec();
+ $statusCode = $curl->getInfo(CURLINFO_HTTP_CODE);
+ $errorCode = $curl->errNo();
+ $error = $curl->error();
+
+ if ($errorCode > 0) {
+ throw new IOException($error, $errorCode);
+ }
+
+ $body = $responseData;
+
+ if ($statusCode >= 200 && $statusCode < 300) {
+ $responseBody = NULL;
+
+ if (!empty($body)) {
+ $responseBody = $this->encoder->deserializeResponse($body, $this->prepareHeaders($headers));
+ }
+
+ return new HttpResponse(
+ $errorCode === 0 ? $statusCode : $errorCode,
+ $responseBody,
+ $headers
+ );
+ } else {
+ throw new HttpException($body, $statusCode, $headers);
+ }
+ }
+
+ private function deserializeHeader($header, &$key, &$value)
+ {
+ if (strlen($header) > 0) {
+ if (empty($header) || strpos($header, ':') === false) {
+ return NULL;
+ }
+
+ list($k, $v) = explode(":", $header);
+ $key = trim($k);
+ $value = trim($v);
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpException.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpException.php
new file mode 100644
index 0000000..5f4d2db
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpException.php
@@ -0,0 +1,23 @@
+statusCode = $statusCode;
+ $this->headers = $headers;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpRequest.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpRequest.php
new file mode 100644
index 0000000..89b7480
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpRequest.php
@@ -0,0 +1,42 @@
+path = $path;
+ $this->verb = $verb;
+ $this->body = NULL;
+ $this->headers = [];
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpResponse.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpResponse.php
new file mode 100644
index 0000000..ef8fb35
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/HttpResponse.php
@@ -0,0 +1,34 @@
+statusCode = $statusCode;
+ $this->headers = $headers;
+ $this->result = $body;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/IOException.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/IOException.php
new file mode 100644
index 0000000..7bfc91c
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/IOException.php
@@ -0,0 +1,13 @@
+body) || !$this->isAssociative($request->body))
+ {
+ throw new \Exception("HttpRequest body must be an associative array when Content-Type is: " . $request->headers["Content-Type"]);
+ }
+
+ return http_build_query($request->body);
+ }
+
+ /**
+ * @param $body
+ * @return mixed
+ * @throws \Exception as multipart does not support deserialization.
+ */
+ public function decode($body)
+ {
+ throw new \Exception("CurlSupported does not support deserialization");
+ }
+
+ private function isAssociative(array $array)
+ {
+ return array_values($array) !== $array;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/FormPart.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/FormPart.php
new file mode 100644
index 0000000..3779a9b
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/FormPart.php
@@ -0,0 +1,25 @@
+value = $value;
+ $this->headers = array_merge([], $headers);
+ }
+
+ public function getValue()
+ {
+ return $this->value;
+ }
+
+ public function getHeaders()
+ {
+ return $this->headers;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php
new file mode 100644
index 0000000..3f66314
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Json.php
@@ -0,0 +1,38 @@
+body;
+ if (is_string($body)) {
+ return $body;
+ }
+ if (is_array($body)) {
+ return json_encode($body);
+ }
+ throw new \Exception("Cannot serialize data. Unknown type");
+ }
+
+ public function decode($data)
+ {
+ return json_decode($data);
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Multipart.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Multipart.php
new file mode 100644
index 0000000..a420205
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Multipart.php
@@ -0,0 +1,134 @@
+body) || !$this->isAssociative($request->body))
+ {
+ throw new \Exception("HttpRequest body must be an associative array when Content-Type is: " . $request->headers["content-type"]);
+ }
+ $boundary = "---------------------" . md5(mt_rand() . microtime());
+ $contentTypeHeader = $request->headers["content-type"];
+ $request->headers["content-type"] = "{$contentTypeHeader}; boundary={$boundary}";
+
+ $value_params = [];
+ $file_params = [];
+
+ $disallow = ["\0", "\"", "\r", "\n"];
+
+ $body = [];
+
+ foreach ($request->body as $k => $v) {
+ $k = str_replace($disallow, "_", $k);
+ if (is_resource($v)) {
+ $file_params[] = $this->prepareFilePart($k, $v, $boundary);
+ } else if ($v instanceof FormPart) {
+ $value_params[] = $this->prepareFormPart($k, $v, $boundary);
+ } else {
+ $value_params[] = $this->prepareFormField($k, $v, $boundary);
+ }
+ }
+
+ $body = array_merge($value_params, $file_params);
+
+ // add boundary for each parameters
+ array_walk($body, function (&$part) use ($boundary) {
+ $part = "--{$boundary}" . self::LINEFEED . "{$part}";
+ });
+
+ // add final boundary
+ $body[] = "--{$boundary}--";
+ $body[] = "";
+
+ return implode(self::LINEFEED, $body);
+ }
+
+ public function decode($data)
+ {
+ throw new \Exception("Multipart does not support deserialization");
+ }
+
+ private function isAssociative(array $array)
+ {
+ return array_values($array) !== $array;
+ }
+
+ private function prepareFormField($partName, $value, $boundary)
+ {
+ return implode(self::LINEFEED, [
+ "Content-Disposition: form-data; name=\"{$partName}\"",
+ "",
+ filter_var($value),
+ ]);
+ }
+
+ private function prepareFilePart($partName, $file, $boundary)
+ {
+ $fileInfo = new finfo(FILEINFO_MIME_TYPE);
+ $filePath = stream_get_meta_data($file)['uri'];
+ $data = file_get_contents($filePath);
+ $mimeType = $fileInfo->buffer($data);
+
+ $splitFilePath = explode(DIRECTORY_SEPARATOR, $filePath);
+ $filePath = end($splitFilePath);
+ $disallow = ["\0", "\"", "\r", "\n"];
+ $filePath = str_replace($disallow, "_", $filePath);
+ return implode(self::LINEFEED, [
+ "Content-Disposition: form-data; name=\"{$partName}\"; filename=\"{$filePath}\"",
+ "Content-Type: {$mimeType}",
+ "",
+ $data,
+ ]);
+ }
+
+ private function prepareFormPart($partName, $formPart, $boundary)
+ {
+ $contentDisposition = "Content-Disposition: form-data; name=\"{$partName}\"";
+
+ $partHeaders = $formPart->getHeaders();
+ $formattedheaders = array_change_key_case($partHeaders);
+ if (array_key_exists("content-type", $formattedheaders)) {
+ if ($formattedheaders["content-type"] === "application/json") {
+ $contentDisposition .= "; filename=\"{$partName}.json\"";
+ }
+ $tempRequest = new HttpRequest('/', 'POST');
+ $tempRequest->headers = $formattedheaders;
+ $tempRequest->body = $formPart->getValue();
+ $encoder = new Encoder();
+ $partValue = $encoder->serializeRequest($tempRequest);
+ } else {
+ $partValue = $formPart->getValue();
+ }
+
+ $finalPartHeaders = [];
+ foreach ($partHeaders as $k => $v) {
+ $finalPartHeaders[] = "{$k}: {$v}";
+ }
+
+ $body = array_merge([$contentDisposition], $finalPartHeaders, [""], [$partValue]);
+
+ return implode(self::LINEFEED, $body);
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Text.php b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Text.php
new file mode 100644
index 0000000..e2ce0ca
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/lib/PayPalHttp/Serializer/Text.php
@@ -0,0 +1,38 @@
+body;
+ if (is_string($body)) {
+ return $body;
+ }
+ if (is_array($body)) {
+ return json_encode($body);
+ }
+ return implode(" ", $body);
+ }
+
+ public function decode($data)
+ {
+ return $data;
+ }
+}
diff --git a/class/payment/paypal/vendor/paypal/paypalhttp/phpunit.xml b/class/payment/paypal/vendor/paypal/paypalhttp/phpunit.xml
new file mode 100644
index 0000000..ea84278
--- /dev/null
+++ b/class/payment/paypal/vendor/paypal/paypalhttp/phpunit.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ ./tests/unit
+
+
+
+
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/dependabot.yml b/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/dependabot.yml
new file mode 100644
index 0000000..c630ffa
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/dependabot.yml
@@ -0,0 +1,7 @@
+version: 2
+updates:
+- package-ecosystem: composer
+ directory: "/"
+ schedule:
+ interval: daily
+ open-pull-requests-limit: 10
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml b/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml
new file mode 100644
index 0000000..484410e
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml
@@ -0,0 +1,223 @@
+on:
+ push:
+ branches:
+ - 2.x
+ pull_request:
+name: Qa workflow
+jobs:
+ setup:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Restore/cache vendor folder
+ uses: actions/cache@v1
+ with:
+ path: vendor
+ key: all-build-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ all-build-${{ hashFiles('**/composer.lock') }}
+ all-build-
+
+ - name: Restore/cache tools folder
+ uses: actions/cache@v1
+ with:
+ path: tools
+ key: all-tools-${{ github.sha }}
+ restore-keys: |
+ all-tools-${{ github.sha }}-
+ all-tools-
+
+ - name: composer
+ uses: docker://composer
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ args: install --no-interaction --prefer-dist --optimize-autoloader
+
+ - name: Install phive
+ run: make install-phive
+
+ - name: Install PHAR dependencies
+ run: tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,8A03EA3B385DBAA1 --force-accept-unsigned
+
+ phpunit-with-coverage:
+ runs-on: ubuntu-latest
+ name: Unit tests
+ needs: setup
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: 7.2
+ ini-values: memory_limit=2G, display_errors=On, error_reporting=-1
+ coverage: pcov
+
+ - name: Restore/cache tools folder
+ uses: actions/cache@v1
+ with:
+ path: tools
+ key: all-tools-${{ github.sha }}
+ restore-keys: |
+ all-tools-${{ github.sha }}-
+ all-tools-
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ubuntu-latest-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ubuntu-latest-composer-
+
+ - name: Install Composer dependencies
+ run: |
+ composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
+
+ - name: Run PHPUnit
+ run: php tools/phpunit
+
+ phpunit:
+ runs-on: ${{ matrix.operating-system }}
+ strategy:
+ matrix:
+ operating-system:
+ - ubuntu-latest
+ - windows-latest
+ - macOS-latest
+ php-versions: ['7.2', '7.3', '7.4', '8.0']
+ name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }}
+ needs:
+ - setup
+ - phpunit-with-coverage
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Restore/cache tools folder
+ uses: actions/cache@v1
+ with:
+ path: tools
+ key: all-tools-${{ github.sha }}
+ restore-keys: |
+ all-tools-${{ github.sha }}-
+ all-tools-
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ ini-values: memory_limit=2G, display_errors=On, error_reporting=-1
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+
+ - name: Install Composer dependencies
+ run: |
+ composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
+
+ - name: Run PHPUnit
+ continue-on-error: true
+ run: php tools/phpunit
+
+ codestyle:
+ runs-on: ubuntu-latest
+ needs: [setup, phpunit]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Restore/cache vendor folder
+ uses: actions/cache@v1
+ with:
+ path: vendor
+ key: all-build-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ all-build-${{ hashFiles('**/composer.lock') }}
+ all-build-
+ - name: Code style check
+ uses: phpDocumentor/coding-standard@latest
+ with:
+ args: -s
+
+ phpstan:
+ runs-on: ubuntu-latest
+ needs: [setup, phpunit]
+ steps:
+ - uses: actions/checkout@v2
+ - name: Restore/cache vendor folder
+ uses: actions/cache@v1
+ with:
+ path: vendor
+ key: all-build-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ all-build-${{ hashFiles('**/composer.lock') }}
+ all-build-
+ - name: PHPStan
+ uses: phpDocumentor/phpstan-ga@latest
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ args: analyse src --configuration phpstan.neon
+
+ psalm:
+ runs-on: ubuntu-latest
+ needs: [setup, phpunit]
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: 7.2
+ ini-values: memory_limit=2G, display_errors=On, error_reporting=-1
+ tools: psalm
+ coverage: none
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+
+ - name: Cache composer dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+
+ - name: Install Composer dependencies
+ run: |
+ composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
+
+ - name: Psalm
+ run: psalm --output-format=github
+
+ bc_check:
+ name: BC Check
+ runs-on: ubuntu-latest
+ needs: [setup, phpunit]
+ steps:
+ - uses: actions/checkout@v2
+ - name: fetch tags
+ run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
+ - name: Restore/cache vendor folder
+ uses: actions/cache@v1
+ with:
+ path: vendor
+ key: all-build-${{ hashFiles('**/composer.lock') }}
+ restore-keys: |
+ all-build-${{ hashFiles('**/composer.lock') }}
+ all-build-
+ - name: Roave BC Check
+ uses: docker://nyholm/roave-bc-check-ga
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/LICENSE b/class/payment/paypal/vendor/phpdocumentor/reflection-common/LICENSE
new file mode 100644
index 0000000..ed6926c
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 phpDocumentor
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/README.md b/class/payment/paypal/vendor/phpdocumentor/reflection-common/README.md
new file mode 100644
index 0000000..70f830d
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/README.md
@@ -0,0 +1,11 @@
+[](https://opensource.org/licenses/MIT)
+
+[](https://coveralls.io/github/phpDocumentor/ReflectionCommon?branch=master)
+[](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master)
+[](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master)
+[](https://packagist.org/packages/phpDocumentor/Reflection-Common)
+[](https://packagist.org/packages/phpDocumentor/Reflection-Common)
+
+
+ReflectionCommon
+================
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/composer.json b/class/payment/paypal/vendor/phpdocumentor/reflection-common/composer.json
new file mode 100644
index 0000000..4d128b4
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/composer.json
@@ -0,0 +1,28 @@
+{
+ "name": "phpdocumentor/reflection-common",
+ "keywords": ["phpdoc", "phpDocumentor", "reflection", "static analysis", "FQSEN"],
+ "homepage": "http://www.phpdoc.org",
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "autoload" : {
+ "psr-4" : {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "require-dev": {
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Element.php b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Element.php
new file mode 100644
index 0000000..8923e4f
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Element.php
@@ -0,0 +1,30 @@
+fqsen = $fqsen;
+
+ if (isset($matches[2])) {
+ $this->name = $matches[2];
+ } else {
+ $matches = explode('\\', $fqsen);
+ $name = end($matches);
+ assert(is_string($name));
+ $this->name = trim($name, '()');
+ }
+ }
+
+ /**
+ * converts this class to string.
+ */
+ public function __toString() : string
+ {
+ return $this->fqsen;
+ }
+
+ /**
+ * Returns the name of the element without path.
+ */
+ public function getName() : string
+ {
+ return $this->name;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Location.php b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Location.php
new file mode 100644
index 0000000..177deed
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Location.php
@@ -0,0 +1,53 @@
+lineNumber = $lineNumber;
+ $this->columnNumber = $columnNumber;
+ }
+
+ /**
+ * Returns the line number that is covered by this location.
+ */
+ public function getLineNumber() : int
+ {
+ return $this->lineNumber;
+ }
+
+ /**
+ * Returns the column number (character position on a line) for this location object.
+ */
+ public function getColumnNumber() : int
+ {
+ return $this->columnNumber;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Project.php b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Project.php
new file mode 100644
index 0000000..57839fd
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-common/src/Project.php
@@ -0,0 +1,25 @@
+create($docComment);
+```
+
+The `create` method will yield an object of type `\phpDocumentor\Reflection\DocBlock`
+whose methods can be queried:
+
+```php
+// Contains the summary for this DocBlock
+$summary = $docblock->getSummary();
+
+// Contains \phpDocumentor\Reflection\DocBlock\Description object
+$description = $docblock->getDescription();
+
+// You can either cast it to string
+$description = (string) $docblock->getDescription();
+
+// Or use the render method to get a string representation of the Description.
+$description = $docblock->getDescription()->render();
+```
+
+> For more examples it would be best to review the scripts in the [`/examples` folder](/examples).
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/composer.json b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/composer.json
new file mode 100644
index 0000000..7038f48
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/composer.json
@@ -0,0 +1,41 @@
+{
+ "name": "phpdocumentor/reflection-docblock",
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "type": "library",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1",
+ "phpdocumentor/reflection-common": "^2.2",
+ "ext-filter": "*"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2"
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "tests/unit"
+ }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php
new file mode 100644
index 0000000..f3403d6
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php
@@ -0,0 +1,204 @@
+summary = $summary;
+ $this->description = $description ?: new DocBlock\Description('');
+ foreach ($tags as $tag) {
+ $this->addTag($tag);
+ }
+
+ $this->context = $context;
+ $this->location = $location;
+
+ $this->isTemplateEnd = $isTemplateEnd;
+ $this->isTemplateStart = $isTemplateStart;
+ }
+
+ public function getSummary() : string
+ {
+ return $this->summary;
+ }
+
+ public function getDescription() : DocBlock\Description
+ {
+ return $this->description;
+ }
+
+ /**
+ * Returns the current context.
+ */
+ public function getContext() : ?Types\Context
+ {
+ return $this->context;
+ }
+
+ /**
+ * Returns the current location.
+ */
+ public function getLocation() : ?Location
+ {
+ return $this->location;
+ }
+
+ /**
+ * Returns whether this DocBlock is the start of a Template section.
+ *
+ * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker
+ * (`#@+`) that is appended directly after the opening `/**` of a DocBlock.
+ *
+ * An example of such an opening is:
+ *
+ * ```
+ * /**#@+
+ * * My DocBlock
+ * * /
+ * ```
+ *
+ * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all
+ * elements that follow until another DocBlock is found that contains the closing marker (`#@-`).
+ *
+ * @see self::isTemplateEnd() for the check whether a closing marker was provided.
+ */
+ public function isTemplateStart() : bool
+ {
+ return $this->isTemplateStart;
+ }
+
+ /**
+ * Returns whether this DocBlock is the end of a Template section.
+ *
+ * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality.
+ */
+ public function isTemplateEnd() : bool
+ {
+ return $this->isTemplateEnd;
+ }
+
+ /**
+ * Returns the tags for this DocBlock.
+ *
+ * @return Tag[]
+ */
+ public function getTags() : array
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Returns an array of tags matching the given name. If no tags are found
+ * an empty array is returned.
+ *
+ * @param string $name String to search by.
+ *
+ * @return Tag[]
+ */
+ public function getTagsByName(string $name) : array
+ {
+ $result = [];
+
+ foreach ($this->getTags() as $tag) {
+ if ($tag->getName() !== $name) {
+ continue;
+ }
+
+ $result[] = $tag;
+ }
+
+ return $result;
+ }
+
+ /**
+ * Checks if a tag of a certain type is present in this DocBlock.
+ *
+ * @param string $name Tag name to check for.
+ */
+ public function hasTag(string $name) : bool
+ {
+ foreach ($this->getTags() as $tag) {
+ if ($tag->getName() === $name) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Remove a tag from this DocBlock.
+ *
+ * @param Tag $tagToRemove The tag to remove.
+ */
+ public function removeTag(Tag $tagToRemove) : void
+ {
+ foreach ($this->tags as $key => $tag) {
+ if ($tag === $tagToRemove) {
+ unset($this->tags[$key]);
+ break;
+ }
+ }
+ }
+
+ /**
+ * Adds a tag to this DocBlock.
+ *
+ * @param Tag $tag The tag to add.
+ */
+ private function addTag(Tag $tag) : void
+ {
+ $this->tags[] = $tag;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php
new file mode 100644
index 0000000..7b11b80
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php
@@ -0,0 +1,114 @@
+create('This is a {@see Description}', $context);
+ *
+ * The description factory will interpret the given body and create a body template and list of tags from them, and pass
+ * that onto the constructor if this class.
+ *
+ * > The $context variable is a class of type {@see \phpDocumentor\Reflection\Types\Context} and contains the namespace
+ * > and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial
+ * > type names and FQSENs.
+ *
+ * If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this:
+ *
+ * $description = new Description(
+ * 'This is a %1$s',
+ * [ new See(new Fqsen('\phpDocumentor\Reflection\DocBlock\Description')) ]
+ * );
+ *
+ * It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object
+ * is mainly responsible for rendering.
+ *
+ * @see DescriptionFactory to create a new Description.
+ * @see Description\Formatter for the formatting of the body and tags.
+ */
+class Description
+{
+ /** @var string */
+ private $bodyTemplate;
+
+ /** @var Tag[] */
+ private $tags;
+
+ /**
+ * Initializes a Description with its body (template) and a listing of the tags used in the body template.
+ *
+ * @param Tag[] $tags
+ */
+ public function __construct(string $bodyTemplate, array $tags = [])
+ {
+ $this->bodyTemplate = $bodyTemplate;
+ $this->tags = $tags;
+ }
+
+ /**
+ * Returns the body template.
+ */
+ public function getBodyTemplate() : string
+ {
+ return $this->bodyTemplate;
+ }
+
+ /**
+ * Returns the tags for this DocBlock.
+ *
+ * @return Tag[]
+ */
+ public function getTags() : array
+ {
+ return $this->tags;
+ }
+
+ /**
+ * Renders this description as a string where the provided formatter will format the tags in the expected string
+ * format.
+ */
+ public function render(?Formatter $formatter = null) : string
+ {
+ if ($formatter === null) {
+ $formatter = new PassthroughFormatter();
+ }
+
+ $tags = [];
+ foreach ($this->tags as $tag) {
+ $tags[] = '{' . $formatter->format($tag) . '}';
+ }
+
+ return vsprintf($this->bodyTemplate, $tags);
+ }
+
+ /**
+ * Returns a plain string representation of this description.
+ */
+ public function __toString() : string
+ {
+ return $this->render();
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php
new file mode 100644
index 0000000..c27d2a0
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php
@@ -0,0 +1,177 @@
+tagFactory = $tagFactory;
+ }
+
+ /**
+ * Returns the parsed text of this description.
+ */
+ public function create(string $contents, ?TypeContext $context = null) : Description
+ {
+ $tokens = $this->lex($contents);
+ $count = count($tokens);
+ $tagCount = 0;
+ $tags = [];
+
+ for ($i = 1; $i < $count; $i += 2) {
+ $tags[] = $this->tagFactory->create($tokens[$i], $context);
+ $tokens[$i] = '%' . ++$tagCount . '$s';
+ }
+
+ //In order to allow "literal" inline tags, the otherwise invalid
+ //sequence "{@}" is changed to "@", and "{}" is changed to "}".
+ //"%" is escaped to "%%" because of vsprintf.
+ //See unit tests for examples.
+ for ($i = 0; $i < $count; $i += 2) {
+ $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]);
+ }
+
+ return new Description(implode('', $tokens), $tags);
+ }
+
+ /**
+ * Strips the contents from superfluous whitespace and splits the description into a series of tokens.
+ *
+ * @return string[] A series of tokens of which the description text is composed.
+ */
+ private function lex(string $contents) : array
+ {
+ $contents = $this->removeSuperfluousStartingWhitespace($contents);
+
+ // performance optimalization; if there is no inline tag, don't bother splitting it up.
+ if (strpos($contents, '{@') === false) {
+ return [$contents];
+ }
+
+ return Utils::pregSplit(
+ '/\{
+ # "{@}" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally.
+ (?!@\})
+ # We want to capture the whole tag line, but without the inline tag delimiters.
+ (\@
+ # Match everything up to the next delimiter.
+ [^{}]*
+ # Nested inline tag content should not be captured, or it will appear in the result separately.
+ (?:
+ # Match nested inline tags.
+ (?:
+ # Because we did not catch the tag delimiters earlier, we must be explicit with them here.
+ # Notice that this also matches "{}", as a way to later introduce it as an escape sequence.
+ \{(?1)?\}
+ |
+ # Make sure we match hanging "{".
+ \{
+ )
+ # Match content after the nested inline tag.
+ [^{}]*
+ )* # If there are more inline tags, match them as well. We use "*" since there may not be any
+ # nested inline tags.
+ )
+ \}/Sux',
+ $contents,
+ 0,
+ PREG_SPLIT_DELIM_CAPTURE
+ );
+ }
+
+ /**
+ * Removes the superfluous from a multi-line description.
+ *
+ * When a description has more than one line then it can happen that the second and subsequent lines have an
+ * additional indentation. This is commonly in use with tags like this:
+ *
+ * {@}since 1.1.0 This is an example
+ * description where we have an
+ * indentation in the second and
+ * subsequent lines.
+ *
+ * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent
+ * lines and this may cause rendering issues when, for example, using a Markdown converter.
+ */
+ private function removeSuperfluousStartingWhitespace(string $contents) : string
+ {
+ $lines = explode("\n", $contents);
+
+ // if there is only one line then we don't have lines with superfluous whitespace and
+ // can use the contents as-is
+ if (count($lines) <= 1) {
+ return $contents;
+ }
+
+ // determine how many whitespace characters need to be stripped
+ $startingSpaceCount = 9999999;
+ for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) {
+ // lines with a no length do not count as they are not indented at all
+ if (trim($lines[$i]) === '') {
+ continue;
+ }
+
+ // determine the number of prefixing spaces by checking the difference in line length before and after
+ // an ltrim
+ $startingSpaceCount = min($startingSpaceCount, strlen($lines[$i]) - strlen(ltrim($lines[$i])));
+ }
+
+ // strip the number of spaces from each line
+ if ($startingSpaceCount > 0) {
+ for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) {
+ $lines[$i] = substr($lines[$i], $startingSpaceCount);
+ }
+ }
+
+ return implode("\n", $lines);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php
new file mode 100644
index 0000000..7249efb
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php
@@ -0,0 +1,157 @@
+getFilePath();
+
+ $file = $this->getExampleFileContents($filename);
+ if (!$file) {
+ return sprintf('** File not found : %s **', $filename);
+ }
+
+ return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount()));
+ }
+
+ /**
+ * Registers the project's root directory where an 'examples' folder can be expected.
+ */
+ public function setSourceDirectory(string $directory = '') : void
+ {
+ $this->sourceDirectory = $directory;
+ }
+
+ /**
+ * Returns the project's root directory where an 'examples' folder can be expected.
+ */
+ public function getSourceDirectory() : string
+ {
+ return $this->sourceDirectory;
+ }
+
+ /**
+ * Registers a series of directories that may contain examples.
+ *
+ * @param string[] $directories
+ */
+ public function setExampleDirectories(array $directories) : void
+ {
+ $this->exampleDirectories = $directories;
+ }
+
+ /**
+ * Returns a series of directories that may contain examples.
+ *
+ * @return string[]
+ */
+ public function getExampleDirectories() : array
+ {
+ return $this->exampleDirectories;
+ }
+
+ /**
+ * Attempts to find the requested example file and returns its contents or null if no file was found.
+ *
+ * This method will try several methods in search of the given example file, the first one it encounters is
+ * returned:
+ *
+ * 1. Iterates through all examples folders for the given filename
+ * 2. Checks the source folder for the given filename
+ * 3. Checks the 'examples' folder in the current working directory for examples
+ * 4. Checks the path relative to the current working directory for the given filename
+ *
+ * @return string[] all lines of the example file
+ */
+ private function getExampleFileContents(string $filename) : ?array
+ {
+ $normalizedPath = null;
+
+ foreach ($this->exampleDirectories as $directory) {
+ $exampleFileFromConfig = $this->constructExamplePath($directory, $filename);
+ if (is_readable($exampleFileFromConfig)) {
+ $normalizedPath = $exampleFileFromConfig;
+ break;
+ }
+ }
+
+ if (!$normalizedPath) {
+ if (is_readable($this->getExamplePathFromSource($filename))) {
+ $normalizedPath = $this->getExamplePathFromSource($filename);
+ } elseif (is_readable($this->getExamplePathFromExampleDirectory($filename))) {
+ $normalizedPath = $this->getExamplePathFromExampleDirectory($filename);
+ } elseif (is_readable($filename)) {
+ $normalizedPath = $filename;
+ }
+ }
+
+ $lines = $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : false;
+
+ return $lines !== false ? $lines : null;
+ }
+
+ /**
+ * Get example filepath based on the example directory inside your project.
+ */
+ private function getExamplePathFromExampleDirectory(string $file) : string
+ {
+ return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file;
+ }
+
+ /**
+ * Returns a path to the example file in the given directory..
+ */
+ private function constructExamplePath(string $directory, string $file) : string
+ {
+ return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file;
+ }
+
+ /**
+ * Get example filepath based on sourcecode.
+ */
+ private function getExamplePathFromSource(string $file) : string
+ {
+ return sprintf(
+ '%s%s%s',
+ trim($this->getSourceDirectory(), '\\/'),
+ DIRECTORY_SEPARATOR,
+ trim($file, '"')
+ );
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php
new file mode 100644
index 0000000..531970b
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php
@@ -0,0 +1,151 @@
+indent = $indent;
+ $this->indentString = $indentString;
+ $this->isFirstLineIndented = $indentFirstLine;
+ $this->lineLength = $lineLength;
+ $this->tagFormatter = $tagFormatter ?: new PassthroughFormatter();
+ }
+
+ /**
+ * Generate a DocBlock comment.
+ *
+ * @param DocBlock $docblock The DocBlock to serialize.
+ *
+ * @return string The serialized doc block.
+ */
+ public function getDocComment(DocBlock $docblock) : string
+ {
+ $indent = str_repeat($this->indentString, $this->indent);
+ $firstIndent = $this->isFirstLineIndented ? $indent : '';
+ // 3 === strlen(' * ')
+ $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null;
+
+ $text = $this->removeTrailingSpaces(
+ $indent,
+ $this->addAsterisksForEachLine(
+ $indent,
+ $this->getSummaryAndDescriptionTextBlock($docblock, $wrapLength)
+ )
+ );
+
+ $comment = $firstIndent . "/**\n";
+ if ($text) {
+ $comment .= $indent . ' * ' . $text . "\n";
+ $comment .= $indent . " *\n";
+ }
+
+ $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment);
+
+ return $comment . $indent . ' */';
+ }
+
+ private function removeTrailingSpaces(string $indent, string $text) : string
+ {
+ return str_replace(
+ sprintf("\n%s * \n", $indent),
+ sprintf("\n%s *\n", $indent),
+ $text
+ );
+ }
+
+ private function addAsterisksForEachLine(string $indent, string $text) : string
+ {
+ return str_replace(
+ "\n",
+ sprintf("\n%s * ", $indent),
+ $text
+ );
+ }
+
+ private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, ?int $wrapLength) : string
+ {
+ $text = $docblock->getSummary() . ((string) $docblock->getDescription() ? "\n\n" . $docblock->getDescription()
+ : '');
+ if ($wrapLength !== null) {
+ $text = wordwrap($text, $wrapLength);
+
+ return $text;
+ }
+
+ return $text;
+ }
+
+ private function addTagBlock(DocBlock $docblock, ?int $wrapLength, string $indent, string $comment) : string
+ {
+ foreach ($docblock->getTags() as $tag) {
+ $tagText = $this->tagFormatter->format($tag);
+ if ($wrapLength !== null) {
+ $tagText = wordwrap($tagText, $wrapLength);
+ }
+
+ $tagText = str_replace(
+ "\n",
+ sprintf("\n%s * ", $indent),
+ $tagText
+ );
+
+ $comment .= sprintf("%s * %s\n", $indent, $tagText);
+ }
+
+ return $comment;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php
new file mode 100644
index 0000000..e64b587
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php
@@ -0,0 +1,347 @@
+ Important: each parameter in addition to the body variable for the `create` method must default to null, otherwise
+ * > it violates the constraint with the interface; it is recommended to use the {@see Assert::notNull()} method to
+ * > verify that a dependency is actually passed.
+ *
+ * This Factory also features a Service Locator component that is used to pass the right dependencies to the
+ * `create` method of a tag; each dependency should be registered as a service or as a parameter.
+ *
+ * When you want to use a Tag of your own with custom handling you need to call the `registerTagHandler` method, pass
+ * the name of the tag and a Fully Qualified Class Name pointing to a class that implements the Tag interface.
+ */
+final class StandardTagFactory implements TagFactory
+{
+ /** PCRE regular expression matching a tag name. */
+ public const REGEX_TAGNAME = '[\w\-\_\\\\:]+';
+
+ /**
+ * @var array> An array with a tag as a key, and an
+ * FQCN to a class that handles it as an array value.
+ */
+ private $tagHandlerMappings = [
+ 'author' => Author::class,
+ 'covers' => Covers::class,
+ 'deprecated' => Deprecated::class,
+ // 'example' => '\phpDocumentor\Reflection\DocBlock\Tags\Example',
+ 'link' => LinkTag::class,
+ 'method' => Method::class,
+ 'param' => Param::class,
+ 'property-read' => PropertyRead::class,
+ 'property' => Property::class,
+ 'property-write' => PropertyWrite::class,
+ 'return' => Return_::class,
+ 'see' => SeeTag::class,
+ 'since' => Since::class,
+ 'source' => Source::class,
+ 'throw' => Throws::class,
+ 'throws' => Throws::class,
+ 'uses' => Uses::class,
+ 'var' => Var_::class,
+ 'version' => Version::class,
+ ];
+
+ /**
+ * @var array> An array with a anotation s a key, and an
+ * FQCN to a class that handles it as an array value.
+ */
+ private $annotationMappings = [];
+
+ /**
+ * @var ReflectionParameter[][] a lazy-loading cache containing parameters
+ * for each tagHandler that has been used.
+ */
+ private $tagHandlerParameterCache = [];
+
+ /** @var FqsenResolver */
+ private $fqsenResolver;
+
+ /**
+ * @var mixed[] an array representing a simple Service Locator where we can store parameters and
+ * services that can be inserted into the Factory Methods of Tag Handlers.
+ */
+ private $serviceLocator = [];
+
+ /**
+ * Initialize this tag factory with the means to resolve an FQSEN and optionally a list of tag handlers.
+ *
+ * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property
+ * is used.
+ *
+ * @see self::registerTagHandler() to add a new tag handler to the existing default list.
+ *
+ * @param array> $tagHandlers
+ */
+ public function __construct(FqsenResolver $fqsenResolver, ?array $tagHandlers = null)
+ {
+ $this->fqsenResolver = $fqsenResolver;
+ if ($tagHandlers !== null) {
+ $this->tagHandlerMappings = $tagHandlers;
+ }
+
+ $this->addService($fqsenResolver, FqsenResolver::class);
+ }
+
+ public function create(string $tagLine, ?TypeContext $context = null) : Tag
+ {
+ if (!$context) {
+ $context = new TypeContext('');
+ }
+
+ [$tagName, $tagBody] = $this->extractTagParts($tagLine);
+
+ return $this->createTag(trim($tagBody), $tagName, $context);
+ }
+
+ /**
+ * @param mixed $value
+ */
+ public function addParameter(string $name, $value) : void
+ {
+ $this->serviceLocator[$name] = $value;
+ }
+
+ public function addService(object $service, ?string $alias = null) : void
+ {
+ $this->serviceLocator[$alias ?: get_class($service)] = $service;
+ }
+
+ public function registerTagHandler(string $tagName, string $handler) : void
+ {
+ Assert::stringNotEmpty($tagName);
+ Assert::classExists($handler);
+ Assert::implementsInterface($handler, Tag::class);
+
+ if (strpos($tagName, '\\') && $tagName[0] !== '\\') {
+ throw new InvalidArgumentException(
+ 'A namespaced tag must have a leading backslash as it must be fully qualified'
+ );
+ }
+
+ $this->tagHandlerMappings[$tagName] = $handler;
+ }
+
+ /**
+ * Extracts all components for a tag.
+ *
+ * @return string[]
+ */
+ private function extractTagParts(string $tagLine) : array
+ {
+ $matches = [];
+ if (!preg_match('/^@(' . self::REGEX_TAGNAME . ')((?:[\s\(\{])\s*([^\s].*)|$)/us', $tagLine, $matches)) {
+ throw new InvalidArgumentException(
+ 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors'
+ );
+ }
+
+ if (count($matches) < 3) {
+ $matches[] = '';
+ }
+
+ return array_slice($matches, 1);
+ }
+
+ /**
+ * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the
+ * body was invalid.
+ */
+ private function createTag(string $body, string $name, TypeContext $context) : Tag
+ {
+ $handlerClassName = $this->findHandlerClassName($name, $context);
+ $arguments = $this->getArgumentsForParametersFromWiring(
+ $this->fetchParametersForHandlerFactoryMethod($handlerClassName),
+ $this->getServiceLocatorWithDynamicParameters($context, $name, $body)
+ );
+
+ try {
+ $callable = [$handlerClassName, 'create'];
+ Assert::isCallable($callable);
+ /** @phpstan-var callable(string): ?Tag $callable */
+ $tag = call_user_func_array($callable, $arguments);
+
+ return $tag ?? InvalidTag::create($body, $name);
+ } catch (InvalidArgumentException $e) {
+ return InvalidTag::create($body, $name)->withError($e);
+ }
+ }
+
+ /**
+ * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`).
+ *
+ * @return class-string
+ */
+ private function findHandlerClassName(string $tagName, TypeContext $context) : string
+ {
+ $handlerClassName = Generic::class;
+ if (isset($this->tagHandlerMappings[$tagName])) {
+ $handlerClassName = $this->tagHandlerMappings[$tagName];
+ } elseif ($this->isAnnotation($tagName)) {
+ // TODO: Annotation support is planned for a later stage and as such is disabled for now
+ $tagName = (string) $this->fqsenResolver->resolve($tagName, $context);
+ if (isset($this->annotationMappings[$tagName])) {
+ $handlerClassName = $this->annotationMappings[$tagName];
+ }
+ }
+
+ return $handlerClassName;
+ }
+
+ /**
+ * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters.
+ *
+ * @param ReflectionParameter[] $parameters
+ * @param mixed[] $locator
+ *
+ * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters
+ * is provided with this method.
+ */
+ private function getArgumentsForParametersFromWiring(array $parameters, array $locator) : array
+ {
+ $arguments = [];
+ foreach ($parameters as $parameter) {
+ $type = $parameter->getType();
+ $typeHint = null;
+ if ($type instanceof ReflectionNamedType) {
+ $typeHint = $type->getName();
+ if ($typeHint === 'self') {
+ $declaringClass = $parameter->getDeclaringClass();
+ if ($declaringClass !== null) {
+ $typeHint = $declaringClass->getName();
+ }
+ }
+ }
+
+ if (isset($locator[$typeHint])) {
+ $arguments[] = $locator[$typeHint];
+ continue;
+ }
+
+ $parameterName = $parameter->getName();
+ if (isset($locator[$parameterName])) {
+ $arguments[] = $locator[$parameterName];
+ continue;
+ }
+
+ $arguments[] = null;
+ }
+
+ return $arguments;
+ }
+
+ /**
+ * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given
+ * tag handler class name.
+ *
+ * @param class-string $handlerClassName
+ *
+ * @return ReflectionParameter[]
+ */
+ private function fetchParametersForHandlerFactoryMethod(string $handlerClassName) : array
+ {
+ if (!isset($this->tagHandlerParameterCache[$handlerClassName])) {
+ $methodReflection = new ReflectionMethod($handlerClassName, 'create');
+ $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters();
+ }
+
+ return $this->tagHandlerParameterCache[$handlerClassName];
+ }
+
+ /**
+ * Returns a copy of this class' Service Locator with added dynamic parameters,
+ * such as the tag's name, body and Context.
+ *
+ * @param TypeContext $context The Context (namespace and aliasses) that may be
+ * passed and is used to resolve FQSENs.
+ * @param string $tagName The name of the tag that may be
+ * passed onto the factory method of the Tag class.
+ * @param string $tagBody The body of the tag that may be
+ * passed onto the factory method of the Tag class.
+ *
+ * @return mixed[]
+ */
+ private function getServiceLocatorWithDynamicParameters(
+ TypeContext $context,
+ string $tagName,
+ string $tagBody
+ ) : array {
+ return array_merge(
+ $this->serviceLocator,
+ [
+ 'name' => $tagName,
+ 'body' => $tagBody,
+ TypeContext::class => $context,
+ ]
+ );
+ }
+
+ /**
+ * Returns whether the given tag belongs to an annotation.
+ *
+ * @todo this method should be populated once we implement Annotation notation support.
+ */
+ private function isAnnotation(string $tagContent) : bool
+ {
+ // 1. Contains a namespace separator
+ // 2. Contains parenthesis
+ // 3. Is present in a list of known annotations (make the algorithm smart by first checking is the last part
+ // of the annotation class name matches the found tag name
+
+ return false;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php
new file mode 100644
index 0000000..f55de91
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php
@@ -0,0 +1,32 @@
+ $handler FQCN of handler.
+ *
+ * @throws InvalidArgumentException If the tag name is not a string.
+ * @throws InvalidArgumentException If the tag name is namespaced (contains backslashes) but
+ * does not start with a backslash.
+ * @throws InvalidArgumentException If the handler is not a string.
+ * @throws InvalidArgumentException If the handler is not an existing class.
+ * @throws InvalidArgumentException If the handler does not implement the {@see Tag} interface.
+ */
+ public function registerTagHandler(string $tagName, string $handler) : void;
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php
new file mode 100644
index 0000000..d120757
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php
@@ -0,0 +1,100 @@
+authorName = $authorName;
+ $this->authorEmail = $authorEmail;
+ }
+
+ /**
+ * Gets the author's name.
+ *
+ * @return string The author's name.
+ */
+ public function getAuthorName() : string
+ {
+ return $this->authorName;
+ }
+
+ /**
+ * Returns the author's email.
+ *
+ * @return string The author's email.
+ */
+ public function getEmail() : string
+ {
+ return $this->authorEmail;
+ }
+
+ /**
+ * Returns this tag in string form.
+ */
+ public function __toString() : string
+ {
+ if ($this->authorEmail) {
+ $authorEmail = '<' . $this->authorEmail . '>';
+ } else {
+ $authorEmail = '';
+ }
+
+ $authorName = (string) $this->authorName;
+
+ return $authorName . ($authorEmail !== '' ? ($authorName !== '' ? ' ' : '') . $authorEmail : '');
+ }
+
+ /**
+ * Attempts to create a new Author object based on †he tag body.
+ */
+ public static function create(string $body) : ?self
+ {
+ $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches);
+ if (!$splitTagContent) {
+ return null;
+ }
+
+ $authorName = trim($matches[1]);
+ $email = isset($matches[2]) ? trim($matches[2]) : '';
+
+ return new static($authorName, $email);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php
new file mode 100644
index 0000000..fbcd402
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php
@@ -0,0 +1,53 @@
+name;
+ }
+
+ public function getDescription() : ?Description
+ {
+ return $this->description;
+ }
+
+ public function render(?Formatter $formatter = null) : string
+ {
+ if ($formatter === null) {
+ $formatter = new Formatter\PassthroughFormatter();
+ }
+
+ return $formatter->format($this);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php
new file mode 100644
index 0000000..9e52e5e
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php
@@ -0,0 +1,100 @@
+refers = $refers;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?FqsenResolver $resolver = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($descriptionFactory);
+ Assert::notNull($resolver);
+
+ $parts = Utils::pregSplit('/\s+/Su', $body, 2);
+
+ return new static(
+ self::resolveFqsen($parts[0], $resolver, $context),
+ $descriptionFactory->create($parts[1] ?? '', $context)
+ );
+ }
+
+ private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context) : Fqsen
+ {
+ Assert::notNull($fqsenResolver);
+ $fqsenParts = explode('::', $parts);
+ $resolved = $fqsenResolver->resolve($fqsenParts[0], $context);
+
+ if (!array_key_exists(1, $fqsenParts)) {
+ return $resolved;
+ }
+
+ return new Fqsen($resolved . '::' . $fqsenParts[1]);
+ }
+
+ /**
+ * Returns the structural element this tag refers to.
+ */
+ public function getReference() : Fqsen
+ {
+ return $this->refers;
+ }
+
+ /**
+ * Returns a string representation of this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $refers = (string) $this->refers;
+
+ return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php
new file mode 100644
index 0000000..68e8f03
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php
@@ -0,0 +1,108 @@
+version = $version;
+ $this->description = $description;
+ }
+
+ /**
+ * @return static
+ */
+ public static function create(
+ ?string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ if (empty($body)) {
+ return new static();
+ }
+
+ $matches = [];
+ if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
+ return new static(
+ null,
+ $descriptionFactory !== null ? $descriptionFactory->create($body, $context) : null
+ );
+ }
+
+ Assert::notNull($descriptionFactory);
+
+ return new static(
+ $matches[1],
+ $descriptionFactory->create($matches[2] ?? '', $context)
+ );
+ }
+
+ /**
+ * Gets the version section of the tag.
+ */
+ public function getVersion() : ?string
+ {
+ return $this->version;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $version = (string) $this->version;
+
+ return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php
new file mode 100644
index 0000000..3face1e
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php
@@ -0,0 +1,199 @@
+filePath = $filePath;
+ $this->startingLine = $startingLine;
+ $this->lineCount = $lineCount;
+ if ($content !== null) {
+ $this->content = trim($content);
+ }
+
+ $this->isURI = $isURI;
+ }
+
+ public function getContent() : string
+ {
+ if ($this->content === null || $this->content === '') {
+ $filePath = $this->filePath;
+ if ($this->isURI) {
+ $filePath = $this->isUriRelative($this->filePath)
+ ? str_replace('%2F', '/', rawurlencode($this->filePath))
+ : $this->filePath;
+ }
+
+ return trim($filePath);
+ }
+
+ return $this->content;
+ }
+
+ public function getDescription() : ?string
+ {
+ return $this->content;
+ }
+
+ public static function create(string $body) : ?Tag
+ {
+ // File component: File path in quotes or File URI / Source information
+ if (!preg_match('/^\s*(?:(\"[^\"]+\")|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) {
+ return null;
+ }
+
+ $filePath = null;
+ $fileUri = null;
+ if ($matches[1] !== '') {
+ $filePath = $matches[1];
+ } else {
+ $fileUri = $matches[2];
+ }
+
+ $startingLine = 1;
+ $lineCount = 0;
+ $description = null;
+
+ if (array_key_exists(3, $matches)) {
+ $description = $matches[3];
+
+ // Starting line / Number of lines / Description
+ if (preg_match('/^([1-9]\d*)(?:\s+((?1))\s*)?(.*)$/sux', $matches[3], $contentMatches)) {
+ $startingLine = (int) $contentMatches[1];
+ if (isset($contentMatches[2])) {
+ $lineCount = (int) $contentMatches[2];
+ }
+
+ if (array_key_exists(3, $contentMatches)) {
+ $description = $contentMatches[3];
+ }
+ }
+ }
+
+ return new static(
+ $filePath ?? ($fileUri ?? ''),
+ $fileUri !== null,
+ $startingLine,
+ $lineCount,
+ $description
+ );
+ }
+
+ /**
+ * Returns the file path.
+ *
+ * @return string Path to a file to use as an example.
+ * May also be an absolute URI.
+ */
+ public function getFilePath() : string
+ {
+ return trim($this->filePath, '"');
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ $filePath = (string) $this->filePath;
+ $isDefaultLine = $this->startingLine === 1 && $this->lineCount === 0;
+ $startingLine = !$isDefaultLine ? (string) $this->startingLine : '';
+ $lineCount = !$isDefaultLine ? (string) $this->lineCount : '';
+ $content = (string) $this->content;
+
+ return $filePath
+ . ($startingLine !== ''
+ ? ($filePath !== '' ? ' ' : '') . $startingLine
+ : '')
+ . ($lineCount !== ''
+ ? ($filePath !== '' || $startingLine !== '' ? ' ' : '') . $lineCount
+ : '')
+ . ($content !== ''
+ ? ($filePath !== '' || $startingLine !== '' || $lineCount !== '' ? ' ' : '') . $content
+ : '');
+ }
+
+ /**
+ * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute).
+ */
+ private function isUriRelative(string $uri) : bool
+ {
+ return strpos($uri, ':') === false;
+ }
+
+ public function getStartingLine() : int
+ {
+ return $this->startingLine;
+ }
+
+ public function getLineCount() : int
+ {
+ return $this->lineCount;
+ }
+
+ public function getName() : string
+ {
+ return 'example';
+ }
+
+ public function render(?Formatter $formatter = null) : string
+ {
+ if ($formatter === null) {
+ $formatter = new Formatter\PassthroughFormatter();
+ }
+
+ return $formatter->format($this);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php
new file mode 100644
index 0000000..f6f0bb5
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php
@@ -0,0 +1,25 @@
+maxLen = max($this->maxLen, strlen($tag->getName()));
+ }
+ }
+
+ /**
+ * Formats the given tag to return a simple plain text version.
+ */
+ public function format(Tag $tag) : string
+ {
+ return '@' . $tag->getName() .
+ str_repeat(
+ ' ',
+ $this->maxLen - strlen($tag->getName()) + 1
+ ) .
+ $tag;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php
new file mode 100644
index 0000000..f26d22f
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php
@@ -0,0 +1,29 @@
+getName() . ' ' . $tag);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php
new file mode 100644
index 0000000..a7b423f
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php
@@ -0,0 +1,88 @@
+validateTagName($name);
+
+ $this->name = $name;
+ $this->description = $description;
+ }
+
+ /**
+ * Creates a new tag that represents any unknown tag type.
+ *
+ * @return static
+ */
+ public static function create(
+ string $body,
+ string $name = '',
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($name);
+ Assert::notNull($descriptionFactory);
+
+ $description = $body !== '' ? $descriptionFactory->create($body, $context) : null;
+
+ return new static($name, $description);
+ }
+
+ /**
+ * Returns the tag as a serialized string
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ return $description;
+ }
+
+ /**
+ * Validates if the tag name matches the expected format, otherwise throws an exception.
+ */
+ private function validateTagName(string $name) : void
+ {
+ if (!preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) {
+ throw new InvalidArgumentException(
+ 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, '
+ . 'hyphens and backslashes.'
+ );
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php
new file mode 100644
index 0000000..e3deb5a
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php
@@ -0,0 +1,144 @@
+name = $name;
+ $this->body = $body;
+ }
+
+ public function getException() : ?Throwable
+ {
+ return $this->throwable;
+ }
+
+ public function getName() : string
+ {
+ return $this->name;
+ }
+
+ public static function create(string $body, string $name = '') : self
+ {
+ return new self($name, $body);
+ }
+
+ public function withError(Throwable $exception) : self
+ {
+ $this->flattenExceptionBacktrace($exception);
+ $tag = new self($this->name, $this->body);
+ $tag->throwable = $exception;
+
+ return $tag;
+ }
+
+ /**
+ * Removes all complex types from backtrace
+ *
+ * Not all objects are serializable. So we need to remove them from the
+ * stored exception to be sure that we do not break existing library usage.
+ */
+ private function flattenExceptionBacktrace(Throwable $exception) : void
+ {
+ $traceProperty = (new ReflectionClass(Exception::class))->getProperty('trace');
+ $traceProperty->setAccessible(true);
+
+ do {
+ $trace = $exception->getTrace();
+ if (isset($trace[0]['args'])) {
+ $trace = array_map(
+ function (array $call) : array {
+ $call['args'] = array_map([$this, 'flattenArguments'], $call['args']);
+
+ return $call;
+ },
+ $trace
+ );
+ }
+
+ $traceProperty->setValue($exception, $trace);
+ $exception = $exception->getPrevious();
+ } while ($exception !== null);
+
+ $traceProperty->setAccessible(false);
+ }
+
+ /**
+ * @param mixed $value
+ *
+ * @return mixed
+ *
+ * @throws ReflectionException
+ */
+ private function flattenArguments($value)
+ {
+ if ($value instanceof Closure) {
+ $closureReflection = new ReflectionFunction($value);
+ $value = sprintf(
+ '(Closure at %s:%s)',
+ $closureReflection->getFileName(),
+ $closureReflection->getStartLine()
+ );
+ } elseif (is_object($value)) {
+ $value = sprintf('object(%s)', get_class($value));
+ } elseif (is_resource($value)) {
+ $value = sprintf('resource(%s)', get_resource_type($value));
+ } elseif (is_array($value)) {
+ $value = array_map([$this, 'flattenArguments'], $value);
+ }
+
+ return $value;
+ }
+
+ public function render(?Formatter $formatter = null) : string
+ {
+ if ($formatter === null) {
+ $formatter = new Formatter\PassthroughFormatter();
+ }
+
+ return $formatter->format($this);
+ }
+
+ public function __toString() : string
+ {
+ return $this->body;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php
new file mode 100644
index 0000000..226bbe0
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php
@@ -0,0 +1,78 @@
+link = $link;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::notNull($descriptionFactory);
+
+ $parts = Utils::pregSplit('/\s+/Su', $body, 2);
+ $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;
+
+ return new static($parts[0], $description);
+ }
+
+ /**
+ * Gets the link
+ */
+ public function getLink() : string
+ {
+ return $this->link;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $link = (string) $this->link;
+
+ return $link . ($description !== '' ? ($link !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php
new file mode 100644
index 0000000..08c0407
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php
@@ -0,0 +1,279 @@
+
+ * @var array>
+ */
+ private $arguments;
+
+ /** @var bool */
+ private $isStatic;
+
+ /** @var Type */
+ private $returnType;
+
+ /**
+ * @param array> $arguments
+ *
+ * @phpstan-param array $arguments
+ */
+ public function __construct(
+ string $methodName,
+ array $arguments = [],
+ ?Type $returnType = null,
+ bool $static = false,
+ ?Description $description = null
+ ) {
+ Assert::stringNotEmpty($methodName);
+
+ if ($returnType === null) {
+ $returnType = new Void_();
+ }
+
+ $this->methodName = $methodName;
+ $this->arguments = $this->filterArguments($arguments);
+ $this->returnType = $returnType;
+ $this->isStatic = $static;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : ?self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ // 1. none or more whitespace
+ // 2. optionally the keyword "static" followed by whitespace
+ // 3. optionally a word with underscores followed by whitespace : as
+ // type for the return value
+ // 4. then optionally a word with underscores followed by () and
+ // whitespace : as method name as used by phpDocumentor
+ // 5. then a word with underscores, followed by ( and any character
+ // until a ) and whitespace : as method name with signature
+ // 6. any remaining text : as description
+ if (!preg_match(
+ '/^
+ # Static keyword
+ # Declares a static method ONLY if type is also present
+ (?:
+ (static)
+ \s+
+ )?
+ # Return type
+ (?:
+ (
+ (?:[\w\|_\\\\]*\$this[\w\|_\\\\]*)
+ |
+ (?:
+ (?:[\w\|_\\\\]+)
+ # array notation
+ (?:\[\])*
+ )*+
+ )
+ \s+
+ )?
+ # Method name
+ ([\w_]+)
+ # Arguments
+ (?:
+ \(([^\)]*)\)
+ )?
+ \s*
+ # Description
+ (.*)
+ $/sux',
+ $body,
+ $matches
+ )) {
+ return null;
+ }
+
+ [, $static, $returnType, $methodName, $argumentLines, $description] = $matches;
+
+ $static = $static === 'static';
+
+ if ($returnType === '') {
+ $returnType = 'void';
+ }
+
+ $returnType = $typeResolver->resolve($returnType, $context);
+ $description = $descriptionFactory->create($description, $context);
+
+ /** @phpstan-var array $arguments */
+ $arguments = [];
+ if ($argumentLines !== '') {
+ $argumentsExploded = explode(',', $argumentLines);
+ foreach ($argumentsExploded as $argument) {
+ $argument = explode(' ', self::stripRestArg(trim($argument)), 2);
+ if (strpos($argument[0], '$') === 0) {
+ $argumentName = substr($argument[0], 1);
+ $argumentType = new Mixed_();
+ } else {
+ $argumentType = $typeResolver->resolve($argument[0], $context);
+ $argumentName = '';
+ if (isset($argument[1])) {
+ $argument[1] = self::stripRestArg($argument[1]);
+ $argumentName = substr($argument[1], 1);
+ }
+ }
+
+ $arguments[] = ['name' => $argumentName, 'type' => $argumentType];
+ }
+ }
+
+ return new static($methodName, $arguments, $returnType, $static, $description);
+ }
+
+ /**
+ * Retrieves the method name.
+ */
+ public function getMethodName() : string
+ {
+ return $this->methodName;
+ }
+
+ /**
+ * @return array>
+ *
+ * @phpstan-return array
+ */
+ public function getArguments() : array
+ {
+ return $this->arguments;
+ }
+
+ /**
+ * Checks whether the method tag describes a static method or not.
+ *
+ * @return bool TRUE if the method declaration is for a static method, FALSE otherwise.
+ */
+ public function isStatic() : bool
+ {
+ return $this->isStatic;
+ }
+
+ public function getReturnType() : Type
+ {
+ return $this->returnType;
+ }
+
+ public function __toString() : string
+ {
+ $arguments = [];
+ foreach ($this->arguments as $argument) {
+ $arguments[] = $argument['type'] . ' $' . $argument['name'];
+ }
+
+ $argumentStr = '(' . implode(', ', $arguments) . ')';
+
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $static = $this->isStatic ? 'static' : '';
+
+ $returnType = (string) $this->returnType;
+
+ $methodName = (string) $this->methodName;
+
+ return $static
+ . ($returnType !== '' ? ($static !== '' ? ' ' : '') . $returnType : '')
+ . ($methodName !== '' ? ($static !== '' || $returnType !== '' ? ' ' : '') . $methodName : '')
+ . $argumentStr
+ . ($description !== '' ? ' ' . $description : '');
+ }
+
+ /**
+ * @param mixed[][]|string[] $arguments
+ *
+ * @return mixed[][]
+ *
+ * @phpstan-param array $arguments
+ * @phpstan-return array
+ */
+ private function filterArguments(array $arguments = []) : array
+ {
+ $result = [];
+ foreach ($arguments as $argument) {
+ if (is_string($argument)) {
+ $argument = ['name' => $argument];
+ }
+
+ if (!isset($argument['type'])) {
+ $argument['type'] = new Mixed_();
+ }
+
+ $keys = array_keys($argument);
+ sort($keys);
+ if ($keys !== ['name', 'type']) {
+ throw new InvalidArgumentException(
+ 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true)
+ );
+ }
+
+ $result[] = $argument;
+ }
+
+ return $result;
+ }
+
+ private static function stripRestArg(string $argument) : string
+ {
+ if (strpos($argument, '...') === 0) {
+ $argument = trim(substr($argument, 3));
+ }
+
+ return $argument;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php
new file mode 100644
index 0000000..83419e9
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php
@@ -0,0 +1,172 @@
+name = 'param';
+ $this->variableName = $variableName;
+ $this->type = $type;
+ $this->isVariadic = $isVariadic;
+ $this->description = $description;
+ $this->isReference = $isReference;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$firstPart, $body] = self::extractTypeFromBody($body);
+
+ $type = null;
+ $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE);
+ $variableName = '';
+ $isVariadic = false;
+ $isReference = false;
+
+ // if the first item that is encountered is not a variable; it is a type
+ if ($firstPart && !self::strStartsWithVariable($firstPart)) {
+ $type = $typeResolver->resolve($firstPart, $context);
+ } else {
+ // first part is not a type; we should prepend it to the parts array for further processing
+ array_unshift($parts, $firstPart);
+ }
+
+ // if the next item starts with a $ or ...$ or &$ or &...$ it must be the variable name
+ if (isset($parts[0]) && self::strStartsWithVariable($parts[0])) {
+ $variableName = array_shift($parts);
+ if ($type) {
+ array_shift($parts);
+ }
+
+ Assert::notNull($variableName);
+
+ if (strpos($variableName, '$') === 0) {
+ $variableName = substr($variableName, 1);
+ } elseif (strpos($variableName, '&$') === 0) {
+ $isReference = true;
+ $variableName = substr($variableName, 2);
+ } elseif (strpos($variableName, '...$') === 0) {
+ $isVariadic = true;
+ $variableName = substr($variableName, 4);
+ } elseif (strpos($variableName, '&...$') === 0) {
+ $isVariadic = true;
+ $isReference = true;
+ $variableName = substr($variableName, 5);
+ }
+ }
+
+ $description = $descriptionFactory->create(implode('', $parts), $context);
+
+ return new static($variableName, $type, $isVariadic, $description, $isReference);
+ }
+
+ /**
+ * Returns the variable's name.
+ */
+ public function getVariableName() : ?string
+ {
+ return $this->variableName;
+ }
+
+ /**
+ * Returns whether this tag is variadic.
+ */
+ public function isVariadic() : bool
+ {
+ return $this->isVariadic;
+ }
+
+ /**
+ * Returns whether this tag is passed by reference.
+ */
+ public function isReference() : bool
+ {
+ return $this->isReference;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $variableName = '';
+ if ($this->variableName) {
+ $variableName .= ($this->isReference ? '&' : '') . ($this->isVariadic ? '...' : '');
+ $variableName .= '$' . $this->variableName;
+ }
+
+ $type = (string) $this->type;
+
+ return $type
+ . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '')
+ . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : '');
+ }
+
+ private static function strStartsWithVariable(string $str) : bool
+ {
+ return strpos($str, '$') === 0
+ ||
+ strpos($str, '...$') === 0
+ ||
+ strpos($str, '&$') === 0
+ ||
+ strpos($str, '&...$') === 0;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php
new file mode 100644
index 0000000..0389757
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php
@@ -0,0 +1,119 @@
+name = 'property';
+ $this->variableName = $variableName;
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$firstPart, $body] = self::extractTypeFromBody($body);
+ $type = null;
+ $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE);
+ $variableName = '';
+
+ // if the first item that is encountered is not a variable; it is a type
+ if ($firstPart && $firstPart[0] !== '$') {
+ $type = $typeResolver->resolve($firstPart, $context);
+ } else {
+ // first part is not a type; we should prepend it to the parts array for further processing
+ array_unshift($parts, $firstPart);
+ }
+
+ // if the next item starts with a $ it must be the variable name
+ if (isset($parts[0]) && strpos($parts[0], '$') === 0) {
+ $variableName = array_shift($parts);
+ if ($type) {
+ array_shift($parts);
+ }
+
+ Assert::notNull($variableName);
+
+ $variableName = substr($variableName, 1);
+ }
+
+ $description = $descriptionFactory->create(implode('', $parts), $context);
+
+ return new static($variableName, $type, $description);
+ }
+
+ /**
+ * Returns the variable's name.
+ */
+ public function getVariableName() : ?string
+ {
+ return $this->variableName;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ if ($this->variableName) {
+ $variableName = '$' . $this->variableName;
+ } else {
+ $variableName = '';
+ }
+
+ $type = (string) $this->type;
+
+ return $type
+ . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '')
+ . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php
new file mode 100644
index 0000000..7ff55d5
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php
@@ -0,0 +1,119 @@
+name = 'property-read';
+ $this->variableName = $variableName;
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$firstPart, $body] = self::extractTypeFromBody($body);
+ $type = null;
+ $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE);
+ $variableName = '';
+
+ // if the first item that is encountered is not a variable; it is a type
+ if ($firstPart && $firstPart[0] !== '$') {
+ $type = $typeResolver->resolve($firstPart, $context);
+ } else {
+ // first part is not a type; we should prepend it to the parts array for further processing
+ array_unshift($parts, $firstPart);
+ }
+
+ // if the next item starts with a $ it must be the variable name
+ if (isset($parts[0]) && strpos($parts[0], '$') === 0) {
+ $variableName = array_shift($parts);
+ if ($type) {
+ array_shift($parts);
+ }
+
+ Assert::notNull($variableName);
+
+ $variableName = substr($variableName, 1);
+ }
+
+ $description = $descriptionFactory->create(implode('', $parts), $context);
+
+ return new static($variableName, $type, $description);
+ }
+
+ /**
+ * Returns the variable's name.
+ */
+ public function getVariableName() : ?string
+ {
+ return $this->variableName;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ if ($this->variableName) {
+ $variableName = '$' . $this->variableName;
+ } else {
+ $variableName = '';
+ }
+
+ $type = (string) $this->type;
+
+ return $type
+ . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '')
+ . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php
new file mode 100644
index 0000000..cc1e4b6
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php
@@ -0,0 +1,119 @@
+name = 'property-write';
+ $this->variableName = $variableName;
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$firstPart, $body] = self::extractTypeFromBody($body);
+ $type = null;
+ $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE);
+ $variableName = '';
+
+ // if the first item that is encountered is not a variable; it is a type
+ if ($firstPart && $firstPart[0] !== '$') {
+ $type = $typeResolver->resolve($firstPart, $context);
+ } else {
+ // first part is not a type; we should prepend it to the parts array for further processing
+ array_unshift($parts, $firstPart);
+ }
+
+ // if the next item starts with a $ it must be the variable name
+ if (isset($parts[0]) && strpos($parts[0], '$') === 0) {
+ $variableName = array_shift($parts);
+ if ($type) {
+ array_shift($parts);
+ }
+
+ Assert::notNull($variableName);
+
+ $variableName = substr($variableName, 1);
+ }
+
+ $description = $descriptionFactory->create(implode('', $parts), $context);
+
+ return new static($variableName, $type, $description);
+ }
+
+ /**
+ * Returns the variable's name.
+ */
+ public function getVariableName() : ?string
+ {
+ return $this->variableName;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ if ($this->variableName) {
+ $variableName = '$' . $this->variableName;
+ } else {
+ $variableName = '';
+ }
+
+ $type = (string) $this->type;
+
+ return $type
+ . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '')
+ . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php
new file mode 100644
index 0000000..cede74c
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php
@@ -0,0 +1,38 @@
+fqsen = $fqsen;
+ }
+
+ /**
+ * @return string string representation of the referenced fqsen
+ */
+ public function __toString() : string
+ {
+ return (string) $this->fqsen;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php
new file mode 100644
index 0000000..5eedcbc
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php
@@ -0,0 +1,22 @@
+uri = $uri;
+ }
+
+ public function __toString() : string
+ {
+ return $this->uri;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php
new file mode 100644
index 0000000..546a0ea
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php
@@ -0,0 +1,64 @@
+name = 'return';
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$type, $description] = self::extractTypeFromBody($body);
+
+ $type = $typeResolver->resolve($type, $context);
+ $description = $descriptionFactory->create($description, $context);
+
+ return new static($type, $description);
+ }
+
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $type = $this->type ? '' . $this->type : 'mixed';
+
+ return $type . ($description !== '' ? ($type !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php
new file mode 100644
index 0000000..73311df
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php
@@ -0,0 +1,105 @@
+refers = $refers;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?FqsenResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::notNull($descriptionFactory);
+
+ $parts = Utils::pregSplit('/\s+/Su', $body, 2);
+ $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null;
+
+ // https://tools.ietf.org/html/rfc2396#section-3
+ if (preg_match('/\w:\/\/\w/i', $parts[0])) {
+ return new static(new Url($parts[0]), $description);
+ }
+
+ return new static(new FqsenRef(self::resolveFqsen($parts[0], $typeResolver, $context)), $description);
+ }
+
+ private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context) : Fqsen
+ {
+ Assert::notNull($fqsenResolver);
+ $fqsenParts = explode('::', $parts);
+ $resolved = $fqsenResolver->resolve($fqsenParts[0], $context);
+
+ if (!array_key_exists(1, $fqsenParts)) {
+ return $resolved;
+ }
+
+ return new Fqsen($resolved . '::' . $fqsenParts[1]);
+ }
+
+ /**
+ * Returns the ref of this tag.
+ */
+ public function getReference() : Reference
+ {
+ return $this->refers;
+ }
+
+ /**
+ * Returns a string representation of this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $refers = (string) $this->refers;
+
+ return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php
new file mode 100644
index 0000000..32de527
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php
@@ -0,0 +1,102 @@
+version = $version;
+ $this->description = $description;
+ }
+
+ public static function create(
+ ?string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : ?self {
+ if (empty($body)) {
+ return new static();
+ }
+
+ $matches = [];
+ if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
+ return null;
+ }
+
+ Assert::notNull($descriptionFactory);
+
+ return new static(
+ $matches[1],
+ $descriptionFactory->create($matches[2] ?? '', $context)
+ );
+ }
+
+ /**
+ * Gets the version section of the tag.
+ */
+ public function getVersion() : ?string
+ {
+ return $this->version;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $version = (string) $this->version;
+
+ return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php
new file mode 100644
index 0000000..f0c3101
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php
@@ -0,0 +1,117 @@
+startingLine = (int) $startingLine;
+ $this->lineCount = $lineCount !== null ? (int) $lineCount : null;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($descriptionFactory);
+
+ $startingLine = 1;
+ $lineCount = null;
+ $description = null;
+
+ // Starting line / Number of lines / Description
+ if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) {
+ $startingLine = (int) $matches[1];
+ if (isset($matches[2]) && $matches[2] !== '') {
+ $lineCount = (int) $matches[2];
+ }
+
+ $description = $matches[3];
+ }
+
+ return new static($startingLine, $lineCount, $descriptionFactory->create($description??'', $context));
+ }
+
+ /**
+ * Gets the starting line.
+ *
+ * @return int The starting line, relative to the structural element's
+ * location.
+ */
+ public function getStartingLine() : int
+ {
+ return $this->startingLine;
+ }
+
+ /**
+ * Returns the number of lines.
+ *
+ * @return int|null The number of lines, relative to the starting line. NULL
+ * means "to the end".
+ */
+ public function getLineCount() : ?int
+ {
+ return $this->lineCount;
+ }
+
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $startingLine = (string) $this->startingLine;
+
+ $lineCount = $this->lineCount !== null ? '' . $this->lineCount : '';
+
+ return $startingLine
+ . ($lineCount !== ''
+ ? ($startingLine || $startingLine === '0' ? ' ' : '') . $lineCount
+ : '')
+ . ($description !== ''
+ ? ($startingLine || $startingLine === '0' || $lineCount !== '' ? ' ' : '') . $description
+ : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php
new file mode 100644
index 0000000..0083d34
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php
@@ -0,0 +1,65 @@
+type;
+ }
+
+ /**
+ * @return string[]
+ */
+ protected static function extractTypeFromBody(string $body) : array
+ {
+ $type = '';
+ $nestingLevel = 0;
+ for ($i = 0, $iMax = strlen($body); $i < $iMax; $i++) {
+ $character = $body[$i];
+
+ if ($nestingLevel === 0 && trim($character) === '') {
+ break;
+ }
+
+ $type .= $character;
+ if (in_array($character, ['<', '(', '[', '{'])) {
+ $nestingLevel++;
+ continue;
+ }
+
+ if (in_array($character, ['>', ')', ']', '}'])) {
+ $nestingLevel--;
+ continue;
+ }
+ }
+
+ $description = trim(substr($body, strlen($type)));
+
+ return [$type, $description];
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php
new file mode 100644
index 0000000..d4dc947
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php
@@ -0,0 +1,64 @@
+name = 'throws';
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$type, $description] = self::extractTypeFromBody($body);
+
+ $type = $typeResolver->resolve($type, $context);
+ $description = $descriptionFactory->create($description, $context);
+
+ return new static($type, $description);
+ }
+
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $type = (string) $this->type;
+
+ return $type . ($description !== '' ? ($type !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php
new file mode 100644
index 0000000..4d52afc
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php
@@ -0,0 +1,99 @@
+refers = $refers;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?FqsenResolver $resolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::notNull($resolver);
+ Assert::notNull($descriptionFactory);
+
+ $parts = Utils::pregSplit('/\s+/Su', $body, 2);
+
+ return new static(
+ self::resolveFqsen($parts[0], $resolver, $context),
+ $descriptionFactory->create($parts[1] ?? '', $context)
+ );
+ }
+
+ private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context) : Fqsen
+ {
+ Assert::notNull($fqsenResolver);
+ $fqsenParts = explode('::', $parts);
+ $resolved = $fqsenResolver->resolve($fqsenParts[0], $context);
+
+ if (!array_key_exists(1, $fqsenParts)) {
+ return $resolved;
+ }
+
+ return new Fqsen($resolved . '::' . $fqsenParts[1]);
+ }
+
+ /**
+ * Returns the structural element this tag refers to.
+ */
+ public function getReference() : Fqsen
+ {
+ return $this->refers;
+ }
+
+ /**
+ * Returns a string representation of this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $refers = (string) $this->refers;
+
+ return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php
new file mode 100644
index 0000000..762c262
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php
@@ -0,0 +1,120 @@
+name = 'var';
+ $this->variableName = $variableName;
+ $this->type = $type;
+ $this->description = $description;
+ }
+
+ public static function create(
+ string $body,
+ ?TypeResolver $typeResolver = null,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : self {
+ Assert::stringNotEmpty($body);
+ Assert::notNull($typeResolver);
+ Assert::notNull($descriptionFactory);
+
+ [$firstPart, $body] = self::extractTypeFromBody($body);
+
+ $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE);
+ $type = null;
+ $variableName = '';
+
+ // if the first item that is encountered is not a variable; it is a type
+ if ($firstPart && $firstPart[0] !== '$') {
+ $type = $typeResolver->resolve($firstPart, $context);
+ } else {
+ // first part is not a type; we should prepend it to the parts array for further processing
+ array_unshift($parts, $firstPart);
+ }
+
+ // if the next item starts with a $ it must be the variable name
+ if (isset($parts[0]) && strpos($parts[0], '$') === 0) {
+ $variableName = array_shift($parts);
+ if ($type) {
+ array_shift($parts);
+ }
+
+ Assert::notNull($variableName);
+
+ $variableName = substr($variableName, 1);
+ }
+
+ $description = $descriptionFactory->create(implode('', $parts), $context);
+
+ return new static($variableName, $type, $description);
+ }
+
+ /**
+ * Returns the variable's name.
+ */
+ public function getVariableName() : ?string
+ {
+ return $this->variableName;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ if ($this->variableName) {
+ $variableName = '$' . $this->variableName;
+ } else {
+ $variableName = '';
+ }
+
+ $type = (string) $this->type;
+
+ return $type
+ . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '')
+ . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php
new file mode 100644
index 0000000..460c86d
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php
@@ -0,0 +1,105 @@
+version = $version;
+ $this->description = $description;
+ }
+
+ public static function create(
+ ?string $body,
+ ?DescriptionFactory $descriptionFactory = null,
+ ?TypeContext $context = null
+ ) : ?self {
+ if (empty($body)) {
+ return new static();
+ }
+
+ $matches = [];
+ if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
+ return null;
+ }
+
+ $description = null;
+ if ($descriptionFactory !== null) {
+ $description = $descriptionFactory->create($matches[2] ?? '', $context);
+ }
+
+ return new static(
+ $matches[1],
+ $description
+ );
+ }
+
+ /**
+ * Gets the version section of the tag.
+ */
+ public function getVersion() : ?string
+ {
+ return $this->version;
+ }
+
+ /**
+ * Returns a string representation for this tag.
+ */
+ public function __toString() : string
+ {
+ if ($this->description) {
+ $description = $this->description->render();
+ } else {
+ $description = '';
+ }
+
+ $version = (string) $this->version;
+
+ return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : '');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php
new file mode 100644
index 0000000..cf04e5a
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php
@@ -0,0 +1,286 @@
+descriptionFactory = $descriptionFactory;
+ $this->tagFactory = $tagFactory;
+ }
+
+ /**
+ * Factory method for easy instantiation.
+ *
+ * @param array> $additionalTags
+ */
+ public static function createInstance(array $additionalTags = []) : self
+ {
+ $fqsenResolver = new FqsenResolver();
+ $tagFactory = new StandardTagFactory($fqsenResolver);
+ $descriptionFactory = new DescriptionFactory($tagFactory);
+
+ $tagFactory->addService($descriptionFactory);
+ $tagFactory->addService(new TypeResolver($fqsenResolver));
+
+ $docBlockFactory = new self($descriptionFactory, $tagFactory);
+ foreach ($additionalTags as $tagName => $tagHandler) {
+ $docBlockFactory->registerTagHandler($tagName, $tagHandler);
+ }
+
+ return $docBlockFactory;
+ }
+
+ /**
+ * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the
+ * getDocComment method (such as a ReflectionClass object).
+ */
+ public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock
+ {
+ if (is_object($docblock)) {
+ if (!method_exists($docblock, 'getDocComment')) {
+ $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method';
+
+ throw new InvalidArgumentException($exceptionMessage);
+ }
+
+ $docblock = $docblock->getDocComment();
+ Assert::string($docblock);
+ }
+
+ Assert::stringNotEmpty($docblock);
+
+ if ($context === null) {
+ $context = new Types\Context('');
+ }
+
+ $parts = $this->splitDocBlock($this->stripDocComment($docblock));
+
+ [$templateMarker, $summary, $description, $tags] = $parts;
+
+ return new DocBlock(
+ $summary,
+ $description ? $this->descriptionFactory->create($description, $context) : null,
+ $this->parseTagBlock($tags, $context),
+ $context,
+ $location,
+ $templateMarker === '#@+',
+ $templateMarker === '#@-'
+ );
+ }
+
+ /**
+ * @param class-string $handler
+ */
+ public function registerTagHandler(string $tagName, string $handler) : void
+ {
+ $this->tagFactory->registerTagHandler($tagName, $handler);
+ }
+
+ /**
+ * Strips the asterisks from the DocBlock comment.
+ *
+ * @param string $comment String containing the comment text.
+ */
+ private function stripDocComment(string $comment) : string
+ {
+ $comment = preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]?(.*)?#u', '$1', $comment);
+ Assert::string($comment);
+ $comment = trim($comment);
+
+ // reg ex above is not able to remove */ from a single line docblock
+ if (substr($comment, -2) === '*/') {
+ $comment = trim(substr($comment, 0, -2));
+ }
+
+ return str_replace(["\r\n", "\r"], "\n", $comment);
+ }
+
+ // phpcs:disable
+ /**
+ * Splits the DocBlock into a template marker, summary, description and block of tags.
+ *
+ * @param string $comment Comment to split into the sub-parts.
+ *
+ * @return string[] containing the template marker (if any), summary, description and a string containing the tags.
+ *
+ * @author Mike van Riel for extending the regex with template marker support.
+ *
+ * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split.
+ */
+ private function splitDocBlock(string $comment) : array
+ {
+ // phpcs:enable
+ // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This
+ // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the
+ // performance impact of running a regular expression
+ if (strpos($comment, '@') === 0) {
+ return ['', '', '', $comment];
+ }
+
+ // clears all extra horizontal whitespace from the line endings to prevent parsing issues
+ $comment = preg_replace('/\h*$/Sum', '', $comment);
+ Assert::string($comment);
+ /*
+ * Splits the docblock into a template marker, summary, description and tags section.
+ *
+ * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may
+ * occur after it and will be stripped).
+ * - The short description is started from the first character until a dot is encountered followed by a
+ * newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing
+ * errors). This is optional.
+ * - The long description, any character until a new line is encountered followed by an @ and word
+ * characters (a tag). This is optional.
+ * - Tags; the remaining characters
+ *
+ * Big thanks to RichardJ for contributing this Regular Expression
+ */
+ preg_match(
+ '/
+ \A
+ # 1. Extract the template marker
+ (?:(\#\@\+|\#\@\-)\n?)?
+
+ # 2. Extract the summary
+ (?:
+ (?! @\pL ) # The summary may not start with an @
+ (
+ [^\n.]+
+ (?:
+ (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines
+ [\n.]* (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line
+ [^\n.]+ # Include anything else
+ )*
+ \.?
+ )?
+ )
+
+ # 3. Extract the description
+ (?:
+ \s* # Some form of whitespace _must_ precede a description because a summary must be there
+ (?! @\pL ) # The description may not start with an @
+ (
+ [^\n]+
+ (?: \n+
+ (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line
+ [^\n]+ # Include anything else
+ )*
+ )
+ )?
+
+ # 4. Extract the tags (anything that follows)
+ (\s+ [\s\S]*)? # everything that follows
+ /ux',
+ $comment,
+ $matches
+ );
+ array_shift($matches);
+
+ while (count($matches) < 4) {
+ $matches[] = '';
+ }
+
+ return $matches;
+ }
+
+ /**
+ * Creates the tag objects.
+ *
+ * @param string $tags Tag block to parse.
+ * @param Types\Context $context Context of the parsed Tag
+ *
+ * @return DocBlock\Tag[]
+ */
+ private function parseTagBlock(string $tags, Types\Context $context) : array
+ {
+ $tags = $this->filterTagBlock($tags);
+ if ($tags === null) {
+ return [];
+ }
+
+ $result = [];
+ $lines = $this->splitTagBlockIntoTagLines($tags);
+ foreach ($lines as $key => $tagLine) {
+ $result[$key] = $this->tagFactory->create(trim($tagLine), $context);
+ }
+
+ return $result;
+ }
+
+ /**
+ * @return string[]
+ */
+ private function splitTagBlockIntoTagLines(string $tags) : array
+ {
+ $result = [];
+ foreach (explode("\n", $tags) as $tagLine) {
+ if ($tagLine !== '' && strpos($tagLine, '@') === 0) {
+ $result[] = $tagLine;
+ } else {
+ $result[count($result) - 1] .= "\n" . $tagLine;
+ }
+ }
+
+ return $result;
+ }
+
+ private function filterTagBlock(string $tags) : ?string
+ {
+ $tags = trim($tags);
+ if (!$tags) {
+ return null;
+ }
+
+ if ($tags[0] !== '@') {
+ // @codeCoverageIgnoreStart
+ // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that
+ // we didn't foresee.
+
+ throw new LogicException('A tag block started with text instead of an at-sign(@): ' . $tags);
+
+ // @codeCoverageIgnoreEnd
+ }
+
+ return $tags;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php
new file mode 100644
index 0000000..ef039a4
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php
@@ -0,0 +1,23 @@
+> $additionalTags
+ */
+ public static function createInstance(array $additionalTags = []) : DocBlockFactory;
+
+ /**
+ * @param string|object $docblock
+ */
+ public function create($docblock, ?Types\Context $context = null, ?Location $location = null) : DocBlock;
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php
new file mode 100644
index 0000000..77aa40e
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php
@@ -0,0 +1,38 @@
+ please note that if you want to pass partial class names that additional steps are necessary, see the
+ > chapter `Resolving partial classes and FQSENs` for more information.
+
+Where the FqsenResolver can resolve:
+
+- Constant expressions (i.e. `@see \MyNamespace\MY_CONSTANT`)
+- Function expressions (i.e. `@see \MyNamespace\myFunction()`)
+- Class expressions (i.e. `@see \MyNamespace\MyClass`)
+- Interface expressions (i.e. `@see \MyNamespace\MyInterface`)
+- Trait expressions (i.e. `@see \MyNamespace\MyTrait`)
+- Class constant expressions (i.e. `@see \MyNamespace\MyClass::MY_CONSTANT`)
+- Property expressions (i.e. `@see \MyNamespace\MyClass::$myProperty`)
+- Method expressions (i.e. `@see \MyNamespace\MyClass::myMethod()`)
+
+## Resolving a type
+
+In order to resolve a type you will have to instantiate the class `\phpDocumentor\Reflection\TypeResolver` and call its `resolve` method like this:
+
+```php
+$typeResolver = new \phpDocumentor\Reflection\TypeResolver();
+$type = $typeResolver->resolve('string|integer');
+```
+
+In this example you will receive a Value Object of class `\phpDocumentor\Reflection\Types\Compound` that has two
+elements, one of type `\phpDocumentor\Reflection\Types\String_` and one of type
+`\phpDocumentor\Reflection\Types\Integer`.
+
+The real power of this resolver is in its capability to expand partial class names into fully qualified class names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply.
+
+### Resolving nullable types
+
+Php 7.1 introduced nullable types e.g. `?string`. Type resolver will resolve the original type without the nullable notation `?`
+just like it would do without the `?`. After that the type is wrapped in a `\phpDocumentor\Reflection\Types\Nullable` object.
+The `Nullable` type has a method to fetch the actual type.
+
+## Resolving an FQSEN
+
+A Fully Qualified Structural Element Name is a reference to another element in your code bases and can be resolved using the `\phpDocumentor\Reflection\FqsenResolver` class' `resolve` method, like this:
+
+```php
+$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver();
+$fqsen = $fqsenResolver->resolve('\phpDocumentor\Reflection\FqsenResolver::resolve()');
+```
+
+In this example we resolve a Fully Qualified Structural Element Name (meaning that it includes the full namespace, class name and element name) and receive a Value Object of type `\phpDocumentor\Reflection\Fqsen`.
+
+The real power of this resolver is in its capability to expand partial element names into Fully Qualified Structural Element Names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply.
+
+## Resolving partial Classes and Structural Element Names
+
+Perhaps the best feature of this library is that it knows how to resolve partial class names into fully qualified class names.
+
+For example, you have this file:
+
+```php
+namespace My\Example;
+
+use phpDocumentor\Reflection\Types;
+
+class Classy
+{
+ /**
+ * @var Types\Context
+ * @see Classy::otherFunction()
+ */
+ public function __construct($context) {}
+
+ public function otherFunction(){}
+}
+```
+
+Suppose that you would want to resolve (and expand) the type in the `@var` tag and the element name in the `@see` tag.
+
+For the resolvers to know how to expand partial names you have to provide a bit of _Context_ for them by instantiating a new class named `\phpDocumentor\Reflection\Types\Context` with the name of the namespace and the aliases that are in play.
+
+### Creating a Context
+
+You can do this by manually creating a Context like this:
+
+```php
+$context = new \phpDocumentor\Reflection\Types\Context(
+ '\My\Example',
+ [ 'Types' => '\phpDocumentor\Reflection\Types']
+);
+```
+
+Or by using the `\phpDocumentor\Reflection\Types\ContextFactory` to instantiate a new context based on a Reflector object or by providing the namespace that you'd like to extract and the source code of the file in which the given type expression occurs.
+
+```php
+$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory();
+$context = $contextFactory->createFromReflector(new ReflectionMethod('\My\Example\Classy', '__construct'));
+```
+
+or
+
+```php
+$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory();
+$context = $contextFactory->createForNamespace('\My\Example', file_get_contents('My/Example/Classy.php'));
+```
+
+### Using the Context
+
+After you have obtained a Context it is just a matter of passing it along with the `resolve` method of either Resolver class as second argument and the Resolvers will take this into account when resolving partial names.
+
+To obtain the resolved class name for the `@var` tag in the example above you can do:
+
+```php
+$typeResolver = new \phpDocumentor\Reflection\TypeResolver();
+$type = $typeResolver->resolve('Types\Context', $context);
+```
+
+When you do this you will receive an object of class `\phpDocumentor\Reflection\Types\Object_` for which you can call the `getFqsen` method to receive a Value Object that represents the complete FQSEN. So that would be `phpDocumentor\Reflection\Types\Context`.
+
+> Why is the FQSEN wrapped in another object `Object_`?
+>
+> The resolve method of the TypeResolver only returns object with the interface `Type` and the FQSEN is a common type that does not represent a Type. Also: in some cases a type can represent an "Untyped Object", meaning that it is an object (signified by the `object` keyword) but does not refer to a specific element using an FQSEN.
+
+Another example is on how to resolve the FQSEN of a method as can be seen with the `@see` tag in the example above. To resolve that you can do the following:
+
+```php
+$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver();
+$type = $fqsenResolver->resolve('Classy::otherFunction()', $context);
+```
+
+Because Classy is a Class in the current namespace its FQSEN will have the `My\Example` namespace and by calling the `resolve` method of the FQSEN Resolver you will receive an `Fqsen` object that refers to `\My\Example\Classy::otherFunction()`.
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.json b/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.json
new file mode 100644
index 0000000..242ecbe
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.json
@@ -0,0 +1,34 @@
+{
+ "name": "phpdocumentor/type-resolver",
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "type": "library",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*"
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": ["tests/unit", "tests/benchmark"]
+ }
+ },
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.lock b/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.lock
new file mode 100644
index 0000000..8fa8b87
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/composer.lock
@@ -0,0 +1,71 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "ee8aea1f755e1772266bc7e041d8ee5b",
+ "packages": [
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "time": "2020-06-27T09:03:43+00:00"
+ }
+ ],
+ "packages-dev": [],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^7.2 || ^8.0"
+ },
+ "platform-dev": {
+ "ext-tokenizer": "*"
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/phpbench.json b/class/payment/paypal/vendor/phpdocumentor/type-resolver/phpbench.json
new file mode 100644
index 0000000..ced1eba
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/phpbench.json
@@ -0,0 +1,10 @@
+{
+ "bootstrap": "vendor/autoload.php",
+ "path": "tests/benchmark",
+ "extensions": [
+ "Jaapio\\Blackfire\\Extension"
+ ],
+ "blackfire" : {
+ "env": "c12030d0-c177-47e2-b466-4994c40dc993"
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php
new file mode 100644
index 0000000..6447a01
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php
@@ -0,0 +1,79 @@
+isFqsen($fqsen)) {
+ return new Fqsen($fqsen);
+ }
+
+ return $this->resolvePartialStructuralElementName($fqsen, $context);
+ }
+
+ /**
+ * Tests whether the given type is a Fully Qualified Structural Element Name.
+ */
+ private function isFqsen(string $type) : bool
+ {
+ return strpos($type, self::OPERATOR_NAMESPACE) === 0;
+ }
+
+ /**
+ * Resolves a partial Structural Element Name (i.e. `Reflection\DocBlock`) to its FQSEN representation
+ * (i.e. `\phpDocumentor\Reflection\DocBlock`) based on the Namespace and aliases mentioned in the Context.
+ *
+ * @throws InvalidArgumentException When type is not a valid FQSEN.
+ */
+ private function resolvePartialStructuralElementName(string $type, Context $context) : Fqsen
+ {
+ $typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2);
+
+ $namespaceAliases = $context->getNamespaceAliases();
+
+ // if the first segment is not an alias; prepend namespace name and return
+ if (!isset($namespaceAliases[$typeParts[0]])) {
+ $namespace = $context->getNamespace();
+ if ($namespace !== '') {
+ $namespace .= self::OPERATOR_NAMESPACE;
+ }
+
+ return new Fqsen(self::OPERATOR_NAMESPACE . $namespace . $type);
+ }
+
+ $typeParts[0] = $namespaceAliases[$typeParts[0]];
+
+ return new Fqsen(self::OPERATOR_NAMESPACE . implode(self::OPERATOR_NAMESPACE, $typeParts));
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/PseudoType.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/PseudoType.php
new file mode 100644
index 0000000..f94cff5
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/PseudoType.php
@@ -0,0 +1,19 @@
+ List of recognized keywords and unto which Value Object they map
+ * @psalm-var array>
+ */
+ private $keywords = [
+ 'string' => Types\String_::class,
+ 'class-string' => Types\ClassString::class,
+ 'int' => Types\Integer::class,
+ 'integer' => Types\Integer::class,
+ 'bool' => Types\Boolean::class,
+ 'boolean' => Types\Boolean::class,
+ 'real' => Types\Float_::class,
+ 'float' => Types\Float_::class,
+ 'double' => Types\Float_::class,
+ 'object' => Object_::class,
+ 'mixed' => Types\Mixed_::class,
+ 'array' => Array_::class,
+ 'resource' => Types\Resource_::class,
+ 'void' => Types\Void_::class,
+ 'null' => Types\Null_::class,
+ 'scalar' => Types\Scalar::class,
+ 'callback' => Types\Callable_::class,
+ 'callable' => Types\Callable_::class,
+ 'false' => PseudoTypes\False_::class,
+ 'true' => PseudoTypes\True_::class,
+ 'self' => Types\Self_::class,
+ '$this' => Types\This::class,
+ 'static' => Types\Static_::class,
+ 'parent' => Types\Parent_::class,
+ 'iterable' => Iterable_::class,
+ ];
+
+ /**
+ * @var FqsenResolver
+ * @psalm-readonly
+ */
+ private $fqsenResolver;
+
+ /**
+ * Initializes this TypeResolver with the means to create and resolve Fqsen objects.
+ */
+ public function __construct(?FqsenResolver $fqsenResolver = null)
+ {
+ $this->fqsenResolver = $fqsenResolver ?: new FqsenResolver();
+ }
+
+ /**
+ * Analyzes the given type and returns the FQCN variant.
+ *
+ * When a type is provided this method checks whether it is not a keyword or
+ * Fully Qualified Class Name. If so it will use the given namespace and
+ * aliases to expand the type to a FQCN representation.
+ *
+ * This method only works as expected if the namespace and aliases are set;
+ * no dynamic reflection is being performed here.
+ *
+ * @uses Context::getNamespaceAliases() to check whether the first part of the relative type name should not be
+ * replaced with another namespace.
+ * @uses Context::getNamespace() to determine with what to prefix the type name.
+ *
+ * @param string $type The relative or absolute type.
+ */
+ public function resolve(string $type, ?Context $context = null) : Type
+ {
+ $type = trim($type);
+ if (!$type) {
+ throw new InvalidArgumentException('Attempted to resolve "' . $type . '" but it appears to be empty');
+ }
+
+ if ($context === null) {
+ $context = new Context('');
+ }
+
+ // split the type string into tokens `|`, `?`, `<`, `>`, `,`, `(`, `)`, `[]`, '<', '>' and type names
+ $tokens = preg_split(
+ '/(\\||\\?|<|>|&|, ?|\\(|\\)|\\[\\]+)/',
+ $type,
+ -1,
+ PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE
+ );
+
+ if ($tokens === false) {
+ throw new InvalidArgumentException('Unable to split the type string "' . $type . '" into tokens');
+ }
+
+ /** @var ArrayIterator $tokenIterator */
+ $tokenIterator = new ArrayIterator($tokens);
+
+ return $this->parseTypes($tokenIterator, $context, self::PARSER_IN_COMPOUND);
+ }
+
+ /**
+ * Analyse each tokens and creates types
+ *
+ * @param ArrayIterator $tokens the iterator on tokens
+ * @param int $parserContext on of self::PARSER_* constants, indicating
+ * the context where we are in the parsing
+ */
+ private function parseTypes(ArrayIterator $tokens, Context $context, int $parserContext) : Type
+ {
+ $types = [];
+ $token = '';
+ $compoundToken = '|';
+ while ($tokens->valid()) {
+ $token = $tokens->current();
+ if ($token === null) {
+ throw new RuntimeException(
+ 'Unexpected nullable character'
+ );
+ }
+
+ if ($token === '|' || $token === '&') {
+ if (count($types) === 0) {
+ throw new RuntimeException(
+ 'A type is missing before a type separator'
+ );
+ }
+
+ if (!in_array($parserContext, [
+ self::PARSER_IN_COMPOUND,
+ self::PARSER_IN_ARRAY_EXPRESSION,
+ self::PARSER_IN_COLLECTION_EXPRESSION,
+ ], true)
+ ) {
+ throw new RuntimeException(
+ 'Unexpected type separator'
+ );
+ }
+
+ $compoundToken = $token;
+ $tokens->next();
+ } elseif ($token === '?') {
+ if (!in_array($parserContext, [
+ self::PARSER_IN_COMPOUND,
+ self::PARSER_IN_ARRAY_EXPRESSION,
+ self::PARSER_IN_COLLECTION_EXPRESSION,
+ ], true)
+ ) {
+ throw new RuntimeException(
+ 'Unexpected nullable character'
+ );
+ }
+
+ $tokens->next();
+ $type = $this->parseTypes($tokens, $context, self::PARSER_IN_NULLABLE);
+ $types[] = new Nullable($type);
+ } elseif ($token === '(') {
+ $tokens->next();
+ $type = $this->parseTypes($tokens, $context, self::PARSER_IN_ARRAY_EXPRESSION);
+
+ $token = $tokens->current();
+ if ($token === null) { // Someone did not properly close their array expression ..
+ break;
+ }
+
+ $tokens->next();
+
+ $resolvedType = new Expression($type);
+
+ $types[] = $resolvedType;
+ } elseif ($parserContext === self::PARSER_IN_ARRAY_EXPRESSION && $token[0] === ')') {
+ break;
+ } elseif ($token === '<') {
+ if (count($types) === 0) {
+ throw new RuntimeException(
+ 'Unexpected collection operator "<", class name is missing'
+ );
+ }
+
+ $classType = array_pop($types);
+ if ($classType !== null) {
+ if ((string) $classType === 'class-string') {
+ $types[] = $this->resolveClassString($tokens, $context);
+ } else {
+ $types[] = $this->resolveCollection($tokens, $classType, $context);
+ }
+ }
+
+ $tokens->next();
+ } elseif ($parserContext === self::PARSER_IN_COLLECTION_EXPRESSION
+ && ($token === '>' || trim($token) === ',')
+ ) {
+ break;
+ } elseif ($token === self::OPERATOR_ARRAY) {
+ end($types);
+ $last = key($types);
+ $lastItem = $types[$last];
+ if ($lastItem instanceof Expression) {
+ $lastItem = $lastItem->getValueType();
+ }
+
+ $types[$last] = new Array_($lastItem);
+
+ $tokens->next();
+ } else {
+ $type = $this->resolveSingleType($token, $context);
+ $tokens->next();
+ if ($parserContext === self::PARSER_IN_NULLABLE) {
+ return $type;
+ }
+
+ $types[] = $type;
+ }
+ }
+
+ if ($token === '|' || $token === '&') {
+ throw new RuntimeException(
+ 'A type is missing after a type separator'
+ );
+ }
+
+ if (count($types) === 0) {
+ if ($parserContext === self::PARSER_IN_NULLABLE) {
+ throw new RuntimeException(
+ 'A type is missing after a nullable character'
+ );
+ }
+
+ if ($parserContext === self::PARSER_IN_ARRAY_EXPRESSION) {
+ throw new RuntimeException(
+ 'A type is missing in an array expression'
+ );
+ }
+
+ if ($parserContext === self::PARSER_IN_COLLECTION_EXPRESSION) {
+ throw new RuntimeException(
+ 'A type is missing in a collection expression'
+ );
+ }
+ } elseif (count($types) === 1) {
+ return $types[0];
+ }
+
+ if ($compoundToken === '|') {
+ return new Compound(array_values($types));
+ }
+
+ return new Intersection(array_values($types));
+ }
+
+ /**
+ * resolve the given type into a type object
+ *
+ * @param string $type the type string, representing a single type
+ *
+ * @return Type|Array_|Object_
+ *
+ * @psalm-mutation-free
+ */
+ private function resolveSingleType(string $type, Context $context) : object
+ {
+ switch (true) {
+ case $this->isKeyword($type):
+ return $this->resolveKeyword($type);
+ case $this->isFqsen($type):
+ return $this->resolveTypedObject($type);
+ case $this->isPartialStructuralElementName($type):
+ return $this->resolveTypedObject($type, $context);
+
+ // @codeCoverageIgnoreStart
+ default:
+ // I haven't got the foggiest how the logic would come here but added this as a defense.
+ throw new RuntimeException(
+ 'Unable to resolve type "' . $type . '", there is no known method to resolve it'
+ );
+ }
+
+ // @codeCoverageIgnoreEnd
+ }
+
+ /**
+ * Adds a keyword to the list of Keywords and associates it with a specific Value Object.
+ *
+ * @psalm-param class-string $typeClassName
+ */
+ public function addKeyword(string $keyword, string $typeClassName) : void
+ {
+ if (!class_exists($typeClassName)) {
+ throw new InvalidArgumentException(
+ 'The Value Object that needs to be created with a keyword "' . $keyword . '" must be an existing class'
+ . ' but we could not find the class ' . $typeClassName
+ );
+ }
+
+ if (!in_array(Type::class, class_implements($typeClassName), true)) {
+ throw new InvalidArgumentException(
+ 'The class "' . $typeClassName . '" must implement the interface "phpDocumentor\Reflection\Type"'
+ );
+ }
+
+ $this->keywords[$keyword] = $typeClassName;
+ }
+
+ /**
+ * Detects whether the given type represents a PHPDoc keyword.
+ *
+ * @param string $type A relative or absolute type as defined in the phpDocumentor documentation.
+ *
+ * @psalm-mutation-free
+ */
+ private function isKeyword(string $type) : bool
+ {
+ return array_key_exists(strtolower($type), $this->keywords);
+ }
+
+ /**
+ * Detects whether the given type represents a relative structural element name.
+ *
+ * @param string $type A relative or absolute type as defined in the phpDocumentor documentation.
+ *
+ * @psalm-mutation-free
+ */
+ private function isPartialStructuralElementName(string $type) : bool
+ {
+ return ($type[0] !== self::OPERATOR_NAMESPACE) && !$this->isKeyword($type);
+ }
+
+ /**
+ * Tests whether the given type is a Fully Qualified Structural Element Name.
+ *
+ * @psalm-mutation-free
+ */
+ private function isFqsen(string $type) : bool
+ {
+ return strpos($type, self::OPERATOR_NAMESPACE) === 0;
+ }
+
+ /**
+ * Resolves the given keyword (such as `string`) into a Type object representing that keyword.
+ *
+ * @psalm-mutation-free
+ */
+ private function resolveKeyword(string $type) : Type
+ {
+ $className = $this->keywords[strtolower($type)];
+
+ return new $className();
+ }
+
+ /**
+ * Resolves the given FQSEN string into an FQSEN object.
+ *
+ * @psalm-mutation-free
+ */
+ private function resolveTypedObject(string $type, ?Context $context = null) : Object_
+ {
+ return new Object_($this->fqsenResolver->resolve($type, $context));
+ }
+
+ /**
+ * Resolves class string
+ *
+ * @param ArrayIterator $tokens
+ */
+ private function resolveClassString(ArrayIterator $tokens, Context $context) : Type
+ {
+ $tokens->next();
+
+ $classType = $this->parseTypes($tokens, $context, self::PARSER_IN_COLLECTION_EXPRESSION);
+
+ if (!$classType instanceof Object_ || $classType->getFqsen() === null) {
+ throw new RuntimeException(
+ $classType . ' is not a class string'
+ );
+ }
+
+ $token = $tokens->current();
+ if ($token !== '>') {
+ if (empty($token)) {
+ throw new RuntimeException(
+ 'class-string: ">" is missing'
+ );
+ }
+
+ throw new RuntimeException(
+ 'Unexpected character "' . $token . '", ">" is missing'
+ );
+ }
+
+ return new ClassString($classType->getFqsen());
+ }
+
+ /**
+ * Resolves the collection values and keys
+ *
+ * @param ArrayIterator $tokens
+ *
+ * @return Array_|Iterable_|Collection
+ */
+ private function resolveCollection(ArrayIterator $tokens, Type $classType, Context $context) : Type
+ {
+ $isArray = ((string) $classType === 'array');
+ $isIterable = ((string) $classType === 'iterable');
+
+ // allow only "array", "iterable" or class name before "<"
+ if (!$isArray && !$isIterable
+ && (!$classType instanceof Object_ || $classType->getFqsen() === null)) {
+ throw new RuntimeException(
+ $classType . ' is not a collection'
+ );
+ }
+
+ $tokens->next();
+
+ $valueType = $this->parseTypes($tokens, $context, self::PARSER_IN_COLLECTION_EXPRESSION);
+ $keyType = null;
+
+ $token = $tokens->current();
+ if ($token !== null && trim($token) === ',') {
+ // if we have a comma, then we just parsed the key type, not the value type
+ $keyType = $valueType;
+ if ($isArray) {
+ // check the key type for an "array" collection. We allow only
+ // strings or integers.
+ if (!$keyType instanceof String_ &&
+ !$keyType instanceof Integer &&
+ !$keyType instanceof Compound
+ ) {
+ throw new RuntimeException(
+ 'An array can have only integers or strings as keys'
+ );
+ }
+
+ if ($keyType instanceof Compound) {
+ foreach ($keyType->getIterator() as $item) {
+ if (!$item instanceof String_ &&
+ !$item instanceof Integer
+ ) {
+ throw new RuntimeException(
+ 'An array can have only integers or strings as keys'
+ );
+ }
+ }
+ }
+ }
+
+ $tokens->next();
+ // now let's parse the value type
+ $valueType = $this->parseTypes($tokens, $context, self::PARSER_IN_COLLECTION_EXPRESSION);
+ }
+
+ $token = $tokens->current();
+ if ($token !== '>') {
+ if (empty($token)) {
+ throw new RuntimeException(
+ 'Collection: ">" is missing'
+ );
+ }
+
+ throw new RuntimeException(
+ 'Unexpected character "' . $token . '", ">" is missing'
+ );
+ }
+
+ if ($isArray) {
+ return new Array_($valueType, $keyType);
+ }
+
+ if ($isIterable) {
+ return new Iterable_($valueType, $keyType);
+ }
+
+ if ($classType instanceof Object_) {
+ return $this->makeCollectionFromObject($classType, $valueType, $keyType);
+ }
+
+ throw new RuntimeException('Invalid $classType provided');
+ }
+
+ /**
+ * @psalm-pure
+ */
+ private function makeCollectionFromObject(Object_ $object, Type $valueType, ?Type $keyType = null) : Collection
+ {
+ return new Collection($object->getFqsen(), $valueType, $keyType);
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php
new file mode 100644
index 0000000..bbea4f1
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php
@@ -0,0 +1,83 @@
+valueType = $valueType;
+ $this->defaultKeyType = new Compound([new String_(), new Integer()]);
+ $this->keyType = $keyType;
+ }
+
+ /**
+ * Returns the type for the keys of this array.
+ */
+ public function getKeyType() : Type
+ {
+ return $this->keyType ?? $this->defaultKeyType;
+ }
+
+ /**
+ * Returns the value for the keys of this array.
+ */
+ public function getValueType() : Type
+ {
+ return $this->valueType;
+ }
+
+ /**
+ * Returns a rendered output of the Type as it would be used in a DocBlock.
+ */
+ public function __toString() : string
+ {
+ if ($this->keyType) {
+ return 'array<' . $this->keyType . ',' . $this->valueType . '>';
+ }
+
+ if ($this->valueType instanceof Mixed_) {
+ return 'array';
+ }
+
+ if ($this->valueType instanceof Compound) {
+ return '(' . $this->valueType . ')[]';
+ }
+
+ return $this->valueType . '[]';
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php
new file mode 100644
index 0000000..9522295
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php
@@ -0,0 +1,124 @@
+
+ */
+abstract class AggregatedType implements Type, IteratorAggregate
+{
+ /**
+ * @psalm-allow-private-mutation
+ * @var array
+ */
+ private $types = [];
+
+ /** @var string */
+ private $token;
+
+ /**
+ * @param array $types
+ */
+ public function __construct(array $types, string $token)
+ {
+ foreach ($types as $type) {
+ $this->add($type);
+ }
+
+ $this->token = $token;
+ }
+
+ /**
+ * Returns the type at the given index.
+ */
+ public function get(int $index) : ?Type
+ {
+ if (!$this->has($index)) {
+ return null;
+ }
+
+ return $this->types[$index];
+ }
+
+ /**
+ * Tests if this compound type has a type with the given index.
+ */
+ public function has(int $index) : bool
+ {
+ return array_key_exists($index, $this->types);
+ }
+
+ /**
+ * Tests if this compound type contains the given type.
+ */
+ public function contains(Type $type) : bool
+ {
+ foreach ($this->types as $typePart) {
+ // if the type is duplicate; do not add it
+ if ((string) $typePart === (string) $type) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns a rendered output of the Type as it would be used in a DocBlock.
+ */
+ public function __toString() : string
+ {
+ return implode($this->token, $this->types);
+ }
+
+ /**
+ * @return ArrayIterator
+ */
+ public function getIterator() : ArrayIterator
+ {
+ return new ArrayIterator($this->types);
+ }
+
+ /**
+ * @psalm-suppress ImpureMethodCall
+ */
+ private function add(Type $type) : void
+ {
+ if ($type instanceof self) {
+ foreach ($type->getIterator() as $subType) {
+ $this->add($subType);
+ }
+
+ return;
+ }
+
+ // if the type is duplicate; do not add it
+ if ($this->contains($type)) {
+ return;
+ }
+
+ $this->types[] = $type;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Array_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Array_.php
new file mode 100644
index 0000000..7f880e2
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Array_.php
@@ -0,0 +1,29 @@
+fqsen = $fqsen;
+ }
+
+ /**
+ * Returns the FQSEN associated with this object.
+ */
+ public function getFqsen() : ?Fqsen
+ {
+ return $this->fqsen;
+ }
+
+ /**
+ * Returns a rendered output of the Type as it would be used in a DocBlock.
+ */
+ public function __toString() : string
+ {
+ if ($this->fqsen === null) {
+ return 'class-string';
+ }
+
+ return 'class-string<' . (string) $this->fqsen . '>';
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Collection.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Collection.php
new file mode 100644
index 0000000..84b4463
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Collection.php
@@ -0,0 +1,68 @@
+`
+ * 2. `ACollectionObject`
+ *
+ * - ACollectionObject can be 'array' or an object that can act as an array
+ * - aValueType and aKeyType can be any type expression
+ *
+ * @psalm-immutable
+ */
+final class Collection extends AbstractList
+{
+ /** @var Fqsen|null */
+ private $fqsen;
+
+ /**
+ * Initializes this representation of an array with the given Type or Fqsen.
+ */
+ public function __construct(?Fqsen $fqsen, Type $valueType, ?Type $keyType = null)
+ {
+ parent::__construct($valueType, $keyType);
+
+ $this->fqsen = $fqsen;
+ }
+
+ /**
+ * Returns the FQSEN associated with this object.
+ */
+ public function getFqsen() : ?Fqsen
+ {
+ return $this->fqsen;
+ }
+
+ /**
+ * Returns a rendered output of the Type as it would be used in a DocBlock.
+ */
+ public function __toString() : string
+ {
+ $objectType = (string) ($this->fqsen ?? 'object');
+
+ if ($this->keyType === null) {
+ return $objectType . '<' . $this->valueType . '>';
+ }
+
+ return $objectType . '<' . $this->keyType . ',' . $this->valueType . '>';
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Compound.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Compound.php
new file mode 100644
index 0000000..ad426cc
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Compound.php
@@ -0,0 +1,38 @@
+ $types
+ */
+ public function __construct(array $types)
+ {
+ parent::__construct($types, '|');
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Context.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Context.php
new file mode 100644
index 0000000..c134d7c
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Context.php
@@ -0,0 +1,97 @@
+ Fully Qualified Namespace.
+ * @psalm-var array
+ */
+ private $namespaceAliases;
+
+ /**
+ * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN)
+ * format (without a preceding `\`).
+ *
+ * @param string $namespace The namespace where this DocBlock resides in.
+ * @param string[] $namespaceAliases List of namespace aliases => Fully Qualified Namespace.
+ *
+ * @psalm-param array $namespaceAliases
+ */
+ public function __construct(string $namespace, array $namespaceAliases = [])
+ {
+ $this->namespace = $namespace !== 'global' && $namespace !== 'default'
+ ? trim($namespace, '\\')
+ : '';
+
+ foreach ($namespaceAliases as $alias => $fqnn) {
+ if ($fqnn[0] === '\\') {
+ $fqnn = substr($fqnn, 1);
+ }
+
+ if ($fqnn[strlen($fqnn) - 1] === '\\') {
+ $fqnn = substr($fqnn, 0, -1);
+ }
+
+ $namespaceAliases[$alias] = $fqnn;
+ }
+
+ $this->namespaceAliases = $namespaceAliases;
+ }
+
+ /**
+ * Returns the Qualified Namespace Name (thus without `\` in front) where the associated element is in.
+ */
+ public function getNamespace() : string
+ {
+ return $this->namespace;
+ }
+
+ /**
+ * Returns a list of Qualified Namespace Names (thus without `\` in front) that are imported, the keys represent
+ * the alias for the imported Namespace.
+ *
+ * @return string[]
+ *
+ * @psalm-return array
+ */
+ public function getNamespaceAliases() : array
+ {
+ return $this->namespaceAliases;
+ }
+}
diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php
new file mode 100644
index 0000000..5d09d56
--- /dev/null
+++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php
@@ -0,0 +1,423 @@
+ $reflector */
+
+ return $this->createFromReflectionClass($reflector);
+ }
+
+ if ($reflector instanceof ReflectionParameter) {
+ return $this->createFromReflectionParameter($reflector);
+ }
+
+ if ($reflector instanceof ReflectionMethod) {
+ return $this->createFromReflectionMethod($reflector);
+ }
+
+ if ($reflector instanceof ReflectionProperty) {
+ return $this->createFromReflectionProperty($reflector);
+ }
+
+ if ($reflector instanceof ReflectionClassConstant) {
+ return $this->createFromReflectionClassConstant($reflector);
+ }
+
+ throw new UnexpectedValueException('Unhandled \Reflector instance given: ' . get_class($reflector));
+ }
+
+ private function createFromReflectionParameter(ReflectionParameter $parameter) : Context
+ {
+ $class = $parameter->getDeclaringClass();
+ if (!$class) {
+ throw new InvalidArgumentException('Unable to get class of ' . $parameter->getName());
+ }
+
+ //phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.MissingVariable
+ /** @var ReflectionClass