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 @@ + + + + + + + + <?php echo $jkl["g2"];?> - <?php echo JAK_TITLE;?> + + + + + + + + + + + + + + + + + + + +
+
+
+

+

    +
  • +
  • +
  • +
+

+
+
+ +
+ + 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 = 'avatar'; + } elseif ($d['cid'] && $d['cpicture'] && $d['cpicture'] != '/standard.jpg') { + $avatar = 'avatar'; + } else { + $avatar = 'avatar'; + } + + $approve = ""; + if ($d['approve'] == 0) { + $approve = '
'.$lang.'
'; + } + + return '
+
'.$avatar.' '.($d['cname'] ? $d['cname'] : $d['oname']).' '.$d['created'].'
+
'.stripslashes($d['message']).$approve.'
+
'; + + } + + } + + 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 '
+ +
+ '.($d['cname'] ? $d['cname'] : $d['oname']).' +
+
+
+

'.($d['cname'] ? $d['cname'] : $d['oname']).' + '.$d['created'].' +

+
+ '.stripslashes($d['message']).$approve.' +
+
'; + + } + + } + + 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 ''.$alt.''; + } + } + + if ($this->sprites) + { + return ''.$alt.''; + } + else + { + return ''.$alt.''; + } + } + } + + /** + * @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].''.$alt.''; + } + } + + if ($this->sprites) + { + return $m[2].''.$alt.''; + } + else + { + return $m[2].''.$alt.''; + } + } + } + + /** + * @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 ''.$alt.''; + } + } + + if ($this->sprites) + { + return ''.$alt.''; + } + else + { + return ''.$alt.''; + } + } + } + + // ########################################## + // ######## 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 '&#x'.implode(';&#x',$pairs).';'; + } + else + { + return '&#x'.$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', + ' '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 '
'; + + foreach ($params as $key => $value) + { + echo ''; + } + + if ($type == 'auto') { + 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 + +[![Travis CI Status](https://travis-ci.org/AuthorizeNet/sdk-php.svg?branch=master)](https://travis-ci.org/AuthorizeNet/sdk-php) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/AuthorizeNet/sdk-php/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/AuthorizeNet/sdk-php/?branch=master) +[![Packagist Stable Version](https://poser.pugx.org/authorizenet/authorizenet/v/stable.svg)](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 . ""; + + $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 + +![Home Image](homepage.jpg) + +### 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. + +[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator) +[![Code Coverage](https://codecov.io/gh/doctrine/instantiator/branch/master/graph/badge.svg)](https://codecov.io/gh/doctrine/instantiator/branch/master) +[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator) + +[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator) +[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](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. + +[![Build Status](https://travis-ci.org/myclabs/DeepCopy.png?branch=1.x)](https://travis-ci.org/myclabs/DeepCopy) +[![Coverage Status](https://coveralls.io/repos/myclabs/DeepCopy/badge.png?branch=1.x)](https://coveralls.io/r/myclabs/DeepCopy?branch=1.x) +[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/myclabs/DeepCopy/badges/quality-score.png?s=2747100c19b275f93a777e3297c6c12d1b68b934)](https://scrutinizer-ci.com/g/myclabs/DeepCopy/) +[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](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 :( + +![association graph](doc/graph.png) + + +### Using simply `clone` + +![Using clone](doc/clone.png) + + +### Overridding `__clone()` + +![Overridding __clone](doc/deep-clone.png) + + +### With `DeepCopy` + +![With DeepCopy](doc/deep-copy.png) + + +## 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 @@ +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +![Qa workflow](https://github.com/phpDocumentor/ReflectionCommon/workflows/Qa%20workflow/badge.svg) +[![Coveralls Coverage](https://img.shields.io/coveralls/github/phpDocumentor/ReflectionCommon.svg)](https://coveralls.io/github/phpDocumentor/ReflectionCommon?branch=master) +[![Scrutinizer Code Coverage](https://img.shields.io/scrutinizer/coverage/g/phpDocumentor/ReflectionCommon.svg)](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master) +[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/phpDocumentor/ReflectionCommon.svg)](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master) +[![Stable Version](https://img.shields.io/packagist/v/phpDocumentor/Reflection-Common.svg)](https://packagist.org/packages/phpDocumentor/Reflection-Common) +[![Unstable Version](https://img.shields.io/packagist/vpre/phpDocumentor/Reflection-Common.svg)](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 $class */ + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionMethod(ReflectionMethod $method) : Context + { + //phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.MissingVariable + /** @var ReflectionClass $class */ + $class = $method->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionProperty(ReflectionProperty $property) : Context + { + //phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.MissingVariable + /** @var ReflectionClass $class */ + $class = $property->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionClassConstant(ReflectionClassConstant $constant) : Context + { + //phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.MissingVariable + /** @var ReflectionClass $class */ + $class = $constant->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + /** + * @param ReflectionClass $class + */ + private function createFromReflectionClass(ReflectionClass $class) : Context + { + $fileName = $class->getFileName(); + $namespace = $class->getNamespaceName(); + + if (is_string($fileName) && file_exists($fileName)) { + $contents = file_get_contents($fileName); + if ($contents === false) { + throw new RuntimeException('Unable to read file "' . $fileName . '"'); + } + + return $this->createForNamespace($namespace, $contents); + } + + return new Context($namespace, []); + } + + /** + * Build a Context for a namespace in the provided file contents. + * + * @see Context for more information on Contexts. + * + * @param string $namespace It does not matter if a `\` precedes the namespace name, + * this method first normalizes. + * @param string $fileContents The file's contents to retrieve the aliases from with the given namespace. + */ + public function createForNamespace(string $namespace, string $fileContents) : Context + { + $namespace = trim($namespace, '\\'); + $useStatements = []; + $currentNamespace = ''; + $tokens = new ArrayIterator(token_get_all($fileContents)); + + while ($tokens->valid()) { + $currentToken = $tokens->current(); + switch ($currentToken[0]) { + case T_NAMESPACE: + $currentNamespace = $this->parseNamespace($tokens); + break; + case T_CLASS: + // Fast-forward the iterator through the class so that any + // T_USE tokens found within are skipped - these are not + // valid namespace use statements so should be ignored. + $braceLevel = 0; + $firstBraceFound = false; + while ($tokens->valid() && ($braceLevel > 0 || !$firstBraceFound)) { + $currentToken = $tokens->current(); + if ($currentToken === '{' + || in_array($currentToken[0], [T_CURLY_OPEN, T_DOLLAR_OPEN_CURLY_BRACES], true)) { + if (!$firstBraceFound) { + $firstBraceFound = true; + } + + ++$braceLevel; + } + + if ($currentToken === '}') { + --$braceLevel; + } + + $tokens->next(); + } + + break; + case T_USE: + if ($currentNamespace === $namespace) { + $useStatements += $this->parseUseStatement($tokens); + } + + break; + } + + $tokens->next(); + } + + return new Context($namespace, $useStatements); + } + + /** + * Deduce the name from tokens when we are at the T_NAMESPACE token. + * + * @param ArrayIterator $tokens + */ + private function parseNamespace(ArrayIterator $tokens) : string + { + // skip to the first string or namespace separator + $this->skipToNextStringOrNamespaceSeparator($tokens); + + $name = ''; + $acceptedTokens = [T_STRING, T_NS_SEPARATOR, T_NAME_QUALIFIED]; + while ($tokens->valid() && in_array($tokens->current()[0], $acceptedTokens, true)) { + $name .= $tokens->current()[1]; + $tokens->next(); + } + + return $name; + } + + /** + * Deduce the names of all imports when we are at the T_USE token. + * + * @param ArrayIterator $tokens + * + * @return string[] + * + * @psalm-return array + */ + private function parseUseStatement(ArrayIterator $tokens) : array + { + $uses = []; + + while ($tokens->valid()) { + $this->skipToNextStringOrNamespaceSeparator($tokens); + + $uses += $this->extractUseStatements($tokens); + $currentToken = $tokens->current(); + if ($currentToken[0] === self::T_LITERAL_END_OF_USE) { + return $uses; + } + } + + return $uses; + } + + /** + * Fast-forwards the iterator as longs as we don't encounter a T_STRING or T_NS_SEPARATOR token. + * + * @param ArrayIterator $tokens + */ + private function skipToNextStringOrNamespaceSeparator(ArrayIterator $tokens) : void + { + while ($tokens->valid()) { + $currentToken = $tokens->current(); + if (in_array($currentToken[0], [T_STRING, T_NS_SEPARATOR], true)) { + break; + } + + if ($currentToken[0] === T_NAME_QUALIFIED) { + break; + } + + if (defined('T_NAME_FULLY_QUALIFIED') && $currentToken[0] === T_NAME_FULLY_QUALIFIED) { + break; + } + + $tokens->next(); + } + } + + /** + * Deduce the namespace name and alias of an import when we are at the T_USE token or have not reached the end of + * a USE statement yet. This will return a key/value array of the alias => namespace. + * + * @param ArrayIterator $tokens + * + * @return string[] + * + * @psalm-suppress TypeDoesNotContainType + * + * @psalm-return array + */ + private function extractUseStatements(ArrayIterator $tokens) : array + { + $extractedUseStatements = []; + $groupedNs = ''; + $currentNs = ''; + $currentAlias = ''; + $state = 'start'; + + while ($tokens->valid()) { + $currentToken = $tokens->current(); + $tokenId = is_string($currentToken) ? $currentToken : $currentToken[0]; + $tokenValue = is_string($currentToken) ? null : $currentToken[1]; + switch ($state) { + case 'start': + switch ($tokenId) { + case T_STRING: + case T_NS_SEPARATOR: + $currentNs .= (string) $tokenValue; + $currentAlias = $tokenValue; + break; + case T_NAME_QUALIFIED: + case T_NAME_FULLY_QUALIFIED: + $currentNs .= (string) $tokenValue; + $currentAlias = substr( + (string) $tokenValue, + (int) (strrpos((string) $tokenValue, '\\')) + 1 + ); + break; + case T_CURLY_OPEN: + case '{': + $state = 'grouped'; + $groupedNs = $currentNs; + break; + case T_AS: + $state = 'start-alias'; + break; + case self::T_LITERAL_USE_SEPARATOR: + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'start-alias': + switch ($tokenId) { + case T_STRING: + $currentAlias = $tokenValue; + break; + case self::T_LITERAL_USE_SEPARATOR: + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'grouped': + switch ($tokenId) { + case T_STRING: + case T_NS_SEPARATOR: + $currentNs .= (string) $tokenValue; + $currentAlias = $tokenValue; + break; + case T_AS: + $state = 'grouped-alias'; + break; + case self::T_LITERAL_USE_SEPARATOR: + $state = 'grouped'; + $extractedUseStatements[(string) $currentAlias] = $currentNs; + $currentNs = $groupedNs; + $currentAlias = ''; + break; + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'grouped-alias': + switch ($tokenId) { + case T_STRING: + $currentAlias = $tokenValue; + break; + case self::T_LITERAL_USE_SEPARATOR: + $state = 'grouped'; + $extractedUseStatements[(string) $currentAlias] = $currentNs; + $currentNs = $groupedNs; + $currentAlias = ''; + break; + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + } + + if ($state === 'end') { + break; + } + + $tokens->next(); + } + + if ($groupedNs !== $currentNs) { + $extractedUseStatements[(string) $currentAlias] = $currentNs; + } + + return $extractedUseStatements; + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Expression.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Expression.php new file mode 100644 index 0000000..4a8ae1f --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Expression.php @@ -0,0 +1,51 @@ +valueType = $valueType; + } + + /** + * 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 + { + return '(' . $this->valueType . ')'; + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Float_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Float_.php new file mode 100644 index 0000000..e70ce7d --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Float_.php @@ -0,0 +1,32 @@ + $types + */ + public function __construct(array $types) + { + parent::__construct($types, '&'); + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php new file mode 100644 index 0000000..a03a7cd --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php @@ -0,0 +1,38 @@ +keyType) { + return 'iterable<' . $this->keyType . ',' . $this->valueType . '>'; + } + + if ($this->valueType instanceof Mixed_) { + return 'iterable'; + } + + return 'iterable<' . $this->valueType . '>'; + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php new file mode 100644 index 0000000..2fedff4 --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php @@ -0,0 +1,32 @@ +realType = $realType; + } + + /** + * Provide access to the actual type directly, if needed. + */ + public function getActualType() : Type + { + return $this->realType; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString() : string + { + return '?' . $this->realType->__toString(); + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Object_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Object_.php new file mode 100644 index 0000000..4cfe2a0 --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Object_.php @@ -0,0 +1,68 @@ +fqsen = $fqsen; + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen() : ?Fqsen + { + return $this->fqsen; + } + + public function __toString() : string + { + if ($this->fqsen) { + return (string) $this->fqsen; + } + + return 'object'; + } +} diff --git a/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php new file mode 100644 index 0000000..08900ab --- /dev/null +++ b/class/payment/paypal/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php @@ -0,0 +1,34 @@ + + Marcello Duarte + +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/phpspec/prophecy/README.md b/class/payment/paypal/vendor/phpspec/prophecy/README.md new file mode 100644 index 0000000..3da9b59 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/README.md @@ -0,0 +1,402 @@ +# Prophecy + +[![Stable release](https://poser.pugx.org/phpspec/prophecy/version.svg)](https://packagist.org/packages/phpspec/prophecy) +[![Build Status](https://travis-ci.org/phpspec/prophecy.svg?branch=master)](https://travis-ci.org/phpspec/prophecy) + +Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking +framework. Though initially it was created to fulfil phpspec2 needs, it is flexible +enough to be used inside any testing framework out there with minimal effort. + +## A simple example + +```php +prophet->prophesize('App\Security\Hasher'); + $user = new App\Entity\User($hasher->reveal()); + + $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass'); + + $user->setPassword('qwerty'); + + $this->assertEquals('hashed_pass', $user->getPassword()); + } + + protected function setUp() + { + $this->prophet = new \Prophecy\Prophet; + } + + protected function tearDown() + { + $this->prophet->checkPredictions(); + } +} +``` + +## Installation + +### Prerequisites + +Prophecy requires PHP 5.3.3 or greater. + +### Setup through composer + +First, add Prophecy to the list of dependencies inside your `composer.json`: + +```json +{ + "require-dev": { + "phpspec/prophecy": "~1.0" + } +} +``` + +Then simply install it with composer: + +```bash +$> composer install --prefer-dist +``` + +You can read more about Composer on its [official webpage](http://getcomposer.org). + +## How to use it + +First of all, in Prophecy every word has a logical meaning, even the name of the library +itself (Prophecy). When you start feeling that, you'll become very fluid with this +tool. + +For example, Prophecy has been named that way because it concentrates on describing the future +behavior of objects with very limited knowledge about them. But as with any other prophecy, +those object prophecies can't create themselves - there should be a Prophet: + +```php +$prophet = new Prophecy\Prophet; +``` + +The Prophet creates prophecies by *prophesizing* them: + +```php +$prophecy = $prophet->prophesize(); +``` + +The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes, +that's your specific object prophecy, which describes how your object would behave +in the near future. But first, you need to specify which object you're talking about, +right? + +```php +$prophecy->willExtend('stdClass'); +$prophecy->willImplement('SessionHandlerInterface'); +``` + +There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells +object prophecy that our object should extend specific class, the second one says that +it should implement some interface. Obviously, objects in PHP can implement multiple +interfaces, but extend only one parent class. + +### Dummies + +Ok, now we have our object prophecy. What can we do with it? First of all, we can get +our object *dummy* by revealing its prophecy: + +```php +$dummy = $prophecy->reveal(); +``` + +The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend +and/or implement preset classes/interfaces by overriding all their public methods. The key +point about dummies is that they do not hold any logic - they just do nothing. Any method +of the dummy will always return `null` and the dummy will never throw any exceptions. +Dummy is your friend if you don't care about the actual behavior of this double and just need +a token object to satisfy a method typehint. + +You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still +assigned to `$prophecy` variable and in order to manipulate with your expectations, you +should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your +prophecy. + +### Stubs + +Ok, now we know how to create basic prophecies and reveal dummies from them. That's +awesome if we don't care about our _doubles_ (objects that reflect originals) +interactions. If we do, we need to use *stubs* or *mocks*. + +A stub is an object double, which doesn't have any expectations about the object behavior, +but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic, +but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called +method signature does different things (has logic). To create stubs in Prophecy: + +```php +$prophecy->read('123')->willReturn('value'); +``` + +Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this +call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific +method with arguments prophecy. Method prophecies give you the ability to create method +promises or predictions. We'll talk about method predictions later in the _Mocks_ section. + +#### Promises + +Promises are logical blocks, that represent your fictional methods in prophecy terms +and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method. +As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple +shortcut to: + +```php +$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value'))); +``` + +This promise will cause any call to our double's `read()` method with exactly one +argument - `'123'` to always return `'value'`. But that's only for this +promise, there's plenty others you can use: + +- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call +- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call +- `ThrowPromise` or `->willThrow($exception)` - causes the method to throw specific exception +- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic + +Keep in mind, that you can always add even more promises by implementing +`Prophecy\Promise\PromiseInterface`. + +#### Method prophecies idempotency + +Prophecy enforces same method prophecies and, as a consequence, same promises and +predictions for the same method calls with the same arguments. This means: + +```php +$methodProphecy1 = $prophecy->read('123'); +$methodProphecy2 = $prophecy->read('123'); +$methodProphecy3 = $prophecy->read('321'); + +$methodProphecy1 === $methodProphecy2; +$methodProphecy1 !== $methodProphecy3; +``` + +That's interesting, right? Now you might ask me how would you define more complex +behaviors where some method call changes behavior of others. In PHPUnit or Mockery +you do that by predicting how many times your method will be called. In Prophecy, +you'll use promises for that: + +```php +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName('everzet')->will(function () { + $this->getName()->willReturn('everzet'); +}); + +// For PHP 5.3 +$user->setName('everzet')->will(function ($args, $user) { + $user->getName()->willReturn('everzet'); +}); + +// Or +$user->setName('everzet')->will(function ($args) use ($user) { + $user->getName()->willReturn('everzet'); +}); +``` + +And now it doesn't matter how many times or in which order your methods are called. +What matters is their behaviors and how well you faked it. + +Note: If the method is called several times, you can use the following syntax to return different +values for each call: + +```php +$prophecy->read('123')->willReturn(1, 2, 3); +``` + +This feature is actually not recommended for most cases. Relying on the order of +calls for the same arguments tends to make test fragile, as adding one more call +can break everything. + +#### Arguments wildcarding + +The previous example is awesome (at least I hope it is for you), but that's not +optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better +way? In fact there is, but it involves understanding what this `'everzet'` +actually is. + +You see, even if method arguments used during method prophecy creation look +like simple method arguments, in reality they are not. They are argument token +wildcards. As a matter of fact, `->setName('everzet')` looks like a simple call just +because Prophecy automatically transforms it under the hood into: + +```php +$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet')); +``` + +Those argument tokens are simple PHP classes, that implement +`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments +with your expectations. And yes, those classnames are damn big. That's why there's a +shortcut class `Prophecy\Argument`, which you can use to create tokens like that: + +```php +use Prophecy\Argument; + +$user->setName(Argument::exact('everzet')); +``` + +`ExactValueToken` is not very useful in our case as it forced us to hardcode the username. +That's why Prophecy comes bundled with a bunch of other tokens: + +- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value +- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value +- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or + classname +- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns + a specific value +- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback +- `AnyValueToken` or `Argument::any()` - matches any argument +- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature +- `StringContainsToken` or `Argument::containingString($value)` - checks that the argument contains a specific string value + +And you can add even more by implementing `TokenInterface` with your own custom classes. + +So, let's refactor our initial `{set,get}Name()` logic with argument tokens: + +```php +use Prophecy\Argument; + +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName(Argument::type('string'))->will(function ($args) { + $this->getName()->willReturn($args[0]); +}); + +// For PHP 5.3 +$user->setName(Argument::type('string'))->will(function ($args, $user) { + $user->getName()->willReturn($args[0]); +}); + +// Or +$user->setName(Argument::type('string'))->will(function ($args) use ($user) { + $user->getName()->willReturn($args[0]); +}); +``` + +That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it. +We've just described how our stub object should behave, even though the original object could have +no behavior whatsoever. + +One last bit about arguments now. You might ask, what happens in case of: + +```php +use Prophecy\Argument; + +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName(Argument::type('string'))->will(function ($args) { + $this->getName()->willReturn($args[0]); +}); + +// For PHP 5.3 +$user->setName(Argument::type('string'))->will(function ($args, $user) { + $user->getName()->willReturn($args[0]); +}); + +// Or +$user->setName(Argument::type('string'))->will(function ($args) use ($user) { + $user->getName()->willReturn($args[0]); +}); + +$user->setName(Argument::any())->will(function () { +}); +``` + +Nothing. Your stub will continue behaving the way it did before. That's because of how +arguments wildcarding works. Every argument token type has a different score level, which +wildcard then uses to calculate the final arguments match score and use the method prophecy +promise that has the highest score. In this case, `Argument::type()` in case of success +scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first +`setName()` method prophecy and its promise. The simple rule of thumb - more precise token +always wins. + +#### Getting stub objects + +Ok, now we know how to define our prophecy method promises, let's get our stub from +it: + +```php +$stub = $prophecy->reveal(); +``` + +As you might see, the only difference between how we get dummies and stubs is that with +stubs we describe every object conversation instead of just agreeing with `null` returns +(object being *dummy*). As a matter of fact, after you define your first promise +(method call), Prophecy will force you to define all the communications - it throws +the `UnexpectedCallException` for any call you didn't describe with object prophecy before +calling it on a stub. + +### Mocks + +Now we know how to define doubles without behavior (dummies) and doubles with behavior, but +no expectations (stubs). What's left is doubles for which we have some expectations. These +are called mocks and in Prophecy they look almost exactly the same as stubs, except that +they define *predictions* instead of *promises* on method prophecies: + +```php +$entityManager->flush()->shouldBeCalled(); +``` + +#### Predictions + +The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy. +Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime +of your doubles, Prophecy records every single call you're making against it inside your +code. After that, Prophecy can use this collected information to check if it matches defined +predictions. You can assign predictions to method prophecies using the +`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact, +the `shouldBeCalled()` method we used earlier is just a shortcut to: + +```php +$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction()); +``` + +It checks if your method of interest (that matches both the method name and the arguments wildcard) +was called 1 or more times. If the prediction failed then it throws an exception. When does this +check happen? Whenever you call `checkPredictions()` on the main Prophet object: + +```php +$prophet->checkPredictions(); +``` + +In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions +are defined, it would do nothing. So it won't harm to call it after every test. + +There are plenty more predictions you can play with: + +- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times +- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called +- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called + `$count` times +- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback + +Of course, you can always create your own custom prediction any time by implementing +`PredictionInterface`. + +### Spies + +The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous +section, Prophecy records every call made during the double's entire lifetime. This means +you don't need to record predictions in order to check them. You can also do it +manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method: + +```php +$em = $prophet->prophesize('Doctrine\ORM\EntityManager'); + +$controller->createUser($em->reveal()); + +$em->flush()->shouldHaveBeenCalled(); +``` + +Such manipulation with doubles is called spying. And with Prophecy it just works. diff --git a/class/payment/paypal/vendor/phpspec/prophecy/composer.json b/class/payment/paypal/vendor/phpspec/prophecy/composer.json new file mode 100644 index 0000000..7151160 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/composer.json @@ -0,0 +1,50 @@ +{ + "name": "phpspec/prophecy", + "description": "Highly opinionated mocking framework for PHP 5.3+", + "keywords": ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy"], + "homepage": "https://github.com/phpspec/prophecy", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + + "require": { + "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", + "doctrine/instantiator": "^1.0.2", + "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" + }, + + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + + "autoload-dev": { + "psr-4": { + "Fixtures\\Prophecy\\": "fixtures" + } + }, + + "extra": { + "branch-alias": { + "dev-master": "1.10.x-dev" + } + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument.php new file mode 100644 index 0000000..fde6aa9 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument.php @@ -0,0 +1,212 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy; + +use Prophecy\Argument\Token; + +/** + * Argument tokens shortcuts. + * + * @author Konstantin Kudryashov + */ +class Argument +{ + /** + * Checks that argument is exact value or object. + * + * @param mixed $value + * + * @return Token\ExactValueToken + */ + public static function exact($value) + { + return new Token\ExactValueToken($value); + } + + /** + * Checks that argument is of specific type or instance of specific class. + * + * @param string $type Type name (`integer`, `string`) or full class name + * + * @return Token\TypeToken + */ + public static function type($type) + { + return new Token\TypeToken($type); + } + + /** + * Checks that argument object has specific state. + * + * @param string $methodName + * @param mixed $value + * + * @return Token\ObjectStateToken + */ + public static function which($methodName, $value) + { + return new Token\ObjectStateToken($methodName, $value); + } + + /** + * Checks that argument matches provided callback. + * + * @param callable $callback + * + * @return Token\CallbackToken + */ + public static function that($callback) + { + return new Token\CallbackToken($callback); + } + + /** + * Matches any single value. + * + * @return Token\AnyValueToken + */ + public static function any() + { + return new Token\AnyValueToken; + } + + /** + * Matches all values to the rest of the signature. + * + * @return Token\AnyValuesToken + */ + public static function cetera() + { + return new Token\AnyValuesToken; + } + + /** + * Checks that argument matches all tokens + * + * @param mixed ... a list of tokens + * + * @return Token\LogicalAndToken + */ + public static function allOf() + { + return new Token\LogicalAndToken(func_get_args()); + } + + /** + * Checks that argument array or countable object has exact number of elements. + * + * @param integer $value array elements count + * + * @return Token\ArrayCountToken + */ + public static function size($value) + { + return new Token\ArrayCountToken($value); + } + + /** + * Checks that argument array contains (key, value) pair + * + * @param mixed $key exact value or token + * @param mixed $value exact value or token + * + * @return Token\ArrayEntryToken + */ + public static function withEntry($key, $value) + { + return new Token\ArrayEntryToken($key, $value); + } + + /** + * Checks that arguments array entries all match value + * + * @param mixed $value + * + * @return Token\ArrayEveryEntryToken + */ + public static function withEveryEntry($value) + { + return new Token\ArrayEveryEntryToken($value); + } + + /** + * Checks that argument array contains value + * + * @param mixed $value + * + * @return Token\ArrayEntryToken + */ + public static function containing($value) + { + return new Token\ArrayEntryToken(self::any(), $value); + } + + /** + * Checks that argument array has key + * + * @param mixed $key exact value or token + * + * @return Token\ArrayEntryToken + */ + public static function withKey($key) + { + return new Token\ArrayEntryToken($key, self::any()); + } + + /** + * Checks that argument does not match the value|token. + * + * @param mixed $value either exact value or argument token + * + * @return Token\LogicalNotToken + */ + public static function not($value) + { + return new Token\LogicalNotToken($value); + } + + /** + * @param string $value + * + * @return Token\StringContainsToken + */ + public static function containingString($value) + { + return new Token\StringContainsToken($value); + } + + /** + * Checks that argument is identical value. + * + * @param mixed $value + * + * @return Token\IdenticalValueToken + */ + public static function is($value) + { + return new Token\IdenticalValueToken($value); + } + + /** + * Check that argument is same value when rounding to the + * given precision. + * + * @param float $value + * @param float $precision + * + * @return Token\ApproximateValueToken + */ + public static function approximate($value, $precision = 0) + { + return new Token\ApproximateValueToken($value, $precision); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php new file mode 100644 index 0000000..a088f21 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php @@ -0,0 +1,101 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument; + +/** + * Arguments wildcarding. + * + * @author Konstantin Kudryashov + */ +class ArgumentsWildcard +{ + /** + * @var Token\TokenInterface[] + */ + private $tokens = array(); + private $string; + + /** + * Initializes wildcard. + * + * @param array $arguments Array of argument tokens or values + */ + public function __construct(array $arguments) + { + foreach ($arguments as $argument) { + if (!$argument instanceof Token\TokenInterface) { + $argument = new Token\ExactValueToken($argument); + } + + $this->tokens[] = $argument; + } + } + + /** + * Calculates wildcard match score for provided arguments. + * + * @param array $arguments + * + * @return false|int False OR integer score (higher - better) + */ + public function scoreArguments(array $arguments) + { + if (0 == count($arguments) && 0 == count($this->tokens)) { + return 1; + } + + $arguments = array_values($arguments); + $totalScore = 0; + foreach ($this->tokens as $i => $token) { + $argument = isset($arguments[$i]) ? $arguments[$i] : null; + if (1 >= $score = $token->scoreArgument($argument)) { + return false; + } + + $totalScore += $score; + + if (true === $token->isLast()) { + return $totalScore; + } + } + + if (count($arguments) > count($this->tokens)) { + return false; + } + + return $totalScore; + } + + /** + * Returns string representation for wildcard. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = implode(', ', array_map(function ($token) { + return (string) $token; + }, $this->tokens)); + } + + return $this->string; + } + + /** + * @return array + */ + public function getTokens() + { + return $this->tokens; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php new file mode 100644 index 0000000..5098811 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Any single value token. + * + * @author Konstantin Kudryashov + */ +class AnyValueToken implements TokenInterface +{ + /** + * Always scores 3 for any argument. + * + * @param $argument + * + * @return int + */ + public function scoreArgument($argument) + { + return 3; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return '*'; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php new file mode 100644 index 0000000..f76b17b --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Any values token. + * + * @author Konstantin Kudryashov + */ +class AnyValuesToken implements TokenInterface +{ + /** + * Always scores 2 for any argument. + * + * @param $argument + * + * @return int + */ + public function scoreArgument($argument) + { + return 2; + } + + /** + * Returns true to stop wildcard from processing other tokens. + * + * @return bool + */ + public function isLast() + { + return true; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return '* [, ...]'; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php new file mode 100644 index 0000000..d4918b1 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php @@ -0,0 +1,55 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Approximate value token + * + * @author Daniel Leech + */ +class ApproximateValueToken implements TokenInterface +{ + private $value; + private $precision; + + public function __construct($value, $precision = 0) + { + $this->value = $value; + $this->precision = $precision; + } + + /** + * {@inheritdoc} + */ + public function scoreArgument($argument) + { + return round($argument, $this->precision) === round($this->value, $this->precision) ? 10 : false; + } + + /** + * {@inheritdoc} + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('≅%s', round($this->value, $this->precision)); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php new file mode 100644 index 0000000..96b4bef --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php @@ -0,0 +1,86 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Array elements count token. + * + * @author Boris Mikhaylov + */ + +class ArrayCountToken implements TokenInterface +{ + private $count; + + /** + * @param integer $value + */ + public function __construct($value) + { + $this->count = $value; + } + + /** + * Scores 6 when argument has preset number of elements. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('count(%s)', $this->count); + } + + /** + * Returns true if object is either array or instance of \Countable + * + * @param $argument + * @return bool + */ + private function isCountable($argument) + { + return (is_array($argument) || $argument instanceof \Countable); + } + + /** + * Returns true if $argument has expected number of elements + * + * @param array|\Countable $argument + * + * @return bool + */ + private function hasProperCount($argument) + { + return $this->count === count($argument); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php new file mode 100644 index 0000000..0305fc7 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php @@ -0,0 +1,143 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Array entry token. + * + * @author Boris Mikhaylov + */ +class ArrayEntryToken implements TokenInterface +{ + /** @var \Prophecy\Argument\Token\TokenInterface */ + private $key; + /** @var \Prophecy\Argument\Token\TokenInterface */ + private $value; + + /** + * @param mixed $key exact value or token + * @param mixed $value exact value or token + */ + public function __construct($key, $value) + { + $this->key = $this->wrapIntoExactValueToken($key); + $this->value = $this->wrapIntoExactValueToken($value); + } + + /** + * Scores half of combined scores from key and value tokens for same entry. Capped at 8. + * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken. + * + * @param array|\ArrayAccess|\Traversable $argument + * + * @throws \Prophecy\Exception\InvalidArgumentException + * @return bool|int + */ + public function scoreArgument($argument) + { + if ($argument instanceof \Traversable) { + $argument = iterator_to_array($argument); + } + + if ($argument instanceof \ArrayAccess) { + $argument = $this->convertArrayAccessToEntry($argument); + } + + if (!is_array($argument) || empty($argument)) { + return false; + } + + $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument)); + $valueScores = array_map(array($this->value,'scoreArgument'), $argument); + $scoreEntry = function ($value, $key) { + return $value && $key ? min(8, ($key + $value) / 2) : false; + }; + + return max(array_map($scoreEntry, $valueScores, $keyScores)); + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('[..., %s => %s, ...]', $this->key, $this->value); + } + + /** + * Returns key + * + * @return TokenInterface + */ + public function getKey() + { + return $this->key; + } + + /** + * Returns value + * + * @return TokenInterface + */ + public function getValue() + { + return $this->value; + } + + /** + * Wraps non token $value into ExactValueToken + * + * @param $value + * @return TokenInterface + */ + private function wrapIntoExactValueToken($value) + { + return $value instanceof TokenInterface ? $value : new ExactValueToken($value); + } + + /** + * Converts instance of \ArrayAccess to key => value array entry + * + * @param \ArrayAccess $object + * + * @return array|null + * @throws \Prophecy\Exception\InvalidArgumentException + */ + private function convertArrayAccessToEntry(\ArrayAccess $object) + { + if (!$this->key instanceof ExactValueToken) { + throw new InvalidArgumentException(sprintf( + 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL. + 'But you used `%s`.', + $this->key + )); + } + + $key = $this->key->getValue(); + + return $object->offsetExists($key) ? array($key => $object[$key]) : array(); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php new file mode 100644 index 0000000..5d41fa4 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php @@ -0,0 +1,82 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Array every entry token. + * + * @author Adrien Brault + */ +class ArrayEveryEntryToken implements TokenInterface +{ + /** + * @var TokenInterface + */ + private $value; + + /** + * @param mixed $value exact value or token + */ + public function __construct($value) + { + if (!$value instanceof TokenInterface) { + $value = new ExactValueToken($value); + } + + $this->value = $value; + } + + /** + * {@inheritdoc} + */ + public function scoreArgument($argument) + { + if (!$argument instanceof \Traversable && !is_array($argument)) { + return false; + } + + $scores = array(); + foreach ($argument as $key => $argumentEntry) { + $scores[] = $this->value->scoreArgument($argumentEntry); + } + + if (empty($scores) || in_array(false, $scores, true)) { + return false; + } + + return array_sum($scores) / count($scores); + } + + /** + * {@inheritdoc} + */ + public function isLast() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function __toString() + { + return sprintf('[%s, ..., %s]', $this->value, $this->value); + } + + /** + * @return TokenInterface + */ + public function getValue() + { + return $this->value; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php new file mode 100644 index 0000000..f45ba20 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php @@ -0,0 +1,75 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Callback-verified token. + * + * @author Konstantin Kudryashov + */ +class CallbackToken implements TokenInterface +{ + private $callback; + + /** + * Initializes token. + * + * @param callable $callback + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackToken, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + } + + /** + * Scores 7 if callback returns true, false otherwise. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + return call_user_func($this->callback, $argument) ? 7 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return 'callback()'; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php new file mode 100644 index 0000000..eab4072 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php @@ -0,0 +1,118 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use SebastianBergmann\Comparator\ComparisonFailure; +use Prophecy\Comparator\Factory as ComparatorFactory; +use Prophecy\Util\StringUtil; + +/** + * Exact value token. + * + * @author Konstantin Kudryashov + */ +class ExactValueToken implements TokenInterface +{ + private $value; + private $string; + private $util; + private $comparatorFactory; + + /** + * Initializes token. + * + * @param mixed $value + * @param StringUtil $util + * @param ComparatorFactory $comparatorFactory + */ + public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null) + { + $this->value = $value; + $this->util = $util ?: new StringUtil(); + + $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); + } + + /** + * Scores 10 if argument matches preset value. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + if (is_object($argument) && is_object($this->value)) { + $comparator = $this->comparatorFactory->getComparatorFor( + $argument, $this->value + ); + + try { + $comparator->assertEquals($argument, $this->value); + return 10; + } catch (ComparisonFailure $failure) { + return false; + } + } + + // If either one is an object it should be castable to a string + if (is_object($argument) xor is_object($this->value)) { + if (is_object($argument) && !method_exists($argument, '__toString')) { + return false; + } + + if (is_object($this->value) && !method_exists($this->value, '__toString')) { + return false; + } + } elseif (is_numeric($argument) && is_numeric($this->value)) { + // noop + } elseif (gettype($argument) !== gettype($this->value)) { + return false; + } + + return $argument == $this->value ? 10 : false; + } + + /** + * Returns preset value against which token checks arguments. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = sprintf('exact(%s)', $this->util->stringify($this->value)); + } + + return $this->string; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php new file mode 100644 index 0000000..0b6d23a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php @@ -0,0 +1,74 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Util\StringUtil; + +/** + * Identical value token. + * + * @author Florian Voutzinos + */ +class IdenticalValueToken implements TokenInterface +{ + private $value; + private $string; + private $util; + + /** + * Initializes token. + * + * @param mixed $value + * @param StringUtil $util + */ + public function __construct($value, StringUtil $util = null) + { + $this->value = $value; + $this->util = $util ?: new StringUtil(); + } + + /** + * Scores 11 if argument matches preset value. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + return $argument === $this->value ? 11 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = sprintf('identical(%s)', $this->util->stringify($this->value)); + } + + return $this->string; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php new file mode 100644 index 0000000..4ee1b25 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php @@ -0,0 +1,80 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Logical AND token. + * + * @author Boris Mikhaylov + */ +class LogicalAndToken implements TokenInterface +{ + private $tokens = array(); + + /** + * @param array $arguments exact values or tokens + */ + public function __construct(array $arguments) + { + foreach ($arguments as $argument) { + if (!$argument instanceof TokenInterface) { + $argument = new ExactValueToken($argument); + } + $this->tokens[] = $argument; + } + } + + /** + * Scores maximum score from scores returned by tokens for this argument if all of them score. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + if (0 === count($this->tokens)) { + return false; + } + + $maxScore = 0; + foreach ($this->tokens as $token) { + $score = $token->scoreArgument($argument); + if (false === $score) { + return false; + } + $maxScore = max($score, $maxScore); + } + + return $maxScore; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('bool(%s)', implode(' AND ', $this->tokens)); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php new file mode 100644 index 0000000..623efa5 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php @@ -0,0 +1,73 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Logical NOT token. + * + * @author Boris Mikhaylov + */ +class LogicalNotToken implements TokenInterface +{ + /** @var \Prophecy\Argument\Token\TokenInterface */ + private $token; + + /** + * @param mixed $value exact value or token + */ + public function __construct($value) + { + $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value); + } + + /** + * Scores 4 when preset token does not match the argument. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + return false === $this->token->scoreArgument($argument) ? 4 : false; + } + + /** + * Returns true if preset token is last. + * + * @return bool|int + */ + public function isLast() + { + return $this->token->isLast(); + } + + /** + * Returns originating token. + * + * @return TokenInterface + */ + public function getOriginatingToken() + { + return $this->token; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('not(%s)', $this->token); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php new file mode 100644 index 0000000..d771077 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php @@ -0,0 +1,104 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use SebastianBergmann\Comparator\ComparisonFailure; +use Prophecy\Comparator\Factory as ComparatorFactory; +use Prophecy\Util\StringUtil; + +/** + * Object state-checker token. + * + * @author Konstantin Kudryashov + */ +class ObjectStateToken implements TokenInterface +{ + private $name; + private $value; + private $util; + private $comparatorFactory; + + /** + * Initializes token. + * + * @param string $methodName + * @param mixed $value Expected return value + * @param null|StringUtil $util + * @param ComparatorFactory $comparatorFactory + */ + public function __construct( + $methodName, + $value, + StringUtil $util = null, + ComparatorFactory $comparatorFactory = null + ) { + $this->name = $methodName; + $this->value = $value; + $this->util = $util ?: new StringUtil; + + $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); + } + + /** + * Scores 8 if argument is an object, which method returns expected value. + * + * @param mixed $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + if (is_object($argument) && method_exists($argument, $this->name)) { + $actual = call_user_func(array($argument, $this->name)); + + $comparator = $this->comparatorFactory->getComparatorFor( + $this->value, $actual + ); + + try { + $comparator->assertEquals($this->value, $actual); + return 8; + } catch (ComparisonFailure $failure) { + return false; + } + } + + if (is_object($argument) && property_exists($argument, $this->name)) { + return $argument->{$this->name} === $this->value ? 8 : false; + } + + return false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('state(%s(), %s)', + $this->name, + $this->util->stringify($this->value) + ); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php new file mode 100644 index 0000000..bd8d423 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php @@ -0,0 +1,67 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * String contains token. + * + * @author Peter Mitchell + */ +class StringContainsToken implements TokenInterface +{ + private $value; + + /** + * Initializes token. + * + * @param string $value + */ + public function __construct($value) + { + $this->value = $value; + } + + public function scoreArgument($argument) + { + return is_string($argument) && strpos($argument, $this->value) !== false ? 6 : false; + } + + /** + * Returns preset value against which token checks arguments. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('contains("%s")', $this->value); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php new file mode 100644 index 0000000..625d3ba --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php @@ -0,0 +1,43 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Argument token interface. + * + * @author Konstantin Kudryashov + */ +interface TokenInterface +{ + /** + * Calculates token match score for provided argument. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument); + + /** + * Returns true if this token prevents check of other tokens (is last one). + * + * @return bool|int + */ + public function isLast(); + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString(); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php new file mode 100644 index 0000000..cb65132 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php @@ -0,0 +1,76 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Value type token. + * + * @author Konstantin Kudryashov + */ +class TypeToken implements TokenInterface +{ + private $type; + + /** + * @param string $type + */ + public function __construct($type) + { + $checker = "is_{$type}"; + if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) { + throw new InvalidArgumentException(sprintf( + 'Type or class name expected as an argument to TypeToken, but got %s.', $type + )); + } + + $this->type = $type; + } + + /** + * Scores 5 if argument has the same type this token was constructed with. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + $checker = "is_{$this->type}"; + if (function_exists($checker)) { + return call_user_func($checker, $argument) ? 5 : false; + } + + return $argument instanceof $this->type ? 5 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('type(%s)', $this->type); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php new file mode 100644 index 0000000..2652235 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php @@ -0,0 +1,162 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Call; + +use Exception; +use Prophecy\Argument\ArgumentsWildcard; + +/** + * Call object. + * + * @author Konstantin Kudryashov + */ +class Call +{ + private $methodName; + private $arguments; + private $returnValue; + private $exception; + private $file; + private $line; + private $scores; + + /** + * Initializes call. + * + * @param string $methodName + * @param array $arguments + * @param mixed $returnValue + * @param Exception $exception + * @param null|string $file + * @param null|int $line + */ + public function __construct($methodName, array $arguments, $returnValue, + Exception $exception = null, $file, $line) + { + $this->methodName = $methodName; + $this->arguments = $arguments; + $this->returnValue = $returnValue; + $this->exception = $exception; + $this->scores = new \SplObjectStorage(); + + if ($file) { + $this->file = $file; + $this->line = intval($line); + } + } + + /** + * Returns called method name. + * + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * Returns called method arguments. + * + * @return array + */ + public function getArguments() + { + return $this->arguments; + } + + /** + * Returns called method return value. + * + * @return null|mixed + */ + public function getReturnValue() + { + return $this->returnValue; + } + + /** + * Returns exception that call thrown. + * + * @return null|Exception + */ + public function getException() + { + return $this->exception; + } + + /** + * Returns callee filename. + * + * @return string + */ + public function getFile() + { + return $this->file; + } + + /** + * Returns callee line number. + * + * @return int + */ + public function getLine() + { + return $this->line; + } + + /** + * Returns short notation for callee place. + * + * @return string + */ + public function getCallPlace() + { + if (null === $this->file) { + return 'unknown'; + } + + return sprintf('%s:%d', $this->file, $this->line); + } + + /** + * Adds the wildcard match score for the provided wildcard. + * + * @param ArgumentsWildcard $wildcard + * @param false|int $score + * + * @return $this + */ + public function addScore(ArgumentsWildcard $wildcard, $score) + { + $this->scores[$wildcard] = $score; + + return $this; + } + + /** + * Returns wildcard match score for the provided wildcard. The score is + * calculated if not already done. + * + * @param ArgumentsWildcard $wildcard + * + * @return false|int False OR integer score (higher - better) + */ + public function getScore(ArgumentsWildcard $wildcard) + { + if (isset($this->scores[$wildcard])) { + return $this->scores[$wildcard]; + } + + return $this->scores[$wildcard] = $wildcard->scoreArguments($this->getArguments()); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php new file mode 100644 index 0000000..d4bdba0 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php @@ -0,0 +1,248 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Call; + +use Prophecy\Exception\Prophecy\MethodProphecyException; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Call\UnexpectedCallException; +use SplObjectStorage; + +/** + * Calls receiver & manager. + * + * @author Konstantin Kudryashov + */ +class CallCenter +{ + private $util; + + /** + * @var Call[] + */ + private $recordedCalls = array(); + + /** + * @var SplObjectStorage + */ + private $unexpectedCalls; + + /** + * Initializes call center. + * + * @param StringUtil $util + */ + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + $this->unexpectedCalls = new SplObjectStorage(); + } + + /** + * Makes and records specific method call for object prophecy. + * + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return mixed Returns null if no promise for prophecy found or promise return value. + * + * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found + */ + public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments) + { + // For efficiency exclude 'args' from the generated backtrace + if (PHP_VERSION_ID >= 50400) { + // Limit backtrace to last 3 calls as we don't use the rest + // Limit argument was introduced in PHP 5.4.0 + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); + } elseif (defined('DEBUG_BACKTRACE_IGNORE_ARGS')) { + // DEBUG_BACKTRACE_IGNORE_ARGS was introduced in PHP 5.3.6 + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + } else { + $backtrace = debug_backtrace(); + } + + $file = $line = null; + if (isset($backtrace[2]) && isset($backtrace[2]['file'])) { + $file = $backtrace[2]['file']; + $line = $backtrace[2]['line']; + } + + // If no method prophecies defined, then it's a dummy, so we'll just return null + if ('__destruct' === strtolower($methodName) || 0 == count($prophecy->getMethodProphecies())) { + $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); + + return null; + } + + // There are method prophecies, so it's a fake/stub. Searching prophecy for this call + $matches = $this->findMethodProphecies($prophecy, $methodName, $arguments); + + // If fake/stub doesn't have method prophecy for this call - throw exception + if (!count($matches)) { + $this->unexpectedCalls->attach(new Call($methodName, $arguments, null, null, $file, $line), $prophecy); + $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); + + return null; + } + + // Sort matches by their score value + @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; }); + + $score = $matches[0][0]; + // If Highest rated method prophecy has a promise - execute it or return null instead + $methodProphecy = $matches[0][1]; + $returnValue = null; + $exception = null; + if ($promise = $methodProphecy->getPromise()) { + try { + $returnValue = $promise->execute($arguments, $prophecy, $methodProphecy); + } catch (\Exception $e) { + $exception = $e; + } + } + + if ($methodProphecy->hasReturnVoid() && $returnValue !== null) { + throw new MethodProphecyException( + "The method \"$methodName\" has a void return type, but the promise returned a value", + $methodProphecy + ); + } + + $this->recordedCalls[] = $call = new Call( + $methodName, $arguments, $returnValue, $exception, $file, $line + ); + $call->addScore($methodProphecy->getArgumentsWildcard(), $score); + + if (null !== $exception) { + throw $exception; + } + + return $returnValue; + } + + /** + * Searches for calls by method name & arguments wildcard. + * + * @param string $methodName + * @param ArgumentsWildcard $wildcard + * + * @return Call[] + */ + public function findCalls($methodName, ArgumentsWildcard $wildcard) + { + $methodName = strtolower($methodName); + + return array_values( + array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) { + return $methodName === strtolower($call->getMethodName()) + && 0 < $call->getScore($wildcard) + ; + }) + ); + } + + /** + * @throws UnexpectedCallException + */ + public function checkUnexpectedCalls() + { + /** @var Call $call */ + foreach ($this->unexpectedCalls as $call) { + $prophecy = $this->unexpectedCalls[$call]; + + // If fake/stub doesn't have method prophecy for this call - throw exception + if (!count($this->findMethodProphecies($prophecy, $call->getMethodName(), $call->getArguments()))) { + throw $this->createUnexpectedCallException($prophecy, $call->getMethodName(), $call->getArguments()); + } + } + } + + private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName, + array $arguments) + { + $classname = get_class($prophecy->reveal()); + $indentationLength = 8; // looks good + $argstring = implode( + ",\n", + $this->indentArguments( + array_map(array($this->util, 'stringify'), $arguments), + $indentationLength + ) + ); + + $expected = array(); + + foreach (call_user_func_array('array_merge', $prophecy->getMethodProphecies()) as $methodProphecy) { + $expected[] = sprintf( + " - %s(\n" . + "%s\n" . + " )", + $methodProphecy->getMethodName(), + implode( + ",\n", + $this->indentArguments( + array_map('strval', $methodProphecy->getArgumentsWildcard()->getTokens()), + $indentationLength + ) + ) + ); + } + + return new UnexpectedCallException( + sprintf( + "Unexpected method call on %s:\n". + " - %s(\n". + "%s\n". + " )\n". + "expected calls were:\n". + "%s", + + $classname, $methodName, $argstring, implode("\n", $expected) + ), + $prophecy, $methodName, $arguments + + ); + } + + private function indentArguments(array $arguments, $indentationLength) + { + return preg_replace_callback( + '/^/m', + function () use ($indentationLength) { + return str_repeat(' ', $indentationLength); + }, + $arguments + ); + } + + /** + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return array + */ + private function findMethodProphecies(ObjectProphecy $prophecy, $methodName, array $arguments) + { + $matches = array(); + foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { + if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { + $matches[] = array($score, $methodProphecy); + } + } + + return $matches; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php new file mode 100644 index 0000000..fa4f578 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php @@ -0,0 +1,44 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use SebastianBergmann\Comparator\Comparator; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Closure comparator. + * + * @author Konstantin Kudryashov + */ +final class ClosureComparator extends Comparator +{ + public function accepts($expected, $actual) + { + return is_object($expected) && $expected instanceof \Closure + && is_object($actual) && $actual instanceof \Closure; + } + + public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()) + { + if ($expected !== $actual) { + throw new ComparisonFailure( + $expected, + $actual, + // we don't need a diff + '', + '', + false, + 'all closures are different if not identical' + ); + } + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php new file mode 100644 index 0000000..2070db1 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php @@ -0,0 +1,47 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use SebastianBergmann\Comparator\Factory as BaseFactory; + +/** + * Prophecy comparator factory. + * + * @author Konstantin Kudryashov + */ +final class Factory extends BaseFactory +{ + /** + * @var Factory + */ + private static $instance; + + public function __construct() + { + parent::__construct(); + + $this->register(new ClosureComparator()); + $this->register(new ProphecyComparator()); + } + + /** + * @return Factory + */ + public static function getInstance() + { + if (self::$instance === null) { + self::$instance = new Factory; + } + + return self::$instance; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php new file mode 100644 index 0000000..298a8e3 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php @@ -0,0 +1,28 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use Prophecy\Prophecy\ProphecyInterface; +use SebastianBergmann\Comparator\ObjectComparator; + +class ProphecyComparator extends ObjectComparator +{ + public function accepts($expected, $actual) + { + return is_object($expected) && is_object($actual) && $actual instanceof ProphecyInterface; + } + + public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()) + { + parent::assertEquals($expected, $actual->reveal(), $delta, $canonicalize, $ignoreCase, $processed); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php new file mode 100644 index 0000000..2b87521 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php @@ -0,0 +1,66 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use ReflectionClass; + +/** + * Cached class doubler. + * Prevents mirroring/creation of the same structure twice. + * + * @author Konstantin Kudryashov + */ +class CachedDoubler extends Doubler +{ + private static $classes = array(); + + /** + * {@inheritdoc} + */ + protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) + { + $classId = $this->generateClassId($class, $interfaces); + if (isset(self::$classes[$classId])) { + return self::$classes[$classId]; + } + + return self::$classes[$classId] = parent::createDoubleClass($class, $interfaces); + } + + /** + * @param ReflectionClass $class + * @param ReflectionClass[] $interfaces + * + * @return string + */ + private function generateClassId(ReflectionClass $class = null, array $interfaces) + { + $parts = array(); + if (null !== $class) { + $parts[] = $class->getName(); + } + foreach ($interfaces as $interface) { + $parts[] = $interface->getName(); + } + foreach ($this->getClassPatches() as $patch) { + $parts[] = get_class($patch); + } + sort($parts); + + return md5(implode('', $parts)); + } + + public function resetCache() + { + self::$classes = array(); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php new file mode 100644 index 0000000..d6d1968 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php @@ -0,0 +1,48 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * Class patch interface. + * Class patches extend doubles functionality or help + * Prophecy to avoid some internal PHP bugs. + * + * @author Konstantin Kudryashov + */ +interface ClassPatchInterface +{ + /** + * Checks if patch supports specific class node. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node); + + /** + * Applies patch to the specific class node. + * + * @param ClassNode $node + * @return void + */ + public function apply(ClassNode $node); + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority(); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php new file mode 100644 index 0000000..9d84309 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php @@ -0,0 +1,76 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; + +/** + * Disable constructor. + * Makes all constructor arguments optional. + * + * @author Konstantin Kudryashov + */ +class DisableConstructorPatch implements ClassPatchInterface +{ + /** + * Checks if class has `__construct` method. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Makes all class constructor arguments optional. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + if (!$node->isExtendable('__construct')) { + return; + } + + if (!$node->hasMethod('__construct')) { + $node->addMethod(new MethodNode('__construct', '')); + + return; + } + + $constructor = $node->getMethod('__construct'); + foreach ($constructor->getArguments() as $argument) { + $argument->setDefault(null); + } + + $constructor->setCode(<< + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * Exception patch for HHVM to remove the stubs from special methods + * + * @author Christophe Coevoet + */ +class HhvmExceptionPatch implements ClassPatchInterface +{ + /** + * Supports exceptions on HHVM. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + if (!defined('HHVM_VERSION')) { + return false; + } + + return 'Exception' === $node->getParentClass() || is_subclass_of($node->getParentClass(), 'Exception'); + } + + /** + * Removes special exception static methods from the doubled methods. + * + * @param ClassNode $node + * + * @return void + */ + public function apply(ClassNode $node) + { + if ($node->hasMethod('setTraceOptions')) { + $node->getMethod('setTraceOptions')->useParentCode(); + } + if ($node->hasMethod('getTraceOptions')) { + $node->getMethod('getTraceOptions')->useParentCode(); + } + } + + /** + * {@inheritdoc} + */ + public function getPriority() + { + return -50; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php new file mode 100644 index 0000000..41ea2fc --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php @@ -0,0 +1,140 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * Remove method functionality from the double which will clash with php keywords. + * + * @author Milan Magudia + */ +class KeywordPatch implements ClassPatchInterface +{ + /** + * Support any class + * + * @param ClassNode $node + * + * @return boolean + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Remove methods that clash with php keywords + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $methodNames = array_keys($node->getMethods()); + $methodsToRemove = array_intersect($methodNames, $this->getKeywords()); + foreach ($methodsToRemove as $methodName) { + $node->removeMethod($methodName); + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 49; + } + + /** + * Returns array of php keywords. + * + * @return array + */ + private function getKeywords() + { + if (\PHP_VERSION_ID >= 70000) { + return array('__halt_compiler'); + } + + return array( + '__halt_compiler', + 'abstract', + 'and', + 'array', + 'as', + 'break', + 'callable', + 'case', + 'catch', + 'class', + 'clone', + 'const', + 'continue', + 'declare', + 'default', + 'die', + 'do', + 'echo', + 'else', + 'elseif', + 'empty', + 'enddeclare', + 'endfor', + 'endforeach', + 'endif', + 'endswitch', + 'endwhile', + 'eval', + 'exit', + 'extends', + 'final', + 'finally', + 'for', + 'foreach', + 'function', + 'global', + 'goto', + 'if', + 'implements', + 'include', + 'include_once', + 'instanceof', + 'insteadof', + 'interface', + 'isset', + 'list', + 'namespace', + 'new', + 'or', + 'print', + 'private', + 'protected', + 'public', + 'require', + 'require_once', + 'return', + 'static', + 'switch', + 'throw', + 'trait', + 'try', + 'unset', + 'use', + 'var', + 'while', + 'xor', + 'yield', + ); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php new file mode 100644 index 0000000..9ff49cd --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php @@ -0,0 +1,94 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; +use Prophecy\PhpDocumentor\ClassAndInterfaceTagRetriever; +use Prophecy\PhpDocumentor\MethodTagRetrieverInterface; + +/** + * Discover Magical API using "@method" PHPDoc format. + * + * @author Thomas Tourlourat + * @author Kévin Dunglas + * @author Théo FIDRY + */ +class MagicCallPatch implements ClassPatchInterface +{ + private $tagRetriever; + + public function __construct(MethodTagRetrieverInterface $tagRetriever = null) + { + $this->tagRetriever = null === $tagRetriever ? new ClassAndInterfaceTagRetriever() : $tagRetriever; + } + + /** + * Support any class + * + * @param ClassNode $node + * + * @return boolean + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Discover Magical API + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $types = array_filter($node->getInterfaces(), function ($interface) { + return 0 !== strpos($interface, 'Prophecy\\'); + }); + $types[] = $node->getParentClass(); + + foreach ($types as $type) { + $reflectionClass = new \ReflectionClass($type); + + while ($reflectionClass) { + $tagList = $this->tagRetriever->getTagList($reflectionClass); + + foreach ($tagList as $tag) { + $methodName = $tag->getMethodName(); + + if (empty($methodName)) { + continue; + } + + if (!$reflectionClass->hasMethod($methodName)) { + $methodNode = new MethodNode($methodName); + $methodNode->setStatic($tag->isStatic()); + $node->addMethod($methodNode); + } + } + + $reflectionClass = $reflectionClass->getParentClass(); + } + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return integer Priority number (higher - earlier) + */ + public function getPriority() + { + return 50; + } +} + diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php new file mode 100644 index 0000000..ef40366 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php @@ -0,0 +1,104 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; +use Prophecy\Doubler\Generator\Node\ArgumentNode; + +/** + * Add Prophecy functionality to the double. + * This is a core class patch for Prophecy. + * + * @author Konstantin Kudryashov + */ +class ProphecySubjectPatch implements ClassPatchInterface +{ + /** + * Always returns true. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Apply Prophecy functionality to class node. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface'); + $node->addProperty('objectProphecyClosure', 'private'); + + foreach ($node->getMethods() as $name => $method) { + if ('__construct' === strtolower($name)) { + continue; + } + + if ($method->getReturnType() === 'void') { + $method->setCode( + '$this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' + ); + } else { + $method->setCode( + 'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' + ); + } + } + + $prophecySetter = new MethodNode('setProphecy'); + $prophecyArgument = new ArgumentNode('prophecy'); + $prophecyArgument->setTypeHint('Prophecy\Prophecy\ProphecyInterface'); + $prophecySetter->addArgument($prophecyArgument); + $prophecySetter->setCode('$this->objectProphecyClosure = function () use ($prophecy) { return $prophecy; };'); + + $prophecyGetter = new MethodNode('getProphecy'); + $prophecyGetter->setCode('return call_user_func($this->objectProphecyClosure);'); + + if ($node->hasMethod('__call')) { + $__call = $node->getMethod('__call'); + } else { + $__call = new MethodNode('__call'); + $__call->addArgument(new ArgumentNode('name')); + $__call->addArgument(new ArgumentNode('arguments')); + + $node->addMethod($__call, true); + } + + $__call->setCode(<<getProphecy(), func_get_arg(0) +); +PHP + ); + + $node->addMethod($prophecySetter, true); + $node->addMethod($prophecyGetter, true); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 0; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php new file mode 100644 index 0000000..9166aee --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php @@ -0,0 +1,57 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * ReflectionClass::newInstance patch. + * Makes first argument of newInstance optional, since it works but signature is misleading + * + * @author Florian Klein + */ +class ReflectionClassNewInstancePatch implements ClassPatchInterface +{ + /** + * Supports ReflectionClass + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return 'ReflectionClass' === $node->getParentClass(); + } + + /** + * Updates newInstance's first argument to make it optional + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + foreach ($node->getMethod('newInstance')->getArguments() as $argument) { + $argument->setDefault(null); + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher = earlier) + */ + public function getPriority() + { + return 50; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php new file mode 100644 index 0000000..ceee94a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php @@ -0,0 +1,123 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; + +/** + * SplFileInfo patch. + * Makes SplFileInfo and derivative classes usable with Prophecy. + * + * @author Konstantin Kudryashov + */ +class SplFileInfoPatch implements ClassPatchInterface +{ + /** + * Supports everything that extends SplFileInfo. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + if (null === $node->getParentClass()) { + return false; + } + return 'SplFileInfo' === $node->getParentClass() + || is_subclass_of($node->getParentClass(), 'SplFileInfo') + ; + } + + /** + * Updated constructor code to call parent one with dummy file argument. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + if ($node->hasMethod('__construct')) { + $constructor = $node->getMethod('__construct'); + } else { + $constructor = new MethodNode('__construct'); + $node->addMethod($constructor); + } + + if ($this->nodeIsDirectoryIterator($node)) { + $constructor->setCode('return parent::__construct("' . __DIR__ . '");'); + + return; + } + + if ($this->nodeIsSplFileObject($node)) { + $filePath = str_replace('\\','\\\\',__FILE__); + $constructor->setCode('return parent::__construct("' . $filePath .'");'); + + return; + } + + if ($this->nodeIsSymfonySplFileInfo($node)) { + $filePath = str_replace('\\','\\\\',__FILE__); + $constructor->setCode('return parent::__construct("' . $filePath .'", "", "");'); + + return; + } + + $constructor->useParentCode(); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 50; + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsDirectoryIterator(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'DirectoryIterator' === $parent + || is_subclass_of($parent, 'DirectoryIterator'); + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsSplFileObject(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'SplFileObject' === $parent + || is_subclass_of($parent, 'SplFileObject'); + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsSymfonySplFileInfo(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'Symfony\\Component\\Finder\\SplFileInfo' === $parent; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php new file mode 100644 index 0000000..b98e943 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php @@ -0,0 +1,95 @@ +implementsAThrowableInterface($node) && $this->doesNotExtendAThrowableClass($node); + } + + /** + * @param ClassNode $node + * @return bool + */ + private function implementsAThrowableInterface(ClassNode $node) + { + foreach ($node->getInterfaces() as $type) { + if (is_a($type, 'Throwable', true)) { + return true; + } + } + + return false; + } + + /** + * @param ClassNode $node + * @return bool + */ + private function doesNotExtendAThrowableClass(ClassNode $node) + { + return !is_a($node->getParentClass(), 'Throwable', true); + } + + /** + * Applies patch to the specific class node. + * + * @param ClassNode $node + * + * @return void + */ + public function apply(ClassNode $node) + { + $this->checkItCanBeDoubled($node); + $this->setParentClassToException($node); + } + + private function checkItCanBeDoubled(ClassNode $node) + { + $className = $node->getParentClass(); + if ($className !== 'stdClass') { + throw new ClassCreatorException( + sprintf( + 'Cannot double concrete class %s as well as implement Traversable', + $className + ), + $node + ); + } + } + + private function setParentClassToException(ClassNode $node) + { + $node->setParentClass('Exception'); + + $node->removeMethod('getMessage'); + $node->removeMethod('getCode'); + $node->removeMethod('getFile'); + $node->removeMethod('getLine'); + $node->removeMethod('getTrace'); + $node->removeMethod('getPrevious'); + $node->removeMethod('getNext'); + $node->removeMethod('getTraceAsString'); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 100; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php new file mode 100644 index 0000000..eea0202 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php @@ -0,0 +1,83 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; + +/** + * Traversable interface patch. + * Forces classes that implement interfaces, that extend Traversable to also implement Iterator. + * + * @author Konstantin Kudryashov + */ +class TraversablePatch implements ClassPatchInterface +{ + /** + * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + if (in_array('Iterator', $node->getInterfaces())) { + return false; + } + if (in_array('IteratorAggregate', $node->getInterfaces())) { + return false; + } + + foreach ($node->getInterfaces() as $interface) { + if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) { + continue; + } + if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) { + continue; + } + if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) { + continue; + } + + return true; + } + + return false; + } + + /** + * Forces class to implement Iterator interface. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $node->addInterface('Iterator'); + + $node->addMethod(new MethodNode('current')); + $node->addMethod(new MethodNode('key')); + $node->addMethod(new MethodNode('next')); + $node->addMethod(new MethodNode('rewind')); + $node->addMethod(new MethodNode('valid')); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 100; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php new file mode 100644 index 0000000..699be3a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php @@ -0,0 +1,22 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +/** + * Core double interface. + * All doubled classes will implement this one. + * + * @author Konstantin Kudryashov + */ +interface DoubleInterface +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php new file mode 100644 index 0000000..a378ae2 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php @@ -0,0 +1,146 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use Doctrine\Instantiator\Instantiator; +use Prophecy\Doubler\ClassPatch\ClassPatchInterface; +use Prophecy\Doubler\Generator\ClassMirror; +use Prophecy\Doubler\Generator\ClassCreator; +use Prophecy\Exception\InvalidArgumentException; +use ReflectionClass; + +/** + * Cached class doubler. + * Prevents mirroring/creation of the same structure twice. + * + * @author Konstantin Kudryashov + */ +class Doubler +{ + private $mirror; + private $creator; + private $namer; + + /** + * @var ClassPatchInterface[] + */ + private $patches = array(); + + /** + * @var \Doctrine\Instantiator\Instantiator + */ + private $instantiator; + + /** + * Initializes doubler. + * + * @param ClassMirror $mirror + * @param ClassCreator $creator + * @param NameGenerator $namer + */ + public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null, + NameGenerator $namer = null) + { + $this->mirror = $mirror ?: new ClassMirror; + $this->creator = $creator ?: new ClassCreator; + $this->namer = $namer ?: new NameGenerator; + } + + /** + * Returns list of registered class patches. + * + * @return ClassPatchInterface[] + */ + public function getClassPatches() + { + return $this->patches; + } + + /** + * Registers new class patch. + * + * @param ClassPatchInterface $patch + */ + public function registerClassPatch(ClassPatchInterface $patch) + { + $this->patches[] = $patch; + + @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) { + return $patch2->getPriority() - $patch1->getPriority(); + }); + } + + /** + * Creates double from specific class or/and list of interfaces. + * + * @param ReflectionClass $class + * @param ReflectionClass[] $interfaces Array of ReflectionClass instances + * @param array $args Constructor arguments + * + * @return DoubleInterface + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function double(ReflectionClass $class = null, array $interfaces, array $args = null) + { + foreach ($interfaces as $interface) { + if (!$interface instanceof ReflectionClass) { + throw new InvalidArgumentException(sprintf( + "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". + "a second argument to `Doubler::double(...)`, but got %s.", + is_object($interface) ? get_class($interface).' class' : gettype($interface) + )); + } + } + + $classname = $this->createDoubleClass($class, $interfaces); + $reflection = new ReflectionClass($classname); + + if (null !== $args) { + return $reflection->newInstanceArgs($args); + } + if ((null === $constructor = $reflection->getConstructor()) + || ($constructor->isPublic() && !$constructor->isFinal())) { + return $reflection->newInstance(); + } + + if (!$this->instantiator) { + $this->instantiator = new Instantiator(); + } + + return $this->instantiator->instantiate($classname); + } + + /** + * Creates double class and returns its FQN. + * + * @param ReflectionClass $class + * @param ReflectionClass[] $interfaces + * + * @return string + */ + protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) + { + $name = $this->namer->name($class, $interfaces); + $node = $this->mirror->reflect($class, $interfaces); + + foreach ($this->patches as $patch) { + if ($patch->supports($node)) { + $patch->apply($node); + } + } + + $this->creator->create($name, $node); + + return $name; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php new file mode 100644 index 0000000..891faa8 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php @@ -0,0 +1,129 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +/** + * Class code creator. + * Generates PHP code for specific class node tree. + * + * @author Konstantin Kudryashov + */ +class ClassCodeGenerator +{ + /** + * @var TypeHintReference + */ + private $typeHintReference; + + public function __construct(TypeHintReference $typeHintReference = null) + { + $this->typeHintReference = $typeHintReference ?: new TypeHintReference(); + } + + /** + * Generates PHP code for class node. + * + * @param string $classname + * @param Node\ClassNode $class + * + * @return string + */ + public function generate($classname, Node\ClassNode $class) + { + $parts = explode('\\', $classname); + $classname = array_pop($parts); + $namespace = implode('\\', $parts); + + $code = sprintf("class %s extends \%s implements %s {\n", + $classname, $class->getParentClass(), implode(', ', + array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces()) + ) + ); + + foreach ($class->getProperties() as $name => $visibility) { + $code .= sprintf("%s \$%s;\n", $visibility, $name); + } + $code .= "\n"; + + foreach ($class->getMethods() as $method) { + $code .= $this->generateMethod($method)."\n"; + } + $code .= "\n}"; + + return sprintf("namespace %s {\n%s\n}", $namespace, $code); + } + + private function generateMethod(Node\MethodNode $method) + { + $php = sprintf("%s %s function %s%s(%s)%s {\n", + $method->getVisibility(), + $method->isStatic() ? 'static' : '', + $method->returnsReference() ? '&':'', + $method->getName(), + implode(', ', $this->generateArguments($method->getArguments())), + $this->getReturnType($method) + ); + $php .= $method->getCode()."\n"; + + return $php.'}'; + } + + /** + * @return string + */ + private function getReturnType(Node\MethodNode $method) + { + if (version_compare(PHP_VERSION, '7.1', '>=')) { + if ($method->hasReturnType()) { + return $method->hasNullableReturnType() + ? sprintf(': ?%s', $method->getReturnType()) + : sprintf(': %s', $method->getReturnType()); + } + } + + if (version_compare(PHP_VERSION, '7.0', '>=')) { + return $method->hasReturnType() && $method->getReturnType() !== 'void' + ? sprintf(': %s', $method->getReturnType()) + : ''; + } + + return ''; + } + + private function generateArguments(array $arguments) + { + $typeHintReference = $this->typeHintReference; + return array_map(function (Node\ArgumentNode $argument) use ($typeHintReference) { + $php = ''; + + if (version_compare(PHP_VERSION, '7.1', '>=')) { + $php .= $argument->isNullable() ? '?' : ''; + } + + if ($hint = $argument->getTypeHint()) { + $php .= $typeHintReference->isBuiltInParamTypeHint($hint) ? $hint : '\\'.$hint; + } + + $php .= ' '.($argument->isPassedByReference() ? '&' : ''); + + $php .= $argument->isVariadic() ? '...' : ''; + + $php .= '$'.$argument->getName(); + + if ($argument->isOptional() && !$argument->isVariadic()) { + $php .= ' = '.var_export($argument->getDefault(), true); + } + + return $php; + }, $arguments); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php new file mode 100644 index 0000000..882a4a4 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php @@ -0,0 +1,67 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +use Prophecy\Exception\Doubler\ClassCreatorException; + +/** + * Class creator. + * Creates specific class in current environment. + * + * @author Konstantin Kudryashov + */ +class ClassCreator +{ + private $generator; + + /** + * Initializes creator. + * + * @param ClassCodeGenerator $generator + */ + public function __construct(ClassCodeGenerator $generator = null) + { + $this->generator = $generator ?: new ClassCodeGenerator; + } + + /** + * Creates class. + * + * @param string $classname + * @param Node\ClassNode $class + * + * @return mixed + * + * @throws \Prophecy\Exception\Doubler\ClassCreatorException + */ + public function create($classname, Node\ClassNode $class) + { + $code = $this->generator->generate($classname, $class); + $return = eval($code); + + if (!class_exists($classname, false)) { + if (count($class->getInterfaces())) { + throw new ClassCreatorException(sprintf( + 'Could not double `%s` and implement interfaces: [%s].', + $class->getParentClass(), implode(', ', $class->getInterfaces()) + ), $class); + } + + throw new ClassCreatorException( + sprintf('Could not double `%s`.', $class->getParentClass()), + $class + ); + } + + return $return; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php new file mode 100644 index 0000000..6dab2d9 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php @@ -0,0 +1,260 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Exception\Doubler\ClassMirrorException; +use ReflectionClass; +use ReflectionMethod; +use ReflectionParameter; + +/** + * Class mirror. + * Core doubler class. Mirrors specific class and/or interfaces into class node tree. + * + * @author Konstantin Kudryashov + */ +class ClassMirror +{ + private static $reflectableMethods = array( + '__construct', + '__destruct', + '__sleep', + '__wakeup', + '__toString', + '__call', + '__invoke' + ); + + /** + * Reflects provided arguments into class node. + * + * @param ReflectionClass $class + * @param ReflectionClass[] $interfaces + * + * @return Node\ClassNode + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function reflect(ReflectionClass $class = null, array $interfaces) + { + $node = new Node\ClassNode; + + if (null !== $class) { + if (true === $class->isInterface()) { + throw new InvalidArgumentException(sprintf( + "Could not reflect %s as a class, because it\n". + "is interface - use the second argument instead.", + $class->getName() + )); + } + + $this->reflectClassToNode($class, $node); + } + + foreach ($interfaces as $interface) { + if (!$interface instanceof ReflectionClass) { + throw new InvalidArgumentException(sprintf( + "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". + "a second argument to `ClassMirror::reflect(...)`, but got %s.", + is_object($interface) ? get_class($interface).' class' : gettype($interface) + )); + } + if (false === $interface->isInterface()) { + throw new InvalidArgumentException(sprintf( + "Could not reflect %s as an interface, because it\n". + "is class - use the first argument instead.", + $interface->getName() + )); + } + + $this->reflectInterfaceToNode($interface, $node); + } + + $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface'); + + return $node; + } + + private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node) + { + if (true === $class->isFinal()) { + throw new ClassMirrorException(sprintf( + 'Could not reflect class %s as it is marked final.', $class->getName() + ), $class); + } + + $node->setParentClass($class->getName()); + + foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) { + if (false === $method->isProtected()) { + continue; + } + + $this->reflectMethodToNode($method, $node); + } + + foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { + if (0 === strpos($method->getName(), '_') + && !in_array($method->getName(), self::$reflectableMethods)) { + continue; + } + + if (true === $method->isFinal()) { + $node->addUnextendableMethod($method->getName()); + continue; + } + + $this->reflectMethodToNode($method, $node); + } + } + + private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node) + { + $node->addInterface($interface->getName()); + + foreach ($interface->getMethods() as $method) { + $this->reflectMethodToNode($method, $node); + } + } + + private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode) + { + $node = new Node\MethodNode($method->getName()); + + if (true === $method->isProtected()) { + $node->setVisibility('protected'); + } + + if (true === $method->isStatic()) { + $node->setStatic(); + } + + if (true === $method->returnsReference()) { + $node->setReturnsReference(); + } + + if (version_compare(PHP_VERSION, '7.0', '>=') && $method->hasReturnType()) { + $returnType = PHP_VERSION_ID >= 70100 ? $method->getReturnType()->getName() : (string) $method->getReturnType(); + $returnTypeLower = strtolower($returnType); + + if ('self' === $returnTypeLower) { + $returnType = $method->getDeclaringClass()->getName(); + } + if ('parent' === $returnTypeLower) { + $returnType = $method->getDeclaringClass()->getParentClass()->getName(); + } + + $node->setReturnType($returnType); + + if (version_compare(PHP_VERSION, '7.1', '>=') && $method->getReturnType()->allowsNull()) { + $node->setNullableReturnType(true); + } + } + + if (is_array($params = $method->getParameters()) && count($params)) { + foreach ($params as $param) { + $this->reflectArgumentToNode($param, $node); + } + } + + $classNode->addMethod($node); + } + + private function reflectArgumentToNode(ReflectionParameter $parameter, Node\MethodNode $methodNode) + { + $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName(); + $node = new Node\ArgumentNode($name); + + $node->setTypeHint($this->getTypeHint($parameter)); + + if ($this->isVariadic($parameter)) { + $node->setAsVariadic(); + } + + if ($this->hasDefaultValue($parameter)) { + $node->setDefault($this->getDefaultValue($parameter)); + } + + if ($parameter->isPassedByReference()) { + $node->setAsPassedByReference(); + } + + $node->setAsNullable($this->isNullable($parameter)); + + $methodNode->addArgument($node); + } + + private function hasDefaultValue(ReflectionParameter $parameter) + { + if ($this->isVariadic($parameter)) { + return false; + } + + if ($parameter->isDefaultValueAvailable()) { + return true; + } + + return $parameter->isOptional() || $this->isNullable($parameter); + } + + private function getDefaultValue(ReflectionParameter $parameter) + { + if (!$parameter->isDefaultValueAvailable()) { + return null; + } + + return $parameter->getDefaultValue(); + } + + private function getTypeHint(ReflectionParameter $parameter) + { + if (null !== $className = $this->getParameterClassName($parameter)) { + return $className; + } + + if (true === $parameter->isArray()) { + return 'array'; + } + + if (version_compare(PHP_VERSION, '5.4', '>=') && true === $parameter->isCallable()) { + return 'callable'; + } + + if (version_compare(PHP_VERSION, '7.0', '>=') && true === $parameter->hasType()) { + return PHP_VERSION_ID >= 70100 ? $parameter->getType()->getName() : (string) $parameter->getType(); + } + + return null; + } + + private function isVariadic(ReflectionParameter $parameter) + { + return PHP_VERSION_ID >= 50600 && $parameter->isVariadic(); + } + + private function isNullable(ReflectionParameter $parameter) + { + return $parameter->allowsNull() && null !== $this->getTypeHint($parameter); + } + + private function getParameterClassName(ReflectionParameter $parameter) + { + try { + return $parameter->getClass() ? $parameter->getClass()->getName() : null; + } catch (\ReflectionException $e) { + preg_match('/\[\s\<\w+?>\s([\w,\\\]+)/s', $parameter, $matches); + + return isset($matches[1]) ? $matches[1] : null; + } + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php new file mode 100644 index 0000000..dd29b68 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php @@ -0,0 +1,102 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +/** + * Argument node. + * + * @author Konstantin Kudryashov + */ +class ArgumentNode +{ + private $name; + private $typeHint; + private $default; + private $optional = false; + private $byReference = false; + private $isVariadic = false; + private $isNullable = false; + + /** + * @param string $name + */ + public function __construct($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } + + public function getTypeHint() + { + return $this->typeHint; + } + + public function setTypeHint($typeHint = null) + { + $this->typeHint = $typeHint; + } + + public function hasDefault() + { + return $this->isOptional() && !$this->isVariadic(); + } + + public function getDefault() + { + return $this->default; + } + + public function setDefault($default = null) + { + $this->optional = true; + $this->default = $default; + } + + public function isOptional() + { + return $this->optional; + } + + public function setAsPassedByReference($byReference = true) + { + $this->byReference = $byReference; + } + + public function isPassedByReference() + { + return $this->byReference; + } + + public function setAsVariadic($isVariadic = true) + { + $this->isVariadic = $isVariadic; + } + + public function isVariadic() + { + return $this->isVariadic; + } + + public function isNullable() + { + return $this->isNullable; + } + + public function setAsNullable($isNullable = true) + { + $this->isNullable = $isNullable; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php new file mode 100644 index 0000000..f7bd285 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php @@ -0,0 +1,169 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +use Prophecy\Exception\Doubler\MethodNotExtendableException; +use Prophecy\Exception\InvalidArgumentException; + +/** + * Class node. + * + * @author Konstantin Kudryashov + */ +class ClassNode +{ + private $parentClass = 'stdClass'; + private $interfaces = array(); + private $properties = array(); + private $unextendableMethods = array(); + + /** + * @var MethodNode[] + */ + private $methods = array(); + + public function getParentClass() + { + return $this->parentClass; + } + + /** + * @param string $class + */ + public function setParentClass($class) + { + $this->parentClass = $class ?: 'stdClass'; + } + + /** + * @return string[] + */ + public function getInterfaces() + { + return $this->interfaces; + } + + /** + * @param string $interface + */ + public function addInterface($interface) + { + if ($this->hasInterface($interface)) { + return; + } + + array_unshift($this->interfaces, $interface); + } + + /** + * @param string $interface + * + * @return bool + */ + public function hasInterface($interface) + { + return in_array($interface, $this->interfaces); + } + + public function getProperties() + { + return $this->properties; + } + + public function addProperty($name, $visibility = 'public') + { + $visibility = strtolower($visibility); + + if (!in_array($visibility, array('public', 'private', 'protected'))) { + throw new InvalidArgumentException(sprintf( + '`%s` property visibility is not supported.', $visibility + )); + } + + $this->properties[$name] = $visibility; + } + + /** + * @return MethodNode[] + */ + public function getMethods() + { + return $this->methods; + } + + public function addMethod(MethodNode $method, $force = false) + { + if (!$this->isExtendable($method->getName())){ + $message = sprintf( + 'Method `%s` is not extendable, so can not be added.', $method->getName() + ); + throw new MethodNotExtendableException($message, $this->getParentClass(), $method->getName()); + } + + if ($force || !isset($this->methods[$method->getName()])) { + $this->methods[$method->getName()] = $method; + } + } + + public function removeMethod($name) + { + unset($this->methods[$name]); + } + + /** + * @param string $name + * + * @return MethodNode|null + */ + public function getMethod($name) + { + return $this->hasMethod($name) ? $this->methods[$name] : null; + } + + /** + * @param string $name + * + * @return bool + */ + public function hasMethod($name) + { + return isset($this->methods[$name]); + } + + /** + * @return string[] + */ + public function getUnextendableMethods() + { + return $this->unextendableMethods; + } + + /** + * @param string $unextendableMethod + */ + public function addUnextendableMethod($unextendableMethod) + { + if (!$this->isExtendable($unextendableMethod)){ + return; + } + $this->unextendableMethods[] = $unextendableMethod; + } + + /** + * @param string $method + * @return bool + */ + public function isExtendable($method) + { + return !in_array($method, $this->unextendableMethods); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php new file mode 100644 index 0000000..c74b483 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php @@ -0,0 +1,198 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +use Prophecy\Doubler\Generator\TypeHintReference; +use Prophecy\Exception\InvalidArgumentException; + +/** + * Method node. + * + * @author Konstantin Kudryashov + */ +class MethodNode +{ + private $name; + private $code; + private $visibility = 'public'; + private $static = false; + private $returnsReference = false; + private $returnType; + private $nullableReturnType = false; + + /** + * @var ArgumentNode[] + */ + private $arguments = array(); + + /** + * @var TypeHintReference + */ + private $typeHintReference; + + /** + * @param string $name + * @param string $code + */ + public function __construct($name, $code = null, TypeHintReference $typeHintReference = null) + { + $this->name = $name; + $this->code = $code; + $this->typeHintReference = $typeHintReference ?: new TypeHintReference(); + } + + public function getVisibility() + { + return $this->visibility; + } + + /** + * @param string $visibility + */ + public function setVisibility($visibility) + { + $visibility = strtolower($visibility); + + if (!in_array($visibility, array('public', 'private', 'protected'))) { + throw new InvalidArgumentException(sprintf( + '`%s` method visibility is not supported.', $visibility + )); + } + + $this->visibility = $visibility; + } + + public function isStatic() + { + return $this->static; + } + + public function setStatic($static = true) + { + $this->static = (bool) $static; + } + + public function returnsReference() + { + return $this->returnsReference; + } + + public function setReturnsReference() + { + $this->returnsReference = true; + } + + public function getName() + { + return $this->name; + } + + public function addArgument(ArgumentNode $argument) + { + $this->arguments[] = $argument; + } + + /** + * @return ArgumentNode[] + */ + public function getArguments() + { + return $this->arguments; + } + + public function hasReturnType() + { + return null !== $this->returnType; + } + + /** + * @param string $type + */ + public function setReturnType($type = null) + { + if ($type === '' || $type === null) { + $this->returnType = null; + return; + } + $typeMap = array( + 'double' => 'float', + 'real' => 'float', + 'boolean' => 'bool', + 'integer' => 'int', + ); + if (isset($typeMap[$type])) { + $type = $typeMap[$type]; + } + $this->returnType = $this->typeHintReference->isBuiltInReturnTypeHint($type) ? + $type : + '\\' . ltrim($type, '\\'); + } + + public function getReturnType() + { + return $this->returnType; + } + + /** + * @param bool $bool + */ + public function setNullableReturnType($bool = true) + { + $this->nullableReturnType = (bool) $bool; + } + + /** + * @return bool + */ + public function hasNullableReturnType() + { + return $this->nullableReturnType; + } + + /** + * @param string $code + */ + public function setCode($code) + { + $this->code = $code; + } + + public function getCode() + { + if ($this->returnsReference) + { + return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');"; + } + + return (string) $this->code; + } + + public function useParentCode() + { + $this->code = sprintf( + 'return parent::%s(%s);', $this->getName(), implode(', ', + array_map(array($this, 'generateArgument'), $this->arguments) + ) + ); + } + + private function generateArgument(ArgumentNode $arg) + { + $argument = '$'.$arg->getName(); + + if ($arg->isVariadic()) { + $argument = '...'.$argument; + } + + return $argument; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php new file mode 100644 index 0000000..d720b15 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php @@ -0,0 +1,22 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +/** + * Reflection interface. + * All reflected classes implement this interface. + * + * @author Konstantin Kudryashov + */ +interface ReflectionInterface +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php new file mode 100644 index 0000000..ce95202 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php @@ -0,0 +1,46 @@ += 50400; + + case 'bool': + case 'float': + case 'int': + case 'string': + return PHP_VERSION_ID >= 70000; + + case 'iterable': + return PHP_VERSION_ID >= 70100; + + case 'object': + return PHP_VERSION_ID >= 70200; + + default: + return false; + } + } + + public function isBuiltInReturnTypeHint($type) + { + if ($type === 'void') { + return PHP_VERSION_ID >= 70100; + } + + return $this->isBuiltInParamTypeHint($type); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php new file mode 100644 index 0000000..8a99c4c --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php @@ -0,0 +1,127 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use Prophecy\Exception\Doubler\DoubleException; +use Prophecy\Exception\Doubler\ClassNotFoundException; +use Prophecy\Exception\Doubler\InterfaceNotFoundException; +use ReflectionClass; + +/** + * Lazy double. + * Gives simple interface to describe double before creating it. + * + * @author Konstantin Kudryashov + */ +class LazyDouble +{ + private $doubler; + private $class; + private $interfaces = array(); + private $arguments = null; + private $double; + + /** + * Initializes lazy double. + * + * @param Doubler $doubler + */ + public function __construct(Doubler $doubler) + { + $this->doubler = $doubler; + } + + /** + * Tells doubler to use specific class as parent one for double. + * + * @param string|ReflectionClass $class + * + * @throws \Prophecy\Exception\Doubler\ClassNotFoundException + * @throws \Prophecy\Exception\Doubler\DoubleException + */ + public function setParentClass($class) + { + if (null !== $this->double) { + throw new DoubleException('Can not extend class with already instantiated double.'); + } + + if (!$class instanceof ReflectionClass) { + if (!class_exists($class)) { + throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class); + } + + $class = new ReflectionClass($class); + } + + $this->class = $class; + } + + /** + * Tells doubler to implement specific interface with double. + * + * @param string|ReflectionClass $interface + * + * @throws \Prophecy\Exception\Doubler\InterfaceNotFoundException + * @throws \Prophecy\Exception\Doubler\DoubleException + */ + public function addInterface($interface) + { + if (null !== $this->double) { + throw new DoubleException( + 'Can not implement interface with already instantiated double.' + ); + } + + if (!$interface instanceof ReflectionClass) { + if (!interface_exists($interface)) { + throw new InterfaceNotFoundException( + sprintf('Interface %s not found.', $interface), + $interface + ); + } + + $interface = new ReflectionClass($interface); + } + + $this->interfaces[] = $interface; + } + + /** + * Sets constructor arguments. + * + * @param array $arguments + */ + public function setArguments(array $arguments = null) + { + $this->arguments = $arguments; + } + + /** + * Creates double instance or returns already created one. + * + * @return DoubleInterface + */ + public function getInstance() + { + if (null === $this->double) { + if (null !== $this->arguments) { + return $this->double = $this->doubler->double( + $this->class, $this->interfaces, $this->arguments + ); + } + + $this->double = $this->doubler->double($this->class, $this->interfaces); + } + + return $this->double; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php new file mode 100644 index 0000000..d67ec6a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use ReflectionClass; + +/** + * Name generator. + * Generates classname for double. + * + * @author Konstantin Kudryashov + */ +class NameGenerator +{ + private static $counter = 1; + + /** + * Generates name. + * + * @param ReflectionClass $class + * @param ReflectionClass[] $interfaces + * + * @return string + */ + public function name(ReflectionClass $class = null, array $interfaces) + { + $parts = array(); + + if (null !== $class) { + $parts[] = $class->getName(); + } else { + foreach ($interfaces as $interface) { + $parts[] = $interface->getShortName(); + } + } + + if (!count($parts)) { + $parts[] = 'stdClass'; + } + + return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php new file mode 100644 index 0000000..48ed225 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php @@ -0,0 +1,40 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Call; + +use Prophecy\Exception\Prophecy\ObjectProphecyException; +use Prophecy\Prophecy\ObjectProphecy; + +class UnexpectedCallException extends ObjectProphecyException +{ + private $methodName; + private $arguments; + + public function __construct($message, ObjectProphecy $objectProphecy, + $methodName, array $arguments) + { + parent::__construct($message, $objectProphecy); + + $this->methodName = $methodName; + $this->arguments = $arguments; + } + + public function getMethodName() + { + return $this->methodName; + } + + public function getArguments() + { + return $this->arguments; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php new file mode 100644 index 0000000..822918a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php @@ -0,0 +1,31 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +class ClassCreatorException extends \RuntimeException implements DoublerException +{ + private $node; + + public function __construct($message, ClassNode $node) + { + parent::__construct($message); + + $this->node = $node; + } + + public function getClassNode() + { + return $this->node; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php new file mode 100644 index 0000000..8fc53b8 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php @@ -0,0 +1,31 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use ReflectionClass; + +class ClassMirrorException extends \RuntimeException implements DoublerException +{ + private $class; + + public function __construct($message, ReflectionClass $class) + { + parent::__construct($message); + + $this->class = $class; + } + + public function getReflectedClass() + { + return $this->class; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php new file mode 100644 index 0000000..5bc826d --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php @@ -0,0 +1,33 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class ClassNotFoundException extends DoubleException +{ + private $classname; + + /** + * @param string $message + * @param string $classname + */ + public function __construct($message, $classname) + { + parent::__construct($message); + + $this->classname = $classname; + } + + public function getClassname() + { + return $this->classname; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php new file mode 100644 index 0000000..6642a58 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use RuntimeException; + +class DoubleException extends RuntimeException implements DoublerException +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php new file mode 100644 index 0000000..9d6be17 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use Prophecy\Exception\Exception; + +interface DoublerException extends Exception +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php new file mode 100644 index 0000000..e344dea --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php @@ -0,0 +1,20 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class InterfaceNotFoundException extends ClassNotFoundException +{ + public function getInterfaceName() + { + return $this->getClassname(); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php new file mode 100644 index 0000000..56f47b1 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php @@ -0,0 +1,41 @@ +methodName = $methodName; + $this->className = $className; + } + + + /** + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * @return string + */ + public function getClassName() + { + return $this->className; + } + + } diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php new file mode 100644 index 0000000..a538349 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php @@ -0,0 +1,60 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class MethodNotFoundException extends DoubleException +{ + /** + * @var string|object + */ + private $classname; + + /** + * @var string + */ + private $methodName; + + /** + * @var array + */ + private $arguments; + + /** + * @param string $message + * @param string|object $classname + * @param string $methodName + * @param null|Argument\ArgumentsWildcard|array $arguments + */ + public function __construct($message, $classname, $methodName, $arguments = null) + { + parent::__construct($message); + + $this->classname = $classname; + $this->methodName = $methodName; + $this->arguments = $arguments; + } + + public function getClassname() + { + return $this->classname; + } + + public function getMethodName() + { + return $this->methodName; + } + + public function getArguments() + { + return $this->arguments; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php new file mode 100644 index 0000000..6303049 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php @@ -0,0 +1,41 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class ReturnByReferenceException extends DoubleException +{ + private $classname; + private $methodName; + + /** + * @param string $message + * @param string $classname + * @param string $methodName + */ + public function __construct($message, $classname, $methodName) + { + parent::__construct($message); + + $this->classname = $classname; + $this->methodName = $methodName; + } + + public function getClassname() + { + return $this->classname; + } + + public function getMethodName() + { + return $this->methodName; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php new file mode 100644 index 0000000..ac9fe4d --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php @@ -0,0 +1,26 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception; + +/** + * Core Prophecy exception interface. + * All Prophecy exceptions implement it. + * + * @author Konstantin Kudryashov + */ +interface Exception +{ + /** + * @return string + */ + public function getMessage(); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php new file mode 100644 index 0000000..bc91c69 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php @@ -0,0 +1,16 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception; + +class InvalidArgumentException extends \InvalidArgumentException implements Exception +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php new file mode 100644 index 0000000..a00dfb0 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php @@ -0,0 +1,51 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Prophecy\ObjectProphecy; + +class AggregateException extends \RuntimeException implements PredictionException +{ + private $exceptions = array(); + private $objectProphecy; + + public function append(PredictionException $exception) + { + $message = $exception->getMessage(); + $message = strtr($message, array("\n" => "\n "))."\n"; + $message = empty($this->exceptions) ? $message : "\n" . $message; + + $this->message = rtrim($this->message.$message); + $this->exceptions[] = $exception; + } + + /** + * @return PredictionException[] + */ + public function getExceptions() + { + return $this->exceptions; + } + + public function setObjectProphecy(ObjectProphecy $objectProphecy) + { + $this->objectProphecy = $objectProphecy; + } + + /** + * @return ObjectProphecy + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php new file mode 100644 index 0000000..bbbbc3d --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php @@ -0,0 +1,24 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use RuntimeException; + +/** + * Basic failed prediction exception. + * Use it for custom prediction failures. + * + * @author Konstantin Kudryashov + */ +class FailedPredictionException extends RuntimeException implements PredictionException +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php new file mode 100644 index 0000000..05ea4aa --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Exception\Prophecy\MethodProphecyException; + +class NoCallsException extends MethodProphecyException implements PredictionException +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php new file mode 100644 index 0000000..2596b1e --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Exception\Exception; + +interface PredictionException extends Exception +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php new file mode 100644 index 0000000..9d90543 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php @@ -0,0 +1,31 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Prophecy\MethodProphecy; + +class UnexpectedCallsCountException extends UnexpectedCallsException +{ + private $expectedCount; + + public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls) + { + parent::__construct($message, $methodProphecy, $calls); + + $this->expectedCount = intval($count); + } + + public function getExpectedCount() + { + return $this->expectedCount; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php new file mode 100644 index 0000000..7a99c2d --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php @@ -0,0 +1,32 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\Prophecy\MethodProphecyException; + +class UnexpectedCallsException extends MethodProphecyException implements PredictionException +{ + private $calls = array(); + + public function __construct($message, MethodProphecy $methodProphecy, array $calls) + { + parent::__construct($message, $methodProphecy); + + $this->calls = $calls; + } + + public function getCalls() + { + return $this->calls; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php new file mode 100644 index 0000000..1b03eaf --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php @@ -0,0 +1,34 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Prophecy\MethodProphecy; + +class MethodProphecyException extends ObjectProphecyException +{ + private $methodProphecy; + + public function __construct($message, MethodProphecy $methodProphecy) + { + parent::__construct($message, $methodProphecy->getObjectProphecy()); + + $this->methodProphecy = $methodProphecy; + } + + /** + * @return MethodProphecy + */ + public function getMethodProphecy() + { + return $this->methodProphecy; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php new file mode 100644 index 0000000..e345402 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php @@ -0,0 +1,34 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Prophecy\ObjectProphecy; + +class ObjectProphecyException extends \RuntimeException implements ProphecyException +{ + private $objectProphecy; + + public function __construct($message, ObjectProphecy $objectProphecy) + { + parent::__construct($message); + + $this->objectProphecy = $objectProphecy; + } + + /** + * @return ObjectProphecy + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php new file mode 100644 index 0000000..9157332 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Exception\Exception; + +interface ProphecyException extends Exception +{ +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php new file mode 100644 index 0000000..209821c --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php @@ -0,0 +1,69 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; +use phpDocumentor\Reflection\DocBlock\Tags\Method; + +/** + * @author Théo FIDRY + * + * @internal + */ +final class ClassAndInterfaceTagRetriever implements MethodTagRetrieverInterface +{ + private $classRetriever; + + public function __construct(MethodTagRetrieverInterface $classRetriever = null) + { + if (null !== $classRetriever) { + $this->classRetriever = $classRetriever; + + return; + } + + $this->classRetriever = class_exists('phpDocumentor\Reflection\DocBlockFactory') && class_exists('phpDocumentor\Reflection\Types\ContextFactory') + ? new ClassTagRetriever() + : new LegacyClassTagRetriever() + ; + } + + /** + * @param \ReflectionClass $reflectionClass + * + * @return LegacyMethodTag[]|Method[] + */ + public function getTagList(\ReflectionClass $reflectionClass) + { + return array_merge( + $this->classRetriever->getTagList($reflectionClass), + $this->getInterfacesTagList($reflectionClass) + ); + } + + /** + * @param \ReflectionClass $reflectionClass + * + * @return LegacyMethodTag[]|Method[] + */ + private function getInterfacesTagList(\ReflectionClass $reflectionClass) + { + $interfaces = $reflectionClass->getInterfaces(); + $tagList = array(); + + foreach($interfaces as $interface) { + $tagList = array_merge($tagList, $this->classRetriever->getTagList($interface)); + } + + return $tagList; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php new file mode 100644 index 0000000..9817a44 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php @@ -0,0 +1,60 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tags\Method; +use phpDocumentor\Reflection\DocBlockFactory; +use phpDocumentor\Reflection\Types\ContextFactory; + +/** + * @author Théo FIDRY + * + * @internal + */ +final class ClassTagRetriever implements MethodTagRetrieverInterface +{ + private $docBlockFactory; + private $contextFactory; + + public function __construct() + { + $this->docBlockFactory = DocBlockFactory::createInstance(); + $this->contextFactory = new ContextFactory(); + } + + /** + * @param \ReflectionClass $reflectionClass + * + * @return Method[] + */ + public function getTagList(\ReflectionClass $reflectionClass) + { + try { + $phpdoc = $this->docBlockFactory->create( + $reflectionClass, + $this->contextFactory->createFromReflector($reflectionClass) + ); + + $methods = array(); + + foreach ($phpdoc->getTagsByName('method') as $tag) { + if ($tag instanceof Method) { + $methods[] = $tag; + } + } + + return $methods; + } catch (\InvalidArgumentException $e) { + return array(); + } + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php new file mode 100644 index 0000000..c0dec3d --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/LegacyClassTagRetriever.php @@ -0,0 +1,35 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock; +use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; + +/** + * @author Théo FIDRY + * + * @internal + */ +final class LegacyClassTagRetriever implements MethodTagRetrieverInterface +{ + /** + * @param \ReflectionClass $reflectionClass + * + * @return LegacyMethodTag[] + */ + public function getTagList(\ReflectionClass $reflectionClass) + { + $phpdoc = new DocBlock($reflectionClass->getDocComment()); + + return $phpdoc->getTagsByName('method'); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php new file mode 100644 index 0000000..d3989da --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php @@ -0,0 +1,30 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tag\MethodTag as LegacyMethodTag; +use phpDocumentor\Reflection\DocBlock\Tags\Method; + +/** + * @author Théo FIDRY + * + * @internal + */ +interface MethodTagRetrieverInterface +{ + /** + * @param \ReflectionClass $reflectionClass + * + * @return LegacyMethodTag[]|Method[] + */ + public function getTagList(\ReflectionClass $reflectionClass); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php new file mode 100644 index 0000000..b478736 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php @@ -0,0 +1,86 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Argument\Token\AnyValuesToken; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\NoCallsException; + +/** + * Call prediction. + * + * @author Konstantin Kudryashov + */ +class CallPrediction implements PredictionInterface +{ + private $util; + + /** + * Initializes prediction. + * + * @param StringUtil $util + */ + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + } + + /** + * Tests that there was at least one call. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws \Prophecy\Exception\Prediction\NoCallsException + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if (count($calls)) { + return; + } + + $methodCalls = $object->findProphecyMethodCalls( + $method->getMethodName(), + new ArgumentsWildcard(array(new AnyValuesToken)) + ); + + if (count($methodCalls)) { + throw new NoCallsException(sprintf( + "No calls have been made that match:\n". + " %s->%s(%s)\n". + "but expected at least one.\n". + "Recorded `%s(...)` calls:\n%s", + + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + $method->getMethodName(), + $this->util->stringifyCalls($methodCalls) + ), $method); + } + + throw new NoCallsException(sprintf( + "No calls have been made that match:\n". + " %s->%s(%s)\n". + "but expected at least one.", + + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard() + ), $method); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php new file mode 100644 index 0000000..31c6c57 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php @@ -0,0 +1,107 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Argument\Token\AnyValuesToken; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\UnexpectedCallsCountException; + +/** + * Prediction interface. + * Predictions are logical test blocks, tied to `should...` keyword. + * + * @author Konstantin Kudryashov + */ +class CallTimesPrediction implements PredictionInterface +{ + private $times; + private $util; + + /** + * Initializes prediction. + * + * @param int $times + * @param StringUtil $util + */ + public function __construct($times, StringUtil $util = null) + { + $this->times = intval($times); + $this->util = $util ?: new StringUtil; + } + + /** + * Tests that there was exact amount of calls made. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws \Prophecy\Exception\Prediction\UnexpectedCallsCountException + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if ($this->times == count($calls)) { + return; + } + + $methodCalls = $object->findProphecyMethodCalls( + $method->getMethodName(), + new ArgumentsWildcard(array(new AnyValuesToken)) + ); + + if (count($calls)) { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but %d were made:\n%s", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + count($calls), + $this->util->stringifyCalls($calls) + ); + } elseif (count($methodCalls)) { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but none were made.\n". + "Recorded `%s(...)` calls:\n%s", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + $method->getMethodName(), + $this->util->stringifyCalls($methodCalls) + ); + } else { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but none were made.", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard() + ); + } + + throw new UnexpectedCallsCountException($message, $method, $this->times, $calls); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php new file mode 100644 index 0000000..44bc782 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php @@ -0,0 +1,65 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use Closure; + +/** + * Callback prediction. + * + * @author Konstantin Kudryashov + */ +class CallbackPrediction implements PredictionInterface +{ + private $callback; + + /** + * Initializes callback prediction. + * + * @param callable $callback Custom callback + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackPrediction, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + } + + /** + * Executes preset callback. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + $callback = $this->callback; + + if ($callback instanceof Closure && method_exists('Closure', 'bind')) { + $callback = Closure::bind($callback, $object); + } + + call_user_func($callback, $calls, $object, $method); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php new file mode 100644 index 0000000..46ac5bf --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php @@ -0,0 +1,68 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\UnexpectedCallsException; + +/** + * No calls prediction. + * + * @author Konstantin Kudryashov + */ +class NoCallsPrediction implements PredictionInterface +{ + private $util; + + /** + * Initializes prediction. + * + * @param null|StringUtil $util + */ + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + } + + /** + * Tests that there were no calls made. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws \Prophecy\Exception\Prediction\UnexpectedCallsException + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if (!count($calls)) { + return; + } + + $verb = count($calls) === 1 ? 'was' : 'were'; + + throw new UnexpectedCallsException(sprintf( + "No calls expected that match:\n". + " %s->%s(%s)\n". + "but %d %s made:\n%s", + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + count($calls), + $verb, + $this->util->stringifyCalls($calls) + ), $method, $calls); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php new file mode 100644 index 0000000..f7fb06a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php @@ -0,0 +1,37 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Prediction interface. + * Predictions are logical test blocks, tied to `should...` keyword. + * + * @author Konstantin Kudryashov + */ +interface PredictionInterface +{ + /** + * Tests that double fulfilled prediction. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws object + * @return void + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php new file mode 100644 index 0000000..5f406bf --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php @@ -0,0 +1,66 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use Closure; + +/** + * Callback promise. + * + * @author Konstantin Kudryashov + */ +class CallbackPromise implements PromiseInterface +{ + private $callback; + + /** + * Initializes callback promise. + * + * @param callable $callback Custom callback + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackPromise, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + } + + /** + * Evaluates promise callback. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @return mixed + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + $callback = $this->callback; + + if ($callback instanceof Closure && method_exists('Closure', 'bind')) { + $callback = Closure::bind($callback, $object); + } + + return call_user_func($callback, $args, $object, $method); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php new file mode 100644 index 0000000..382537b --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php @@ -0,0 +1,35 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Promise interface. + * Promises are logical blocks, tied to `will...` keyword. + * + * @author Konstantin Kudryashov + */ +interface PromiseInterface +{ + /** + * Evaluates promise. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @return mixed + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php new file mode 100644 index 0000000..39bfeea --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php @@ -0,0 +1,61 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Return argument promise. + * + * @author Konstantin Kudryashov + */ +class ReturnArgumentPromise implements PromiseInterface +{ + /** + * @var int + */ + private $index; + + /** + * Initializes callback promise. + * + * @param int $index The zero-indexed number of the argument to return + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($index = 0) + { + if (!is_int($index) || $index < 0) { + throw new InvalidArgumentException(sprintf( + 'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.', + $index + )); + } + $this->index = $index; + } + + /** + * Returns nth argument if has one, null otherwise. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @return null|mixed + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + return count($args) > $this->index ? $args[$this->index] : null; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php new file mode 100644 index 0000000..c7d5ac5 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php @@ -0,0 +1,55 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Return promise. + * + * @author Konstantin Kudryashov + */ +class ReturnPromise implements PromiseInterface +{ + private $returnValues = array(); + + /** + * Initializes promise. + * + * @param array $returnValues Array of values + */ + public function __construct(array $returnValues) + { + $this->returnValues = $returnValues; + } + + /** + * Returns saved values one by one until last one, then continuously returns last value. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @return mixed + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + $value = array_shift($this->returnValues); + + if (!count($this->returnValues)) { + $this->returnValues[] = $value; + } + + return $value; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php new file mode 100644 index 0000000..26ec19e --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php @@ -0,0 +1,100 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Doctrine\Instantiator\Instantiator; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use ReflectionClass; + +/** + * Throw promise. + * + * @author Konstantin Kudryashov + */ +class ThrowPromise implements PromiseInterface +{ + private $exception; + + /** + * @var \Doctrine\Instantiator\Instantiator + */ + private $instantiator; + + /** + * Initializes promise. + * + * @param string|\Exception|\Throwable $exception Exception class name or instance + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($exception) + { + if (is_string($exception)) { + if ((!class_exists($exception) && !interface_exists($exception)) || !$this->isAValidThrowable($exception)) { + throw new InvalidArgumentException(sprintf( + 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', + $exception + )); + } + } elseif (!$exception instanceof \Exception && !$exception instanceof \Throwable) { + throw new InvalidArgumentException(sprintf( + 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', + is_object($exception) ? get_class($exception) : gettype($exception) + )); + } + + $this->exception = $exception; + } + + /** + * Throws predefined exception. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws object + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + if (is_string($this->exception)) { + $classname = $this->exception; + $reflection = new ReflectionClass($classname); + $constructor = $reflection->getConstructor(); + + if ($constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) { + throw $reflection->newInstance(); + } + + if (!$this->instantiator) { + $this->instantiator = new Instantiator(); + } + + throw $this->instantiator->instantiate($classname); + } + + throw $this->exception; + } + + /** + * @param string $exception + * + * @return bool + */ + private function isAValidThrowable($exception) + { + return is_a($exception, 'Exception', true) + || is_a($exception, 'Throwable', true); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php new file mode 100644 index 0000000..f33364c --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php @@ -0,0 +1,522 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +use Prophecy\Argument; +use Prophecy\Prophet; +use Prophecy\Promise; +use Prophecy\Prediction; +use Prophecy\Exception\Doubler\MethodNotFoundException; +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Exception\Prophecy\MethodProphecyException; + +/** + * Method prophecy. + * + * @author Konstantin Kudryashov + */ +class MethodProphecy +{ + private $objectProphecy; + private $methodName; + private $argumentsWildcard; + private $promise; + private $prediction; + private $checkedPredictions = array(); + private $bound = false; + private $voidReturnType = false; + + /** + * Initializes method prophecy. + * + * @param ObjectProphecy $objectProphecy + * @param string $methodName + * @param null|Argument\ArgumentsWildcard|array $arguments + * + * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found + */ + public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments = null) + { + $double = $objectProphecy->reveal(); + if (!method_exists($double, $methodName)) { + throw new MethodNotFoundException(sprintf( + 'Method `%s::%s()` is not defined.', get_class($double), $methodName + ), get_class($double), $methodName, $arguments); + } + + $this->objectProphecy = $objectProphecy; + $this->methodName = $methodName; + + $reflectedMethod = new \ReflectionMethod($double, $methodName); + if ($reflectedMethod->isFinal()) { + throw new MethodProphecyException(sprintf( + "Can not add prophecy for a method `%s::%s()`\n". + "as it is a final method.", + get_class($double), + $methodName + ), $this); + } + + if (null !== $arguments) { + $this->withArguments($arguments); + } + + if (version_compare(PHP_VERSION, '7.0', '>=') && true === $reflectedMethod->hasReturnType()) { + $type = PHP_VERSION_ID >= 70100 ? $reflectedMethod->getReturnType()->getName() : (string) $reflectedMethod->getReturnType(); + + if ('void' === $type) { + $this->voidReturnType = true; + } + + $this->will(function () use ($type) { + switch ($type) { + case 'void': return; + case 'string': return ''; + case 'float': return 0.0; + case 'int': return 0; + case 'bool': return false; + case 'array': return array(); + + case 'callable': + case 'Closure': + return function () {}; + + case 'Traversable': + case 'Generator': + // Remove eval() when minimum version >=5.5 + /** @var callable $generator */ + $generator = eval('return function () { yield; };'); + return $generator(); + + default: + $prophet = new Prophet; + return $prophet->prophesize($type)->reveal(); + } + }); + } + } + + /** + * Sets argument wildcard. + * + * @param array|Argument\ArgumentsWildcard $arguments + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function withArguments($arguments) + { + if (is_array($arguments)) { + $arguments = new Argument\ArgumentsWildcard($arguments); + } + + if (!$arguments instanceof Argument\ArgumentsWildcard) { + throw new InvalidArgumentException(sprintf( + "Either an array or an instance of ArgumentsWildcard expected as\n". + 'a `MethodProphecy::withArguments()` argument, but got %s.', + gettype($arguments) + )); + } + + $this->argumentsWildcard = $arguments; + + return $this; + } + + /** + * Sets custom promise to the prophecy. + * + * @param callable|Promise\PromiseInterface $promise + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function will($promise) + { + if (is_callable($promise)) { + $promise = new Promise\CallbackPromise($promise); + } + + if (!$promise instanceof Promise\PromiseInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PromiseInterface, but got %s.', + gettype($promise) + )); + } + + $this->bindToObjectProphecy(); + $this->promise = $promise; + + return $this; + } + + /** + * Sets return promise to the prophecy. + * + * @see \Prophecy\Promise\ReturnPromise + * + * @return $this + */ + public function willReturn() + { + if ($this->voidReturnType) { + throw new MethodProphecyException( + "The method \"$this->methodName\" has a void return type, and so cannot return anything", + $this + ); + } + + return $this->will(new Promise\ReturnPromise(func_get_args())); + } + + /** + * @param array $items + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function willYield($items) + { + if ($this->voidReturnType) { + throw new MethodProphecyException( + "The method \"$this->methodName\" has a void return type, and so cannot yield anything", + $this + ); + } + + if (!is_array($items)) { + throw new InvalidArgumentException(sprintf( + 'Expected array, but got %s.', + gettype($items) + )); + } + + // Remove eval() when minimum version >=5.5 + /** @var callable $generator */ + $generator = eval('return function() use ($items) { + foreach ($items as $key => $value) { + yield $key => $value; + } + };'); + + return $this->will($generator); + } + + /** + * Sets return argument promise to the prophecy. + * + * @param int $index The zero-indexed number of the argument to return + * + * @see \Prophecy\Promise\ReturnArgumentPromise + * + * @return $this + */ + public function willReturnArgument($index = 0) + { + if ($this->voidReturnType) { + throw new MethodProphecyException("The method \"$this->methodName\" has a void return type", $this); + } + + return $this->will(new Promise\ReturnArgumentPromise($index)); + } + + /** + * Sets throw promise to the prophecy. + * + * @see \Prophecy\Promise\ThrowPromise + * + * @param string|\Exception $exception Exception class or instance + * + * @return $this + */ + public function willThrow($exception) + { + return $this->will(new Promise\ThrowPromise($exception)); + } + + /** + * Sets custom prediction to the prophecy. + * + * @param callable|Prediction\PredictionInterface $prediction + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function should($prediction) + { + if (is_callable($prediction)) { + $prediction = new Prediction\CallbackPrediction($prediction); + } + + if (!$prediction instanceof Prediction\PredictionInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PredictionInterface, but got %s.', + gettype($prediction) + )); + } + + $this->bindToObjectProphecy(); + $this->prediction = $prediction; + + return $this; + } + + /** + * Sets call prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallPrediction + * + * @return $this + */ + public function shouldBeCalled() + { + return $this->should(new Prediction\CallPrediction); + } + + /** + * Sets no calls prediction to the prophecy. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * + * @return $this + */ + public function shouldNotBeCalled() + { + return $this->should(new Prediction\NoCallsPrediction); + } + + /** + * Sets call times prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @param $count + * + * @return $this + */ + public function shouldBeCalledTimes($count) + { + return $this->should(new Prediction\CallTimesPrediction($count)); + } + + /** + * Sets call times prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @return $this + */ + public function shouldBeCalledOnce() + { + return $this->shouldBeCalledTimes(1); + } + + /** + * Checks provided prediction immediately. + * + * @param callable|Prediction\PredictionInterface $prediction + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function shouldHave($prediction) + { + if (is_callable($prediction)) { + $prediction = new Prediction\CallbackPrediction($prediction); + } + + if (!$prediction instanceof Prediction\PredictionInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PredictionInterface, but got %s.', + gettype($prediction) + )); + } + + if (null === $this->promise && !$this->voidReturnType) { + $this->willReturn(); + } + + $calls = $this->getObjectProphecy()->findProphecyMethodCalls( + $this->getMethodName(), + $this->getArgumentsWildcard() + ); + + try { + $prediction->check($calls, $this->getObjectProphecy(), $this); + $this->checkedPredictions[] = $prediction; + } catch (\Exception $e) { + $this->checkedPredictions[] = $prediction; + + throw $e; + } + + return $this; + } + + /** + * Checks call prediction. + * + * @see \Prophecy\Prediction\CallPrediction + * + * @return $this + */ + public function shouldHaveBeenCalled() + { + return $this->shouldHave(new Prediction\CallPrediction); + } + + /** + * Checks no calls prediction. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * + * @return $this + */ + public function shouldNotHaveBeenCalled() + { + return $this->shouldHave(new Prediction\NoCallsPrediction); + } + + /** + * Checks no calls prediction. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * @deprecated + * + * @return $this + */ + public function shouldNotBeenCalled() + { + return $this->shouldNotHaveBeenCalled(); + } + + /** + * Checks call times prediction. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @param int $count + * + * @return $this + */ + public function shouldHaveBeenCalledTimes($count) + { + return $this->shouldHave(new Prediction\CallTimesPrediction($count)); + } + + /** + * Checks call times prediction. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @return $this + */ + public function shouldHaveBeenCalledOnce() + { + return $this->shouldHaveBeenCalledTimes(1); + } + + /** + * Checks currently registered [with should(...)] prediction. + */ + public function checkPrediction() + { + if (null === $this->prediction) { + return; + } + + $this->shouldHave($this->prediction); + } + + /** + * Returns currently registered promise. + * + * @return null|Promise\PromiseInterface + */ + public function getPromise() + { + return $this->promise; + } + + /** + * Returns currently registered prediction. + * + * @return null|Prediction\PredictionInterface + */ + public function getPrediction() + { + return $this->prediction; + } + + /** + * Returns predictions that were checked on this object. + * + * @return Prediction\PredictionInterface[] + */ + public function getCheckedPredictions() + { + return $this->checkedPredictions; + } + + /** + * Returns object prophecy this method prophecy is tied to. + * + * @return ObjectProphecy + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } + + /** + * Returns method name. + * + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * Returns arguments wildcard. + * + * @return Argument\ArgumentsWildcard + */ + public function getArgumentsWildcard() + { + return $this->argumentsWildcard; + } + + /** + * @return bool + */ + public function hasReturnVoid() + { + return $this->voidReturnType; + } + + private function bindToObjectProphecy() + { + if ($this->bound) { + return; + } + + $this->getObjectProphecy()->addMethodProphecy($this); + $this->bound = true; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php new file mode 100644 index 0000000..11b87cf --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php @@ -0,0 +1,286 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +use SebastianBergmann\Comparator\ComparisonFailure; +use Prophecy\Comparator\Factory as ComparatorFactory; +use Prophecy\Call\Call; +use Prophecy\Doubler\LazyDouble; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Call\CallCenter; +use Prophecy\Exception\Prophecy\ObjectProphecyException; +use Prophecy\Exception\Prophecy\MethodProphecyException; +use Prophecy\Exception\Prediction\AggregateException; +use Prophecy\Exception\Prediction\PredictionException; + +/** + * Object prophecy. + * + * @author Konstantin Kudryashov + */ +class ObjectProphecy implements ProphecyInterface +{ + private $lazyDouble; + private $callCenter; + private $revealer; + private $comparatorFactory; + + /** + * @var MethodProphecy[][] + */ + private $methodProphecies = array(); + + /** + * Initializes object prophecy. + * + * @param LazyDouble $lazyDouble + * @param CallCenter $callCenter + * @param RevealerInterface $revealer + * @param ComparatorFactory $comparatorFactory + */ + public function __construct( + LazyDouble $lazyDouble, + CallCenter $callCenter = null, + RevealerInterface $revealer = null, + ComparatorFactory $comparatorFactory = null + ) { + $this->lazyDouble = $lazyDouble; + $this->callCenter = $callCenter ?: new CallCenter; + $this->revealer = $revealer ?: new Revealer; + + $this->comparatorFactory = $comparatorFactory ?: ComparatorFactory::getInstance(); + } + + /** + * Forces double to extend specific class. + * + * @param string $class + * + * @return $this + */ + public function willExtend($class) + { + $this->lazyDouble->setParentClass($class); + + return $this; + } + + /** + * Forces double to implement specific interface. + * + * @param string $interface + * + * @return $this + */ + public function willImplement($interface) + { + $this->lazyDouble->addInterface($interface); + + return $this; + } + + /** + * Sets constructor arguments. + * + * @param array $arguments + * + * @return $this + */ + public function willBeConstructedWith(array $arguments = null) + { + $this->lazyDouble->setArguments($arguments); + + return $this; + } + + /** + * Reveals double. + * + * @return object + * + * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface + */ + public function reveal() + { + $double = $this->lazyDouble->getInstance(); + + if (null === $double || !$double instanceof ProphecySubjectInterface) { + throw new ObjectProphecyException( + "Generated double must implement ProphecySubjectInterface, but it does not.\n". + 'It seems you have wrongly configured doubler without required ClassPatch.', + $this + ); + } + + $double->setProphecy($this); + + return $double; + } + + /** + * Adds method prophecy to object prophecy. + * + * @param MethodProphecy $methodProphecy + * + * @throws \Prophecy\Exception\Prophecy\MethodProphecyException If method prophecy doesn't + * have arguments wildcard + */ + public function addMethodProphecy(MethodProphecy $methodProphecy) + { + $argumentsWildcard = $methodProphecy->getArgumentsWildcard(); + if (null === $argumentsWildcard) { + throw new MethodProphecyException(sprintf( + "Can not add prophecy for a method `%s::%s()`\n". + "as you did not specify arguments wildcard for it.", + get_class($this->reveal()), + $methodProphecy->getMethodName() + ), $methodProphecy); + } + + $methodName = strtolower($methodProphecy->getMethodName()); + + if (!isset($this->methodProphecies[$methodName])) { + $this->methodProphecies[$methodName] = array(); + } + + $this->methodProphecies[$methodName][] = $methodProphecy; + } + + /** + * Returns either all or related to single method prophecies. + * + * @param null|string $methodName + * + * @return MethodProphecy[] + */ + public function getMethodProphecies($methodName = null) + { + if (null === $methodName) { + return $this->methodProphecies; + } + + $methodName = strtolower($methodName); + + if (!isset($this->methodProphecies[$methodName])) { + return array(); + } + + return $this->methodProphecies[$methodName]; + } + + /** + * Makes specific method call. + * + * @param string $methodName + * @param array $arguments + * + * @return mixed + */ + public function makeProphecyMethodCall($methodName, array $arguments) + { + $arguments = $this->revealer->reveal($arguments); + $return = $this->callCenter->makeCall($this, $methodName, $arguments); + + return $this->revealer->reveal($return); + } + + /** + * Finds calls by method name & arguments wildcard. + * + * @param string $methodName + * @param ArgumentsWildcard $wildcard + * + * @return Call[] + */ + public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard) + { + return $this->callCenter->findCalls($methodName, $wildcard); + } + + /** + * Checks that registered method predictions do not fail. + * + * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail + * @throws \Prophecy\Exception\Call\UnexpectedCallException + */ + public function checkProphecyMethodsPredictions() + { + $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal()))); + $exception->setObjectProphecy($this); + + $this->callCenter->checkUnexpectedCalls(); + + foreach ($this->methodProphecies as $prophecies) { + foreach ($prophecies as $prophecy) { + try { + $prophecy->checkPrediction(); + } catch (PredictionException $e) { + $exception->append($e); + } + } + } + + if (count($exception->getExceptions())) { + throw $exception; + } + } + + /** + * Creates new method prophecy using specified method name and arguments. + * + * @param string $methodName + * @param array $arguments + * + * @return MethodProphecy + */ + public function __call($methodName, array $arguments) + { + $arguments = new ArgumentsWildcard($this->revealer->reveal($arguments)); + + foreach ($this->getMethodProphecies($methodName) as $prophecy) { + $argumentsWildcard = $prophecy->getArgumentsWildcard(); + $comparator = $this->comparatorFactory->getComparatorFor( + $argumentsWildcard, $arguments + ); + + try { + $comparator->assertEquals($argumentsWildcard, $arguments); + return $prophecy; + } catch (ComparisonFailure $failure) {} + } + + return new MethodProphecy($this, $methodName, $arguments); + } + + /** + * Tries to get property value from double. + * + * @param string $name + * + * @return mixed + */ + public function __get($name) + { + return $this->reveal()->$name; + } + + /** + * Tries to set property value to double. + * + * @param string $name + * @param mixed $value + */ + public function __set($name, $value) + { + $this->reveal()->$name = $this->revealer->reveal($value); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php new file mode 100644 index 0000000..462f15a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php @@ -0,0 +1,27 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Core Prophecy interface. + * + * @author Konstantin Kudryashov + */ +interface ProphecyInterface +{ + /** + * Reveals prophecy object (double) . + * + * @return object + */ + public function reveal(); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php new file mode 100644 index 0000000..2d83958 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php @@ -0,0 +1,34 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Controllable doubles interface. + * + * @author Konstantin Kudryashov + */ +interface ProphecySubjectInterface +{ + /** + * Sets subject prophecy. + * + * @param ProphecyInterface $prophecy + */ + public function setProphecy(ProphecyInterface $prophecy); + + /** + * Returns subject prophecy. + * + * @return ProphecyInterface + */ + public function getProphecy(); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php new file mode 100644 index 0000000..60ecdac --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php @@ -0,0 +1,44 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Basic prophecies revealer. + * + * @author Konstantin Kudryashov + */ +class Revealer implements RevealerInterface +{ + /** + * Unwraps value(s). + * + * @param mixed $value + * + * @return mixed + */ + public function reveal($value) + { + if (is_array($value)) { + return array_map(array($this, __FUNCTION__), $value); + } + + if (!is_object($value)) { + return $value; + } + + if ($value instanceof ProphecyInterface) { + $value = $value->reveal(); + } + + return $value; + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php new file mode 100644 index 0000000..ffc82bb --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php @@ -0,0 +1,29 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Prophecies revealer interface. + * + * @author Konstantin Kudryashov + */ +interface RevealerInterface +{ + /** + * Unwraps value(s). + * + * @param mixed $value + * + * @return mixed + */ + public function reveal($value); +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophet.php new file mode 100644 index 0000000..d37c92a --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Prophet.php @@ -0,0 +1,138 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy; + +use Prophecy\Doubler\CachedDoubler; +use Prophecy\Doubler\Doubler; +use Prophecy\Doubler\LazyDouble; +use Prophecy\Doubler\ClassPatch; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\RevealerInterface; +use Prophecy\Prophecy\Revealer; +use Prophecy\Call\CallCenter; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\PredictionException; +use Prophecy\Exception\Prediction\AggregateException; + +/** + * Prophet creates prophecies. + * + * @author Konstantin Kudryashov + */ +class Prophet +{ + private $doubler; + private $revealer; + private $util; + + /** + * @var ObjectProphecy[] + */ + private $prophecies = array(); + + /** + * Initializes Prophet. + * + * @param null|Doubler $doubler + * @param null|RevealerInterface $revealer + * @param null|StringUtil $util + */ + public function __construct( + Doubler $doubler = null, + RevealerInterface $revealer = null, + StringUtil $util = null + ) { + if (null === $doubler) { + $doubler = new CachedDoubler(); + $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch); + $doubler->registerClassPatch(new ClassPatch\TraversablePatch); + $doubler->registerClassPatch(new ClassPatch\ThrowablePatch); + $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch); + $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch); + $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch); + $doubler->registerClassPatch(new ClassPatch\HhvmExceptionPatch()); + $doubler->registerClassPatch(new ClassPatch\MagicCallPatch); + $doubler->registerClassPatch(new ClassPatch\KeywordPatch); + } + + $this->doubler = $doubler; + $this->revealer = $revealer ?: new Revealer; + $this->util = $util ?: new StringUtil; + } + + /** + * Creates new object prophecy. + * + * @param null|string $classOrInterface Class or interface name + * + * @return ObjectProphecy + */ + public function prophesize($classOrInterface = null) + { + $this->prophecies[] = $prophecy = new ObjectProphecy( + new LazyDouble($this->doubler), + new CallCenter($this->util), + $this->revealer + ); + + if ($classOrInterface && class_exists($classOrInterface)) { + return $prophecy->willExtend($classOrInterface); + } + + if ($classOrInterface && interface_exists($classOrInterface)) { + return $prophecy->willImplement($classOrInterface); + } + + return $prophecy; + } + + /** + * Returns all created object prophecies. + * + * @return ObjectProphecy[] + */ + public function getProphecies() + { + return $this->prophecies; + } + + /** + * Returns Doubler instance assigned to this Prophet. + * + * @return Doubler + */ + public function getDoubler() + { + return $this->doubler; + } + + /** + * Checks all predictions defined by prophecies of this Prophet. + * + * @throws Exception\Prediction\AggregateException If any prediction fails + */ + public function checkPredictions() + { + $exception = new AggregateException("Some predictions failed:\n"); + foreach ($this->prophecies as $prophecy) { + try { + $prophecy->checkProphecyMethodsPredictions(); + } catch (PredictionException $e) { + $exception->append($e); + } + } + + if (count($exception->getExceptions())) { + throw $exception; + } + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php new file mode 100644 index 0000000..1090a80 --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php @@ -0,0 +1,210 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * This class is a modification from sebastianbergmann/exporter + * @see https://github.com/sebastianbergmann/exporter + */ +class ExportUtil +{ + /** + * Exports a value as a string + * + * The output of this method is similar to the output of print_r(), but + * improved in various aspects: + * + * - NULL is rendered as "null" (instead of "") + * - TRUE is rendered as "true" (instead of "1") + * - FALSE is rendered as "false" (instead of "") + * - Strings are always quoted with single quotes + * - Carriage returns and newlines are normalized to \n + * - Recursion and repeated rendering is treated properly + * + * @param mixed $value + * @param int $indentation The indentation level of the 2nd+ line + * @return string + */ + public static function export($value, $indentation = 0) + { + return self::recursiveExport($value, $indentation); + } + + /** + * Converts an object to an array containing all of its private, protected + * and public properties. + * + * @param mixed $value + * @return array + */ + public static function toArray($value) + { + if (!is_object($value)) { + return (array) $value; + } + + $array = array(); + + foreach ((array) $value as $key => $val) { + // properties are transformed to keys in the following way: + // private $property => "\0Classname\0property" + // protected $property => "\0*\0property" + // public $property => "property" + if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) { + $key = $matches[1]; + } + + // See https://github.com/php/php-src/commit/5721132 + if ($key === "\0gcdata") { + continue; + } + + $array[$key] = $val; + } + + // Some internal classes like SplObjectStorage don't work with the + // above (fast) mechanism nor with reflection in Zend. + // Format the output similarly to print_r() in this case + if ($value instanceof \SplObjectStorage) { + // However, the fast method does work in HHVM, and exposes the + // internal implementation. Hide it again. + if (property_exists('\SplObjectStorage', '__storage')) { + unset($array['__storage']); + } elseif (property_exists('\SplObjectStorage', 'storage')) { + unset($array['storage']); + } + + if (property_exists('\SplObjectStorage', '__key')) { + unset($array['__key']); + } + + foreach ($value as $key => $val) { + $array[spl_object_hash($val)] = array( + 'obj' => $val, + 'inf' => $value->getInfo(), + ); + } + } + + return $array; + } + + /** + * Recursive implementation of export + * + * @param mixed $value The value to export + * @param int $indentation The indentation level of the 2nd+ line + * @param \SebastianBergmann\RecursionContext\Context $processed Previously processed objects + * @return string + * @see SebastianBergmann\Exporter\Exporter::export + */ + protected static function recursiveExport(&$value, $indentation, $processed = null) + { + if ($value === null) { + return 'null'; + } + + if ($value === true) { + return 'true'; + } + + if ($value === false) { + return 'false'; + } + + if (is_float($value) && floatval(intval($value)) === $value) { + return "$value.0"; + } + + if (is_resource($value)) { + return sprintf( + 'resource(%d) of type (%s)', + $value, + get_resource_type($value) + ); + } + + if (is_string($value)) { + // Match for most non printable chars somewhat taking multibyte chars into account + if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) { + return 'Binary String: 0x' . bin2hex($value); + } + + return "'" . + str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . + "'"; + } + + $whitespace = str_repeat(' ', 4 * $indentation); + + if (!$processed) { + $processed = new Context; + } + + if (is_array($value)) { + if (($key = $processed->contains($value)) !== false) { + return 'Array &' . $key; + } + + $array = $value; + $key = $processed->add($value); + $values = ''; + + if (count($array) > 0) { + foreach ($array as $k => $v) { + $values .= sprintf( + '%s %s => %s' . "\n", + $whitespace, + self::recursiveExport($k, $indentation), + self::recursiveExport($value[$k], $indentation + 1, $processed) + ); + } + + $values = "\n" . $values . $whitespace; + } + + return sprintf('Array &%s (%s)', $key, $values); + } + + if (is_object($value)) { + $class = get_class($value); + + if ($hash = $processed->contains($value)) { + return sprintf('%s:%s Object', $class, $hash); + } + + $hash = $processed->add($value); + $values = ''; + $array = self::toArray($value); + + if (count($array) > 0) { + foreach ($array as $k => $v) { + $values .= sprintf( + '%s %s => %s' . "\n", + $whitespace, + self::recursiveExport($k, $indentation), + self::recursiveExport($v, $indentation + 1, $processed) + ); + } + + $values = "\n" . $values . $whitespace; + } + + return sprintf('%s:%s Object (%s)', $class, $hash, $values); + } + + return var_export($value, true); + } +} diff --git a/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php new file mode 100644 index 0000000..ba4faff --- /dev/null +++ b/class/payment/paypal/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php @@ -0,0 +1,99 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Util; + +use Prophecy\Call\Call; + +/** + * String utility. + * + * @author Konstantin Kudryashov + */ +class StringUtil +{ + private $verbose; + + /** + * @param bool $verbose + */ + public function __construct($verbose = true) + { + $this->verbose = $verbose; + } + + /** + * Stringifies any provided value. + * + * @param mixed $value + * @param boolean $exportObject + * + * @return string + */ + public function stringify($value, $exportObject = true) + { + if (is_array($value)) { + if (range(0, count($value) - 1) === array_keys($value)) { + return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']'; + } + + $stringify = array($this, __FUNCTION__); + + return '['.implode(', ', array_map(function ($item, $key) use ($stringify) { + return (is_integer($key) ? $key : '"'.$key.'"'). + ' => '.call_user_func($stringify, $item); + }, $value, array_keys($value))).']'; + } + if (is_resource($value)) { + return get_resource_type($value).':'.$value; + } + if (is_object($value)) { + return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value)); + } + if (true === $value || false === $value) { + return $value ? 'true' : 'false'; + } + if (is_string($value)) { + $str = sprintf('"%s"', str_replace("\n", '\\n', $value)); + + if (!$this->verbose && 50 <= strlen($str)) { + return substr($str, 0, 50).'"...'; + } + + return $str; + } + if (null === $value) { + return 'null'; + } + + return (string) $value; + } + + /** + * Stringifies provided array of calls. + * + * @param Call[] $calls Array of Call instances + * + * @return string + */ + public function stringifyCalls(array $calls) + { + $self = $this; + + return implode(PHP_EOL, array_map(function (Call $call) use ($self) { + return sprintf(' - %s(%s) @ %s', + $call->getMethodName(), + implode(', ', array_map(array($self, 'stringify'), $call->getArguments())), + str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace()) + ); + }, $calls)); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitattributes b/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitattributes new file mode 100644 index 0000000..461090b --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitattributes @@ -0,0 +1 @@ +*.php diff=php diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md new file mode 100644 index 0000000..76a4345 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md @@ -0,0 +1 @@ +Please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md) for details on how to contribute to this project. diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..dc8e3b0 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,18 @@ +| Q | A +| --------------------------| --------------- +| php-code-coverage version | x.y.z +| PHP version | x.y.z +| Driver | Xdebug / PHPDBG +| Xdebug version (if used) | x.y.z +| Installation Method | Composer / PHPUnit PHAR +| Usage Method | PHPUnit / other +| PHPUnit version (if used) | x.y.z + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitignore b/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitignore new file mode 100644 index 0000000..603bc9e --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.gitignore @@ -0,0 +1,6 @@ +/tests/_files/tmp +/vendor +/composer.lock +/.idea +/.php_cs.cache + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.php_cs b/class/payment/paypal/vendor/phpunit/php-code-coverage/.php_cs new file mode 100644 index 0000000..de5cde1 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.php_cs @@ -0,0 +1,69 @@ +files() + ->in('src') + ->in('tests') + ->exclude('_files') + ->name('*.php'); + +return Symfony\CS\Config\Config::create() + ->setUsingCache(true) + ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) + ->fixers( + array( + 'align_double_arrow', + 'align_equals', + 'braces', + 'concat_with_spaces', + 'duplicate_semicolon', + 'elseif', + 'empty_return', + 'encoding', + 'eof_ending', + 'extra_empty_lines', + 'function_call_space', + 'function_declaration', + 'indentation', + 'join_function', + 'line_after_namespace', + 'linefeed', + 'list_commas', + 'lowercase_constants', + 'lowercase_keywords', + 'method_argument_space', + 'multiple_use', + 'namespace_no_leading_whitespace', + 'no_blank_lines_after_class_opening', + 'no_empty_lines_after_phpdocs', + 'parenthesis', + 'php_closing_tag', + 'phpdoc_indent', + 'phpdoc_no_access', + 'phpdoc_no_empty_return', + 'phpdoc_no_package', + 'phpdoc_params', + 'phpdoc_scalar', + 'phpdoc_separation', + 'phpdoc_to_comment', + 'phpdoc_trim', + 'phpdoc_types', + 'phpdoc_var_without_name', + 'remove_lines_between_uses', + 'return', + 'self_accessor', + 'short_array_syntax', + 'short_tag', + 'single_line_after_imports', + 'single_quote', + 'spaces_before_semicolon', + 'spaces_cast', + 'ternary_spaces', + 'trailing_spaces', + 'trim_array_spaces', + 'unused_use', + 'visibility', + 'whitespacy_lines' + ) + ) + ->finder($finder); + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/.travis.yml b/class/payment/paypal/vendor/phpunit/php-code-coverage/.travis.yml new file mode 100644 index 0000000..96c6368 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/.travis.yml @@ -0,0 +1,42 @@ +language: php + +php: + - 5.6 + - 7.0 + - 7.0snapshot + - 7.1 + - 7.1snapshot + - master + +env: + matrix: + - DRIVER="xdebug" + - DRIVER="phpdbg" + +matrix: + allow_failures: + - php: master + fast_finish: true + exclude: + - php: 5.6 + env: DRIVER="phpdbg" + +sudo: false + +before_install: + - composer self-update + - composer clear-cache + +install: + - travis_retry composer update --no-interaction --no-ansi --no-progress --no-suggest --optimize-autoloader --prefer-stable + +script: + - if [[ "$DRIVER" = 'phpdbg' ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi + - if [[ "$DRIVER" = 'xdebug' ]]; then vendor/bin/phpunit --coverage-clover=coverage.xml; fi + +after_success: + - bash <(curl -s https://codecov.io/bash) + +notifications: + email: false + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md new file mode 100644 index 0000000..353b6f6 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-2.2.md @@ -0,0 +1,56 @@ +# Changes in PHP_CodeCoverage 2.2 + +All notable changes of the PHP_CodeCoverage 2.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [2.2.4] - 2015-10-06 + +### Fixed + +* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag + +## [2.2.3] - 2015-09-14 + +### Fixed + +* Fixed [#368](https://github.com/sebastianbergmann/php-code-coverage/pull/368): Blacklists and whitelists are not merged when merging data sets +* Fixed [#370](https://github.com/sebastianbergmann/php-code-coverage/issues/370): Confusing statistics for source file that declares a class without methods +* Fixed [#372](https://github.com/sebastianbergmann/php-code-coverage/pull/372): Nested classes and functions are not handled correctly +* Fixed [#382](https://github.com/sebastianbergmann/php-code-coverage/issues/382): Crap4J report generates incorrect XML logfile + +## [2.2.2] - 2015-08-04 + +### Added + +* Reintroduced the `PHP_CodeCoverage_Driver_HHVM` driver as an extension of `PHP_CodeCoverage_Driver_Xdebug` that does not use `xdebug_start_code_coverage()` with options not supported by HHVM + +### Changed + +* Bumped required version of `sebastian/environment` to 1.3.2 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) + +## [2.2.1] - 2015-08-02 + +### Changed + +* Bumped required version of `sebastian/environment` to 1.3.1 for [#365](https://github.com/sebastianbergmann/php-code-coverage/issues/365) + +## [2.2.0] - 2015-08-01 + +### Added + +* Added a driver for PHPDBG (requires PHP 7) +* Added `PHP_CodeCoverage::setDisableIgnoredLines()` to disable the ignoring of lines using annotations such as `@codeCoverageIgnore` + +### Changed + +* Annotating a method with `@deprecated` now has the same effect as annotating it with `@codeCoverageIgnore` + +### Removed + +* The dedicated driver for HHVM, `PHP_CodeCoverage_Driver_HHVM` has been removed + +[2.2.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.3...2.2.4 +[2.2.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.2...2.2.3 +[2.2.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.1...2.2.2 +[2.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2.0...2.2.1 +[2.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.1...2.2.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md new file mode 100644 index 0000000..a39fa8d --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.0.md @@ -0,0 +1,31 @@ +# Changes in PHP_CodeCoverage 3.0 + +All notable changes of the PHP_CodeCoverage 3.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [3.0.2] - 2015-11-12 + +### Changed + +* It is now optional that `@deprecated` code is ignored + +## [3.0.1] - 2015-10-06 + +### Fixed + +* Fixed [#391](https://github.com/sebastianbergmann/php-code-coverage/pull/391): Missing `` tag + +## [3.0.0] - 2015-10-02 + +### Changed + +* It is now mandatory to configure a whitelist + +### Removed + +* The blacklist functionality has been removed +* PHP_CodeCoverage is no longer supported on PHP 5.3, PHP 5.4, and PHP 5.5 + +[3.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.1...3.0.2 +[3.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/2.2...3.0.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md new file mode 100644 index 0000000..f7a0de9 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.1.md @@ -0,0 +1,30 @@ +# Changes in PHP_CodeCoverage 3.1 + +All notable changes of the PHP_CodeCoverage 3.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [3.1.1] - 2016-02-04 + +### Changed + +* Allow version 2.0.x of `sebastian/version` dependency + +## [3.1.0] - 2016-01-11 + +### Added + +* Implemented [#234](https://github.com/sebastianbergmann/php-code-coverage/issues/234): Optionally raise an exception when a specified unit of code is not executed + +### Changed + +* The Clover XML report now contains cyclomatic complexity information +* The Clover XML report now contains method visibility information +* Cleanup and refactoring of various areas of code +* Added missing test cases + +### Removed + +* The functionality controlled by the `mapTestClassNameToCoveredClassName` setting has been removed + +[3.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1.0...3.1.1 +[3.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.0...3.1.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md new file mode 100644 index 0000000..34c65cf --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.2.md @@ -0,0 +1,23 @@ +# Changes in PHP_CodeCoverage 3.2 + +All notable changes of the PHP_CodeCoverage 3.2 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [3.2.1] - 2016-02-18 + +### Changed + +* Updated dependency information in `composer.json` + +## [3.2.0] - 2016-02-13 + +### Added + +* Added optional check for missing `@covers` annotation when the usage of `@covers` annotations is forced + +### Changed + +* Improved `PHP_CodeCoverage_UnintentionallyCoveredCodeException` message + +[3.2.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2.0...3.2.1 +[3.2.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.1...3.2.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md new file mode 100644 index 0000000..2cf1522 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-3.3.md @@ -0,0 +1,33 @@ +# Changes in PHP_CodeCoverage 3.3 + +All notable changes of the PHP_CodeCoverage 3.3 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [3.3.3] - 2016-MM-DD + +### Fixed + +* Fixed [#438](https://github.com/sebastianbergmann/php-code-coverage/issues/438): Wrong base directory for Clover reports + +## [3.3.2] - 2016-05-25 + +### Changed + +* The constructor of `PHP_CodeCoverage_Report_Text` now has default values for its parameters + +## [3.3.1] - 2016-04-08 + +### Fixed + +* Fixed handling of lines that contain `declare` statements + +## [3.3.0] - 2016-03-03 + +### Added + +* Added support for whitelisting classes for the unintentionally covered code unit check + +[3.3.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.2...3.3.3 +[3.3.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.1...3.3.2 +[3.3.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3.0...3.3.1 +[3.3.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.2...3.3.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md new file mode 100644 index 0000000..30df010 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/ChangeLog-4.0.md @@ -0,0 +1,67 @@ +# Changes in PHP_CodeCoverage 4.0 + +All notable changes of the PHP_CodeCoverage 4.0 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [4.0.8] - 2017-04-02 + +* Fixed [#515](https://github.com/sebastianbergmann/php-code-coverage/pull/515): Wrong use of recursive iterator causing duplicate entries in XML coverage report + +## [4.0.7] - 2017-03-01 + +### Changed + +* Cleaned up requirements in `composer.json` + +## [4.0.6] - 2017-02-23 + +### Changed + +* Added support for `phpunit/php-token-stream` 2.0 +* Updated HTML report assets + +## [4.0.5] - 2017-01-20 + +### Fixed + +* Fixed formatting of executed lines percentage for classes in file view + +## [4.0.4] - 2016-12-20 + +### Changed + +* Implemented [#432](https://github.com/sebastianbergmann/php-code-coverage/issues/432): Change how files with no executable lines are displayed in the HTML report + +## [4.0.3] - 2016-11-28 + +### Changed + +* The check for unintentionally covered code is no longer performed for `@medium` and `@large` tests + +## [4.0.2] - 2016-11-01 + +### Fixed + +* Fixed [#440](https://github.com/sebastianbergmann/php-code-coverage/pull/440): Dashboard charts not showing tooltips for data points + +## [4.0.1] - 2016-07-26 + +### Fixed + +* Fixed [#458](https://github.com/sebastianbergmann/php-code-coverage/pull/458): XML report does not know about warning status + +## [4.0.0] - 2016-06-03 + +### Changed + +* This component now uses namespaces + +[4.0.8]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.7...4.0.8 +[4.0.7]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.6...4.0.7 +[4.0.6]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.5...4.0.6 +[4.0.5]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.4...4.0.5 +[4.0.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.3...4.0.4 +[4.0.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.2...4.0.3 +[4.0.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.1...4.0.2 +[4.0.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/4.0.0...4.0.1 +[4.0.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/3.3...4.0.0 + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/LICENSE b/class/payment/paypal/vendor/phpunit/php-code-coverage/LICENSE new file mode 100644 index 0000000..fcfa37e --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/LICENSE @@ -0,0 +1,33 @@ +PHP_CodeCoverage + +Copyright (c) 2009-2015, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/README.md b/class/payment/paypal/vendor/phpunit/php-code-coverage/README.md new file mode 100644 index 0000000..c01384b --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/README.md @@ -0,0 +1,51 @@ +[![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage) +[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage) + +# PHP_CodeCoverage + +**PHP_CodeCoverage** is a library that provides collection, processing, and rendering functionality for PHP code coverage information. + +## Requirements + +PHP 5.6 is required but using the latest version of PHP is highly recommended. + +### PHP 5 + +[Xdebug](http://xdebug.org/) is the only source of raw code coverage data supported for PHP 5. Version 2.2.1 of Xdebug is required but using the latest version is highly recommended. + +### PHP 7 + +Version 2.4.0 (or later) of [Xdebug](http://xdebug.org/) as well as [phpdbg](http://phpdbg.com/docs) are supported sources of raw code coverage data for PHP 7. + +### HHVM + +A version of HHVM that implements the Xdebug API for code coverage (`xdebug_*_code_coverage()`) is required. + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phpunit/php-code-coverage + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phpunit/php-code-coverage + +## Using the PHP_CodeCoverage API + +```php +start(''); + +// ... + +$coverage->stop(); + +$writer = new \SebastianBergmann\CodeCoverage\Report\Clover; +$writer->process($coverage, '/tmp/clover.xml'); + +$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade; +$writer->process($coverage, '/tmp/code-coverage-report'); +``` + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/build.xml b/class/payment/paypal/vendor/phpunit/php-code-coverage/build.xml new file mode 100644 index 0000000..d8168c2 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/build.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/composer.json b/class/payment/paypal/vendor/phpunit/php-code-coverage/composer.json new file mode 100644 index 0000000..7ca434b --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/composer.json @@ -0,0 +1,51 @@ +{ + "name": "phpunit/php-code-coverage", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "type": "library", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "irc": "irc://irc.freenode.net/phpunit" + }, + "require": { + "php": "^5.6 || ^7.0", + "ext-dom": "*", + "ext-xmlwriter": "*", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "phpunit/php-text-template": "^1.2", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7", + "ext-xdebug": "^2.1.4" + }, + "suggest": { + "ext-xdebug": "^2.5.1" + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/phpunit.xml b/class/payment/paypal/vendor/phpunit/php-code-coverage/phpunit.xml new file mode 100644 index 0000000..55822f0 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/phpunit.xml @@ -0,0 +1,21 @@ + + + + tests/tests + + + + + src + + + + + + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/CodeCoverage.php new file mode 100644 index 0000000..35dab3d --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/CodeCoverage.php @@ -0,0 +1,1107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\Driver\Xdebug; +use SebastianBergmann\CodeCoverage\Driver\HHVM; +use SebastianBergmann\CodeCoverage\Driver\PHPDBG; +use SebastianBergmann\CodeCoverage\Node\Builder; +use SebastianBergmann\CodeCoverage\Node\Directory; +use SebastianBergmann\CodeUnitReverseLookup\Wizard; +use SebastianBergmann\Environment\Runtime; + +/** + * Provides collection functionality for PHP code coverage information. + */ +class CodeCoverage +{ + /** + * @var Driver + */ + private $driver; + + /** + * @var Filter + */ + private $filter; + + /** + * @var Wizard + */ + private $wizard; + + /** + * @var bool + */ + private $cacheTokens = false; + + /** + * @var bool + */ + private $checkForUnintentionallyCoveredCode = false; + + /** + * @var bool + */ + private $forceCoversAnnotation = false; + + /** + * @var bool + */ + private $checkForUnexecutedCoveredCode = false; + + /** + * @var bool + */ + private $checkForMissingCoversAnnotation = false; + + /** + * @var bool + */ + private $addUncoveredFilesFromWhitelist = true; + + /** + * @var bool + */ + private $processUncoveredFilesFromWhitelist = false; + + /** + * @var bool + */ + private $ignoreDeprecatedCode = false; + + /** + * @var mixed + */ + private $currentId; + + /** + * Code coverage data. + * + * @var array + */ + private $data = []; + + /** + * @var array + */ + private $ignoredLines = []; + + /** + * @var bool + */ + private $disableIgnoredLines = false; + + /** + * Test data. + * + * @var array + */ + private $tests = []; + + /** + * @var string[] + */ + private $unintentionallyCoveredSubclassesWhitelist = []; + + /** + * Determine if the data has been initialized or not + * + * @var bool + */ + private $isInitialized = false; + + /** + * Determine whether we need to check for dead and unused code on each test + * + * @var bool + */ + private $shouldCheckForDeadAndUnused = true; + + /** + * Constructor. + * + * @param Driver $driver + * @param Filter $filter + * + * @throws RuntimeException + */ + public function __construct(Driver $driver = null, Filter $filter = null) + { + if ($driver === null) { + $driver = $this->selectDriver(); + } + + if ($filter === null) { + $filter = new Filter; + } + + $this->driver = $driver; + $this->filter = $filter; + + $this->wizard = new Wizard; + } + + /** + * Returns the code coverage information as a graph of node objects. + * + * @return Directory + */ + public function getReport() + { + $builder = new Builder; + + return $builder->build($this); + } + + /** + * Clears collected code coverage data. + */ + public function clear() + { + $this->isInitialized = false; + $this->currentId = null; + $this->data = []; + $this->tests = []; + } + + /** + * Returns the filter object used. + * + * @return Filter + */ + public function filter() + { + return $this->filter; + } + + /** + * Returns the collected code coverage data. + * Set $raw = true to bypass all filters. + * + * @param bool $raw + * + * @return array + */ + public function getData($raw = false) + { + if (!$raw && $this->addUncoveredFilesFromWhitelist) { + $this->addUncoveredFilesFromWhitelist(); + } + + return $this->data; + } + + /** + * Sets the coverage data. + * + * @param array $data + */ + public function setData(array $data) + { + $this->data = $data; + } + + /** + * Returns the test data. + * + * @return array + */ + public function getTests() + { + return $this->tests; + } + + /** + * Sets the test data. + * + * @param array $tests + */ + public function setTests(array $tests) + { + $this->tests = $tests; + } + + /** + * Start collection of code coverage information. + * + * @param mixed $id + * @param bool $clear + * + * @throws InvalidArgumentException + */ + public function start($id, $clear = false) + { + if (!is_bool($clear)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + if ($clear) { + $this->clear(); + } + + if ($this->isInitialized === false) { + $this->initializeData(); + } + + $this->currentId = $id; + + $this->driver->start($this->shouldCheckForDeadAndUnused); + } + + /** + * Stop collection of code coverage information. + * + * @param bool $append + * @param mixed $linesToBeCovered + * @param array $linesToBeUsed + * + * @return array + * + * @throws InvalidArgumentException + */ + public function stop($append = true, $linesToBeCovered = [], array $linesToBeUsed = []) + { + if (!is_bool($append)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + if (!is_array($linesToBeCovered) && $linesToBeCovered !== false) { + throw InvalidArgumentException::create( + 2, + 'array or false' + ); + } + + $data = $this->driver->stop(); + $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed); + + $this->currentId = null; + + return $data; + } + + /** + * Appends code coverage data. + * + * @param array $data + * @param mixed $id + * @param bool $append + * @param mixed $linesToBeCovered + * @param array $linesToBeUsed + * + * @throws RuntimeException + */ + public function append(array $data, $id = null, $append = true, $linesToBeCovered = [], array $linesToBeUsed = []) + { + if ($id === null) { + $id = $this->currentId; + } + + if ($id === null) { + throw new RuntimeException; + } + + $this->applyListsFilter($data); + $this->applyIgnoredLinesFilter($data); + $this->initializeFilesThatAreSeenTheFirstTime($data); + + if (!$append) { + return; + } + + if ($id != 'UNCOVERED_FILES_FROM_WHITELIST') { + $this->applyCoversAnnotationFilter( + $data, + $linesToBeCovered, + $linesToBeUsed + ); + } + + if (empty($data)) { + return; + } + + $size = 'unknown'; + $status = null; + + if ($id instanceof \PHPUnit_Framework_TestCase) { + $_size = $id->getSize(); + + if ($_size == \PHPUnit_Util_Test::SMALL) { + $size = 'small'; + } elseif ($_size == \PHPUnit_Util_Test::MEDIUM) { + $size = 'medium'; + } elseif ($_size == \PHPUnit_Util_Test::LARGE) { + $size = 'large'; + } + + $status = $id->getStatus(); + $id = get_class($id) . '::' . $id->getName(); + } elseif ($id instanceof \PHPUnit_Extensions_PhptTestCase) { + $size = 'large'; + $id = $id->getName(); + } + + $this->tests[$id] = ['size' => $size, 'status' => $status]; + + foreach ($data as $file => $lines) { + if (!$this->filter->isFile($file)) { + continue; + } + + foreach ($lines as $k => $v) { + if ($v == Driver::LINE_EXECUTED) { + if (empty($this->data[$file][$k]) || !in_array($id, $this->data[$file][$k])) { + $this->data[$file][$k][] = $id; + } + } + } + } + } + + /** + * Merges the data from another instance. + * + * @param CodeCoverage $that + */ + public function merge(CodeCoverage $that) + { + $this->filter->setWhitelistedFiles( + array_merge($this->filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()) + ); + + foreach ($that->data as $file => $lines) { + if (!isset($this->data[$file])) { + if (!$this->filter->isFiltered($file)) { + $this->data[$file] = $lines; + } + + continue; + } + + foreach ($lines as $line => $data) { + if ($data !== null) { + if (!isset($this->data[$file][$line])) { + $this->data[$file][$line] = $data; + } else { + $this->data[$file][$line] = array_unique( + array_merge($this->data[$file][$line], $data) + ); + } + } + } + } + + $this->tests = array_merge($this->tests, $that->getTests()); + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setCacheTokens($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->cacheTokens = $flag; + } + + /** + * @return bool + */ + public function getCacheTokens() + { + return $this->cacheTokens; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setCheckForUnintentionallyCoveredCode($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->checkForUnintentionallyCoveredCode = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setForceCoversAnnotation($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->forceCoversAnnotation = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setCheckForMissingCoversAnnotation($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->checkForMissingCoversAnnotation = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setCheckForUnexecutedCoveredCode($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->checkForUnexecutedCoveredCode = $flag; + } + + /** + * @deprecated + * + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setMapTestClassNameToCoveredClassName($flag) + { + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setAddUncoveredFilesFromWhitelist($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->addUncoveredFilesFromWhitelist = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setProcessUncoveredFilesFromWhitelist($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->processUncoveredFilesFromWhitelist = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setDisableIgnoredLines($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->disableIgnoredLines = $flag; + } + + /** + * @param bool $flag + * + * @throws InvalidArgumentException + */ + public function setIgnoreDeprecatedCode($flag) + { + if (!is_bool($flag)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + $this->ignoreDeprecatedCode = $flag; + } + + /** + * @param array $whitelist + */ + public function setUnintentionallyCoveredSubclassesWhitelist(array $whitelist) + { + $this->unintentionallyCoveredSubclassesWhitelist = $whitelist; + } + + /** + * Applies the @covers annotation filtering. + * + * @param array $data + * @param mixed $linesToBeCovered + * @param array $linesToBeUsed + * + * @throws MissingCoversAnnotationException + * @throws UnintentionallyCoveredCodeException + */ + private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed) + { + if ($linesToBeCovered === false || + ($this->forceCoversAnnotation && empty($linesToBeCovered))) { + if ($this->checkForMissingCoversAnnotation) { + throw new MissingCoversAnnotationException; + } + + $data = []; + + return; + } + + if (empty($linesToBeCovered)) { + return; + } + + if ($this->checkForUnintentionallyCoveredCode && + (!$this->currentId instanceof \PHPUnit_Framework_TestCase || + (!$this->currentId->isMedium() && !$this->currentId->isLarge()))) { + $this->performUnintentionallyCoveredCodeCheck( + $data, + $linesToBeCovered, + $linesToBeUsed + ); + } + + if ($this->checkForUnexecutedCoveredCode) { + $this->performUnexecutedCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); + } + + $data = array_intersect_key($data, $linesToBeCovered); + + foreach (array_keys($data) as $filename) { + $_linesToBeCovered = array_flip($linesToBeCovered[$filename]); + + $data[$filename] = array_intersect_key( + $data[$filename], + $_linesToBeCovered + ); + } + } + + /** + * Applies the whitelist filtering. + * + * @param array $data + */ + private function applyListsFilter(array &$data) + { + foreach (array_keys($data) as $filename) { + if ($this->filter->isFiltered($filename)) { + unset($data[$filename]); + } + } + } + + /** + * Applies the "ignored lines" filtering. + * + * @param array $data + */ + private function applyIgnoredLinesFilter(array &$data) + { + foreach (array_keys($data) as $filename) { + if (!$this->filter->isFile($filename)) { + continue; + } + + foreach ($this->getLinesToBeIgnored($filename) as $line) { + unset($data[$filename][$line]); + } + } + } + + /** + * @param array $data + */ + private function initializeFilesThatAreSeenTheFirstTime(array $data) + { + foreach ($data as $file => $lines) { + if ($this->filter->isFile($file) && !isset($this->data[$file])) { + $this->data[$file] = []; + + foreach ($lines as $k => $v) { + $this->data[$file][$k] = $v == -2 ? null : []; + } + } + } + } + + /** + * Processes whitelisted files that are not covered. + */ + private function addUncoveredFilesFromWhitelist() + { + $data = []; + $uncoveredFiles = array_diff( + $this->filter->getWhitelist(), + array_keys($this->data) + ); + + foreach ($uncoveredFiles as $uncoveredFile) { + if (!file_exists($uncoveredFile)) { + continue; + } + + if (!$this->processUncoveredFilesFromWhitelist) { + $data[$uncoveredFile] = []; + + $lines = count(file($uncoveredFile)); + + for ($i = 1; $i <= $lines; $i++) { + $data[$uncoveredFile][$i] = Driver::LINE_NOT_EXECUTED; + } + } + } + + $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); + } + + /** + * Returns the lines of a source file that should be ignored. + * + * @param string $filename + * + * @return array + * + * @throws InvalidArgumentException + */ + private function getLinesToBeIgnored($filename) + { + if (!is_string($filename)) { + throw InvalidArgumentException::create( + 1, + 'string' + ); + } + + if (!isset($this->ignoredLines[$filename])) { + $this->ignoredLines[$filename] = []; + + if ($this->disableIgnoredLines) { + return $this->ignoredLines[$filename]; + } + + $ignore = false; + $stop = false; + $lines = file($filename); + $numLines = count($lines); + + foreach ($lines as $index => $line) { + if (!trim($line)) { + $this->ignoredLines[$filename][] = $index + 1; + } + } + + if ($this->cacheTokens) { + $tokens = \PHP_Token_Stream_CachingFactory::get($filename); + } else { + $tokens = new \PHP_Token_Stream($filename); + } + + $classes = array_merge($tokens->getClasses(), $tokens->getTraits()); + $tokens = $tokens->tokens(); + + foreach ($tokens as $token) { + switch (get_class($token)) { + case 'PHP_Token_COMMENT': + case 'PHP_Token_DOC_COMMENT': + $_token = trim($token); + $_line = trim($lines[$token->getLine() - 1]); + + if ($_token == '// @codeCoverageIgnore' || + $_token == '//@codeCoverageIgnore') { + $ignore = true; + $stop = true; + } elseif ($_token == '// @codeCoverageIgnoreStart' || + $_token == '//@codeCoverageIgnoreStart') { + $ignore = true; + } elseif ($_token == '// @codeCoverageIgnoreEnd' || + $_token == '//@codeCoverageIgnoreEnd') { + $stop = true; + } + + if (!$ignore) { + $start = $token->getLine(); + $end = $start + substr_count($token, "\n"); + + // Do not ignore the first line when there is a token + // before the comment + if (0 !== strpos($_token, $_line)) { + $start++; + } + + for ($i = $start; $i < $end; $i++) { + $this->ignoredLines[$filename][] = $i; + } + + // A DOC_COMMENT token or a COMMENT token starting with "/*" + // does not contain the final \n character in its text + if (isset($lines[$i-1]) && 0 === strpos($_token, '/*') && '*/' === substr(trim($lines[$i-1]), -2)) { + $this->ignoredLines[$filename][] = $i; + } + } + break; + + case 'PHP_Token_INTERFACE': + case 'PHP_Token_TRAIT': + case 'PHP_Token_CLASS': + case 'PHP_Token_FUNCTION': + /* @var \PHP_Token_Interface $token */ + + $docblock = $token->getDocblock(); + + $this->ignoredLines[$filename][] = $token->getLine(); + + if (strpos($docblock, '@codeCoverageIgnore') || ($this->ignoreDeprecatedCode && strpos($docblock, '@deprecated'))) { + $endLine = $token->getEndLine(); + + for ($i = $token->getLine(); $i <= $endLine; $i++) { + $this->ignoredLines[$filename][] = $i; + } + } elseif ($token instanceof \PHP_Token_INTERFACE || + $token instanceof \PHP_Token_TRAIT || + $token instanceof \PHP_Token_CLASS) { + if (empty($classes[$token->getName()]['methods'])) { + for ($i = $token->getLine(); + $i <= $token->getEndLine(); + $i++) { + $this->ignoredLines[$filename][] = $i; + } + } else { + $firstMethod = array_shift( + $classes[$token->getName()]['methods'] + ); + + do { + $lastMethod = array_pop( + $classes[$token->getName()]['methods'] + ); + } while ($lastMethod !== null && + substr($lastMethod['signature'], 0, 18) == 'anonymous function'); + + if ($lastMethod === null) { + $lastMethod = $firstMethod; + } + + for ($i = $token->getLine(); + $i < $firstMethod['startLine']; + $i++) { + $this->ignoredLines[$filename][] = $i; + } + + for ($i = $token->getEndLine(); + $i > $lastMethod['endLine']; + $i--) { + $this->ignoredLines[$filename][] = $i; + } + } + } + break; + + case 'PHP_Token_NAMESPACE': + $this->ignoredLines[$filename][] = $token->getEndLine(); + + // Intentional fallthrough + case 'PHP_Token_DECLARE': + case 'PHP_Token_OPEN_TAG': + case 'PHP_Token_CLOSE_TAG': + case 'PHP_Token_USE': + $this->ignoredLines[$filename][] = $token->getLine(); + break; + } + + if ($ignore) { + $this->ignoredLines[$filename][] = $token->getLine(); + + if ($stop) { + $ignore = false; + $stop = false; + } + } + } + + $this->ignoredLines[$filename][] = $numLines + 1; + + $this->ignoredLines[$filename] = array_unique( + $this->ignoredLines[$filename] + ); + + sort($this->ignoredLines[$filename]); + } + + return $this->ignoredLines[$filename]; + } + + /** + * @param array $data + * @param array $linesToBeCovered + * @param array $linesToBeUsed + * + * @throws UnintentionallyCoveredCodeException + */ + private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) + { + $allowedLines = $this->getAllowedLines( + $linesToBeCovered, + $linesToBeUsed + ); + + $unintentionallyCoveredUnits = []; + + foreach ($data as $file => $_data) { + foreach ($_data as $line => $flag) { + if ($flag == 1 && !isset($allowedLines[$file][$line])) { + $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); + } + } + } + + $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); + + if (!empty($unintentionallyCoveredUnits)) { + throw new UnintentionallyCoveredCodeException( + $unintentionallyCoveredUnits + ); + } + } + + /** + * @param array $data + * @param array $linesToBeCovered + * @param array $linesToBeUsed + * + * @throws CoveredCodeNotExecutedException + */ + private function performUnexecutedCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) + { + $expectedLines = $this->getAllowedLines( + $linesToBeCovered, + $linesToBeUsed + ); + + foreach ($data as $file => $_data) { + foreach (array_keys($_data) as $line) { + if (!isset($expectedLines[$file][$line])) { + continue; + } + + unset($expectedLines[$file][$line]); + } + } + + $message = ''; + + foreach ($expectedLines as $file => $lines) { + if (empty($lines)) { + continue; + } + + foreach (array_keys($lines) as $line) { + $message .= sprintf('- %s:%d' . PHP_EOL, $file, $line); + } + } + + if (!empty($message)) { + throw new CoveredCodeNotExecutedException($message); + } + } + + /** + * @param array $linesToBeCovered + * @param array $linesToBeUsed + * + * @return array + */ + private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed) + { + $allowedLines = []; + + foreach (array_keys($linesToBeCovered) as $file) { + if (!isset($allowedLines[$file])) { + $allowedLines[$file] = []; + } + + $allowedLines[$file] = array_merge( + $allowedLines[$file], + $linesToBeCovered[$file] + ); + } + + foreach (array_keys($linesToBeUsed) as $file) { + if (!isset($allowedLines[$file])) { + $allowedLines[$file] = []; + } + + $allowedLines[$file] = array_merge( + $allowedLines[$file], + $linesToBeUsed[$file] + ); + } + + foreach (array_keys($allowedLines) as $file) { + $allowedLines[$file] = array_flip( + array_unique($allowedLines[$file]) + ); + } + + return $allowedLines; + } + + /** + * @return Driver + * + * @throws RuntimeException + */ + private function selectDriver() + { + $runtime = new Runtime; + + if (!$runtime->canCollectCodeCoverage()) { + throw new RuntimeException('No code coverage driver available'); + } + + if ($runtime->isHHVM()) { + return new HHVM; + } elseif ($runtime->isPHPDBG()) { + return new PHPDBG; + } else { + return new Xdebug; + } + } + + /** + * @param array $unintentionallyCoveredUnits + * + * @return array + */ + private function processUnintentionallyCoveredUnits(array $unintentionallyCoveredUnits) + { + $unintentionallyCoveredUnits = array_unique($unintentionallyCoveredUnits); + sort($unintentionallyCoveredUnits); + + foreach (array_keys($unintentionallyCoveredUnits) as $k => $v) { + $unit = explode('::', $unintentionallyCoveredUnits[$k]); + + if (count($unit) != 2) { + continue; + } + + $class = new \ReflectionClass($unit[0]); + + foreach ($this->unintentionallyCoveredSubclassesWhitelist as $whitelisted) { + if ($class->isSubclassOf($whitelisted)) { + unset($unintentionallyCoveredUnits[$k]); + break; + } + } + } + + return array_values($unintentionallyCoveredUnits); + } + + /** + * If we are processing uncovered files from whitelist, + * we can initialize the data before we start to speed up the tests + */ + protected function initializeData() + { + $this->isInitialized = true; + + if ($this->processUncoveredFilesFromWhitelist) { + $this->shouldCheckForDeadAndUnused = false; + + $this->driver->start(true); + + foreach ($this->filter->getWhitelist() as $file) { + if ($this->filter->isFile($file)) { + include_once($file); + } + } + + $data = []; + $coverage = $this->driver->stop(); + + foreach ($coverage as $file => $fileCoverage) { + if ($this->filter->isFiltered($file)) { + continue; + } + + foreach (array_keys($fileCoverage) as $key) { + if ($fileCoverage[$key] == Driver::LINE_EXECUTED) { + $fileCoverage[$key] = Driver::LINE_NOT_EXECUTED; + } + } + + $data[$file] = $fileCoverage; + } + + $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); + } + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Driver.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Driver.php new file mode 100644 index 0000000..bdd1b97 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Driver.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Driver; + +/** + * Interface for code coverage drivers. + */ +interface Driver +{ + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + const LINE_EXECUTED = 1; + + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + const LINE_NOT_EXECUTED = -1; + + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + const LINE_NOT_EXECUTABLE = -2; + + /** + * Start collection of code coverage information. + * + * @param bool $determineUnusedAndDead + */ + public function start($determineUnusedAndDead = true); + + /** + * Stop collection of code coverage information. + * + * @return array + */ + public function stop(); +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php new file mode 100644 index 0000000..b35ea81 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/HHVM.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Driver; + +/** + * Driver for HHVM's code coverage functionality. + * + * @codeCoverageIgnore + */ +class HHVM extends Xdebug +{ + /** + * Start collection of code coverage information. + * + * @param bool $determineUnusedAndDead + */ + public function start($determineUnusedAndDead = true) + { + xdebug_start_code_coverage(); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php new file mode 100644 index 0000000..86cc844 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Driver; + +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Driver for PHPDBG's code coverage functionality. + * + * @codeCoverageIgnore + */ +class PHPDBG implements Driver +{ + /** + * Constructor. + */ + public function __construct() + { + if (PHP_SAPI !== 'phpdbg') { + throw new RuntimeException( + 'This driver requires the PHPDBG SAPI' + ); + } + + if (!function_exists('phpdbg_start_oplog')) { + throw new RuntimeException( + 'This build of PHPDBG does not support code coverage' + ); + } + } + + /** + * Start collection of code coverage information. + * + * @param bool $determineUnusedAndDead + */ + public function start($determineUnusedAndDead = true) + { + phpdbg_start_oplog(); + } + + /** + * Stop collection of code coverage information. + * + * @return array + */ + public function stop() + { + static $fetchedLines = []; + + $dbgData = phpdbg_end_oplog(); + + if ($fetchedLines == []) { + $sourceLines = phpdbg_get_executable(); + } else { + $newFiles = array_diff( + get_included_files(), + array_keys($fetchedLines) + ); + + if ($newFiles) { + $sourceLines = phpdbg_get_executable( + ['files' => $newFiles] + ); + } else { + $sourceLines = []; + } + } + + foreach ($sourceLines as $file => $lines) { + foreach ($lines as $lineNo => $numExecuted) { + $sourceLines[$file][$lineNo] = self::LINE_NOT_EXECUTED; + } + } + + $fetchedLines = array_merge($fetchedLines, $sourceLines); + + return $this->detectExecutedLines($fetchedLines, $dbgData); + } + + /** + * Convert phpdbg based data into the format CodeCoverage expects + * + * @param array $sourceLines + * @param array $dbgData + * + * @return array + */ + private function detectExecutedLines(array $sourceLines, array $dbgData) + { + foreach ($dbgData as $file => $coveredLines) { + foreach ($coveredLines as $lineNo => $numExecuted) { + // phpdbg also reports $lineNo=0 when e.g. exceptions get thrown. + // make sure we only mark lines executed which are actually executable. + if (isset($sourceLines[$file][$lineNo])) { + $sourceLines[$file][$lineNo] = self::LINE_EXECUTED; + } + } + } + + return $sourceLines; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php new file mode 100644 index 0000000..30099e0 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php @@ -0,0 +1,117 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Driver; + +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Driver for Xdebug's code coverage functionality. + * + * @codeCoverageIgnore + */ +class Xdebug implements Driver +{ + /** + * Cache the number of lines for each file + * + * @var array + */ + private $cacheNumLines = []; + + /** + * Constructor. + */ + public function __construct() + { + if (!extension_loaded('xdebug')) { + throw new RuntimeException('This driver requires Xdebug'); + } + + if (version_compare(phpversion('xdebug'), '2.2.1', '>=') && + !ini_get('xdebug.coverage_enable')) { + throw new RuntimeException( + 'xdebug.coverage_enable=On has to be set in php.ini' + ); + } + } + + /** + * Start collection of code coverage information. + * + * @param bool $determineUnusedAndDead + */ + public function start($determineUnusedAndDead = true) + { + if ($determineUnusedAndDead) { + xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); + } else { + xdebug_start_code_coverage(); + } + } + + /** + * Stop collection of code coverage information. + * + * @return array + */ + public function stop() + { + $data = xdebug_get_code_coverage(); + xdebug_stop_code_coverage(); + + return $this->cleanup($data); + } + + /** + * @param array $data + * + * @return array + */ + private function cleanup(array $data) + { + foreach (array_keys($data) as $file) { + unset($data[$file][0]); + + if (strpos($file, 'xdebug://debug-eval') !== 0 && file_exists($file)) { + $numLines = $this->getNumberOfLinesInFile($file); + + foreach (array_keys($data[$file]) as $line) { + if ($line > $numLines) { + unset($data[$file][$line]); + } + } + } + } + + return $data; + } + + /** + * @param string $file + * + * @return int + */ + private function getNumberOfLinesInFile($file) + { + if (!isset($this->cacheNumLines[$file])) { + $buffer = file_get_contents($file); + $lines = substr_count($buffer, "\n"); + + if (substr($buffer, -1) !== "\n") { + $lines++; + } + + $this->cacheNumLines[$file] = $lines; + } + + return $this->cacheNumLines[$file]; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php new file mode 100644 index 0000000..ca28a23 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when covered code is not executed. + */ +class CoveredCodeNotExecutedException extends RuntimeException +{ +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/Exception.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/Exception.php new file mode 100644 index 0000000..a3ba4c4 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/Exception.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception interface for php-code-coverage component. + */ +interface Exception +{ +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php new file mode 100644 index 0000000..1733f6c --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +class InvalidArgumentException extends \InvalidArgumentException implements Exception +{ + /** + * @param int $argument + * @param string $type + * @param mixed $value + * + * @return InvalidArgumentException + */ + public static function create($argument, $type, $value = null) + { + $stack = debug_backtrace(0); + + return new self( + sprintf( + 'Argument #%d%sof %s::%s() must be a %s', + $argument, + $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ', + $stack[1]['class'], + $stack[1]['function'], + $type + ) + ); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php new file mode 100644 index 0000000..7bc5cf3 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when @covers must be used but is not. + */ +class MissingCoversAnnotationException extends RuntimeException +{ +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php new file mode 100644 index 0000000..c143db7 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +class RuntimeException extends \RuntimeException implements Exception +{ +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php new file mode 100644 index 0000000..3ea542b --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when code is unintentionally covered. + */ +class UnintentionallyCoveredCodeException extends RuntimeException +{ + /** + * @var array + */ + private $unintentionallyCoveredUnits = []; + + /** + * @param array $unintentionallyCoveredUnits + */ + public function __construct(array $unintentionallyCoveredUnits) + { + $this->unintentionallyCoveredUnits = $unintentionallyCoveredUnits; + + parent::__construct($this->toString()); + } + + /** + * @return array + */ + public function getUnintentionallyCoveredUnits() + { + return $this->unintentionallyCoveredUnits; + } + + /** + * @return string + */ + private function toString() + { + $message = ''; + + foreach ($this->unintentionallyCoveredUnits as $unit) { + $message .= '- ' . $unit . "\n"; + } + + return $message; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Filter.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Filter.php new file mode 100644 index 0000000..771a657 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Filter.php @@ -0,0 +1,173 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +/** + * Filter for whitelisting of code coverage information. + */ +class Filter +{ + /** + * Source files that are whitelisted. + * + * @var array + */ + private $whitelistedFiles = []; + + /** + * Adds a directory to the whitelist (recursively). + * + * @param string $directory + * @param string $suffix + * @param string $prefix + */ + public function addDirectoryToWhitelist($directory, $suffix = '.php', $prefix = '') + { + $facade = new \File_Iterator_Facade; + $files = $facade->getFilesAsArray($directory, $suffix, $prefix); + + foreach ($files as $file) { + $this->addFileToWhitelist($file); + } + } + + /** + * Adds a file to the whitelist. + * + * @param string $filename + */ + public function addFileToWhitelist($filename) + { + $this->whitelistedFiles[realpath($filename)] = true; + } + + /** + * Adds files to the whitelist. + * + * @param array $files + */ + public function addFilesToWhitelist(array $files) + { + foreach ($files as $file) { + $this->addFileToWhitelist($file); + } + } + + /** + * Removes a directory from the whitelist (recursively). + * + * @param string $directory + * @param string $suffix + * @param string $prefix + */ + public function removeDirectoryFromWhitelist($directory, $suffix = '.php', $prefix = '') + { + $facade = new \File_Iterator_Facade; + $files = $facade->getFilesAsArray($directory, $suffix, $prefix); + + foreach ($files as $file) { + $this->removeFileFromWhitelist($file); + } + } + + /** + * Removes a file from the whitelist. + * + * @param string $filename + */ + public function removeFileFromWhitelist($filename) + { + $filename = realpath($filename); + + unset($this->whitelistedFiles[$filename]); + } + + /** + * Checks whether a filename is a real filename. + * + * @param string $filename + * + * @return bool + */ + public function isFile($filename) + { + if ($filename == '-' || + strpos($filename, 'vfs://') === 0 || + strpos($filename, 'xdebug://debug-eval') !== false || + strpos($filename, 'eval()\'d code') !== false || + strpos($filename, 'runtime-created function') !== false || + strpos($filename, 'runkit created function') !== false || + strpos($filename, 'assert code') !== false || + strpos($filename, 'regexp code') !== false) { + return false; + } + + return file_exists($filename); + } + + /** + * Checks whether or not a file is filtered. + * + * @param string $filename + * + * @return bool + */ + public function isFiltered($filename) + { + if (!$this->isFile($filename)) { + return true; + } + + $filename = realpath($filename); + + return !isset($this->whitelistedFiles[$filename]); + } + + /** + * Returns the list of whitelisted files. + * + * @return array + */ + public function getWhitelist() + { + return array_keys($this->whitelistedFiles); + } + + /** + * Returns whether this filter has a whitelist. + * + * @return bool + */ + public function hasWhitelist() + { + return !empty($this->whitelistedFiles); + } + + /** + * Returns the whitelisted files. + * + * @return array + */ + public function getWhitelistedFiles() + { + return $this->whitelistedFiles; + } + + /** + * Sets the whitelisted files. + * + * @param array $whitelistedFiles + */ + public function setWhitelistedFiles($whitelistedFiles) + { + $this->whitelistedFiles = $whitelistedFiles; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php new file mode 100644 index 0000000..f360805 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php @@ -0,0 +1,342 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\Util; + +/** + * Base class for nodes in the code coverage information tree. + */ +abstract class AbstractNode implements \Countable +{ + /** + * @var string + */ + private $name; + + /** + * @var string + */ + private $path; + + /** + * @var array + */ + private $pathArray; + + /** + * @var AbstractNode + */ + private $parent; + + /** + * @var string + */ + private $id; + + /** + * Constructor. + * + * @param string $name + * @param AbstractNode $parent + */ + public function __construct($name, AbstractNode $parent = null) + { + if (substr($name, -1) == '/') { + $name = substr($name, 0, -1); + } + + $this->name = $name; + $this->parent = $parent; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @return string + */ + public function getId() + { + if ($this->id === null) { + $parent = $this->getParent(); + + if ($parent === null) { + $this->id = 'index'; + } else { + $parentId = $parent->getId(); + + if ($parentId == 'index') { + $this->id = str_replace(':', '_', $this->name); + } else { + $this->id = $parentId . '/' . $this->name; + } + } + } + + return $this->id; + } + + /** + * @return string + */ + public function getPath() + { + if ($this->path === null) { + if ($this->parent === null || $this->parent->getPath() === null || $this->parent->getPath() === false) { + $this->path = $this->name; + } else { + $this->path = $this->parent->getPath() . '/' . $this->name; + } + } + + return $this->path; + } + + /** + * @return array + */ + public function getPathAsArray() + { + if ($this->pathArray === null) { + if ($this->parent === null) { + $this->pathArray = []; + } else { + $this->pathArray = $this->parent->getPathAsArray(); + } + + $this->pathArray[] = $this; + } + + return $this->pathArray; + } + + /** + * @return AbstractNode + */ + public function getParent() + { + return $this->parent; + } + + /** + * Returns the percentage of classes that has been tested. + * + * @param bool $asString + * + * @return int + */ + public function getTestedClassesPercent($asString = true) + { + return Util::percent( + $this->getNumTestedClasses(), + $this->getNumClasses(), + $asString + ); + } + + /** + * Returns the percentage of traits that has been tested. + * + * @param bool $asString + * + * @return int + */ + public function getTestedTraitsPercent($asString = true) + { + return Util::percent( + $this->getNumTestedTraits(), + $this->getNumTraits(), + $asString + ); + } + + /** + * Returns the percentage of traits that has been tested. + * + * @param bool $asString + * + * @return int + */ + public function getTestedClassesAndTraitsPercent($asString = true) + { + return Util::percent( + $this->getNumTestedClassesAndTraits(), + $this->getNumClassesAndTraits(), + $asString + ); + } + + /** + * Returns the percentage of methods that has been tested. + * + * @param bool $asString + * + * @return int + */ + public function getTestedMethodsPercent($asString = true) + { + return Util::percent( + $this->getNumTestedMethods(), + $this->getNumMethods(), + $asString + ); + } + + /** + * Returns the percentage of executed lines. + * + * @param bool $asString + * + * @return int + */ + public function getLineExecutedPercent($asString = true) + { + return Util::percent( + $this->getNumExecutedLines(), + $this->getNumExecutableLines(), + $asString + ); + } + + /** + * Returns the number of classes and traits. + * + * @return int + */ + public function getNumClassesAndTraits() + { + return $this->getNumClasses() + $this->getNumTraits(); + } + + /** + * Returns the number of tested classes and traits. + * + * @return int + */ + public function getNumTestedClassesAndTraits() + { + return $this->getNumTestedClasses() + $this->getNumTestedTraits(); + } + + /** + * Returns the classes and traits of this node. + * + * @return array + */ + public function getClassesAndTraits() + { + return array_merge($this->getClasses(), $this->getTraits()); + } + + /** + * Returns the classes of this node. + * + * @return array + */ + abstract public function getClasses(); + + /** + * Returns the traits of this node. + * + * @return array + */ + abstract public function getTraits(); + + /** + * Returns the functions of this node. + * + * @return array + */ + abstract public function getFunctions(); + + /** + * Returns the LOC/CLOC/NCLOC of this node. + * + * @return array + */ + abstract public function getLinesOfCode(); + + /** + * Returns the number of executable lines. + * + * @return int + */ + abstract public function getNumExecutableLines(); + + /** + * Returns the number of executed lines. + * + * @return int + */ + abstract public function getNumExecutedLines(); + + /** + * Returns the number of classes. + * + * @return int + */ + abstract public function getNumClasses(); + + /** + * Returns the number of tested classes. + * + * @return int + */ + abstract public function getNumTestedClasses(); + + /** + * Returns the number of traits. + * + * @return int + */ + abstract public function getNumTraits(); + + /** + * Returns the number of tested traits. + * + * @return int + */ + abstract public function getNumTestedTraits(); + + /** + * Returns the number of methods. + * + * @return int + */ + abstract public function getNumMethods(); + + /** + * Returns the number of tested methods. + * + * @return int + */ + abstract public function getNumTestedMethods(); + + /** + * Returns the number of functions. + * + * @return int + */ + abstract public function getNumFunctions(); + + /** + * Returns the number of tested functions. + * + * @return int + */ + abstract public function getNumTestedFunctions(); +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Builder.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Builder.php new file mode 100644 index 0000000..8a6a65c --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Builder.php @@ -0,0 +1,244 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\CodeCoverage; + +class Builder +{ + /** + * @param CodeCoverage $coverage + * + * @return Directory + */ + public function build(CodeCoverage $coverage) + { + $files = $coverage->getData(); + $commonPath = $this->reducePaths($files); + $root = new Directory( + $commonPath, + null + ); + + $this->addItems( + $root, + $this->buildDirectoryStructure($files), + $coverage->getTests(), + $coverage->getCacheTokens() + ); + + return $root; + } + + /** + * @param Directory $root + * @param array $items + * @param array $tests + * @param bool $cacheTokens + */ + private function addItems(Directory $root, array $items, array $tests, $cacheTokens) + { + foreach ($items as $key => $value) { + if (substr($key, -2) == '/f') { + $key = substr($key, 0, -2); + + if (file_exists($root->getPath() . DIRECTORY_SEPARATOR . $key)) { + $root->addFile($key, $value, $tests, $cacheTokens); + } + } else { + $child = $root->addDirectory($key); + $this->addItems($child, $value, $tests, $cacheTokens); + } + } + } + + /** + * Builds an array representation of the directory structure. + * + * For instance, + * + * + * Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + * + * is transformed into + * + * + * Array + * ( + * [.] => Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * ) + * + * + * @param array $files + * + * @return array + */ + private function buildDirectoryStructure($files) + { + $result = []; + + foreach ($files as $path => $file) { + $path = explode('/', $path); + $pointer = &$result; + $max = count($path); + + for ($i = 0; $i < $max; $i++) { + if ($i == ($max - 1)) { + $type = '/f'; + } else { + $type = ''; + } + + $pointer = &$pointer[$path[$i] . $type]; + } + + $pointer = $file; + } + + return $result; + } + + /** + * Reduces the paths by cutting the longest common start path. + * + * For instance, + * + * + * Array + * ( + * [/home/sb/Money/Money.php] => Array + * ( + * ... + * ) + * + * [/home/sb/Money/MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + * + * is reduced to + * + * + * Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + * + * @param array $files + * + * @return string + */ + private function reducePaths(&$files) + { + if (empty($files)) { + return '.'; + } + + $commonPath = ''; + $paths = array_keys($files); + + if (count($files) == 1) { + $commonPath = dirname($paths[0]) . '/'; + $files[basename($paths[0])] = $files[$paths[0]]; + + unset($files[$paths[0]]); + + return $commonPath; + } + + $max = count($paths); + + for ($i = 0; $i < $max; $i++) { + // strip phar:// prefixes + if (strpos($paths[$i], 'phar://') === 0) { + $paths[$i] = substr($paths[$i], 7); + $paths[$i] = strtr($paths[$i], '/', DIRECTORY_SEPARATOR); + } + $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]); + + if (empty($paths[$i][0])) { + $paths[$i][0] = DIRECTORY_SEPARATOR; + } + } + + $done = false; + $max = count($paths); + + while (!$done) { + for ($i = 0; $i < $max - 1; $i++) { + if (!isset($paths[$i][0]) || + !isset($paths[$i+1][0]) || + $paths[$i][0] != $paths[$i+1][0]) { + $done = true; + break; + } + } + + if (!$done) { + $commonPath .= $paths[0][0]; + + if ($paths[0][0] != DIRECTORY_SEPARATOR) { + $commonPath .= DIRECTORY_SEPARATOR; + } + + for ($i = 0; $i < $max; $i++) { + array_shift($paths[$i]); + } + } + } + + $original = array_keys($files); + $max = count($original); + + for ($i = 0; $i < $max; $i++) { + $files[implode('/', $paths[$i])] = $files[$original[$i]]; + unset($files[$original[$i]]); + } + + ksort($files); + + return substr($commonPath, 0, -1); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Directory.php new file mode 100644 index 0000000..6a9f28d --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Directory.php @@ -0,0 +1,483 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\InvalidArgumentException; + +/** + * Represents a directory in the code coverage information tree. + */ +class Directory extends AbstractNode implements \IteratorAggregate +{ + /** + * @var AbstractNode[] + */ + private $children = []; + + /** + * @var Directory[] + */ + private $directories = []; + + /** + * @var File[] + */ + private $files = []; + + /** + * @var array + */ + private $classes; + + /** + * @var array + */ + private $traits; + + /** + * @var array + */ + private $functions; + + /** + * @var array + */ + private $linesOfCode = null; + + /** + * @var int + */ + private $numFiles = -1; + + /** + * @var int + */ + private $numExecutableLines = -1; + + /** + * @var int + */ + private $numExecutedLines = -1; + + /** + * @var int + */ + private $numClasses = -1; + + /** + * @var int + */ + private $numTestedClasses = -1; + + /** + * @var int + */ + private $numTraits = -1; + + /** + * @var int + */ + private $numTestedTraits = -1; + + /** + * @var int + */ + private $numMethods = -1; + + /** + * @var int + */ + private $numTestedMethods = -1; + + /** + * @var int + */ + private $numFunctions = -1; + + /** + * @var int + */ + private $numTestedFunctions = -1; + + /** + * Returns the number of files in/under this node. + * + * @return int + */ + public function count() + { + if ($this->numFiles == -1) { + $this->numFiles = 0; + + foreach ($this->children as $child) { + $this->numFiles += count($child); + } + } + + return $this->numFiles; + } + + /** + * Returns an iterator for this node. + * + * @return \RecursiveIteratorIterator + */ + public function getIterator() + { + return new \RecursiveIteratorIterator( + new Iterator($this), + \RecursiveIteratorIterator::SELF_FIRST + ); + } + + /** + * Adds a new directory. + * + * @param string $name + * + * @return Directory + */ + public function addDirectory($name) + { + $directory = new self($name, $this); + + $this->children[] = $directory; + $this->directories[] = &$this->children[count($this->children) - 1]; + + return $directory; + } + + /** + * Adds a new file. + * + * @param string $name + * @param array $coverageData + * @param array $testData + * @param bool $cacheTokens + * + * @return File + * + * @throws InvalidArgumentException + */ + public function addFile($name, array $coverageData, array $testData, $cacheTokens) + { + $file = new File( + $name, + $this, + $coverageData, + $testData, + $cacheTokens + ); + + $this->children[] = $file; + $this->files[] = &$this->children[count($this->children) - 1]; + + $this->numExecutableLines = -1; + $this->numExecutedLines = -1; + + return $file; + } + + /** + * Returns the directories in this directory. + * + * @return array + */ + public function getDirectories() + { + return $this->directories; + } + + /** + * Returns the files in this directory. + * + * @return array + */ + public function getFiles() + { + return $this->files; + } + + /** + * Returns the child nodes of this node. + * + * @return array + */ + public function getChildNodes() + { + return $this->children; + } + + /** + * Returns the classes of this node. + * + * @return array + */ + public function getClasses() + { + if ($this->classes === null) { + $this->classes = []; + + foreach ($this->children as $child) { + $this->classes = array_merge( + $this->classes, + $child->getClasses() + ); + } + } + + return $this->classes; + } + + /** + * Returns the traits of this node. + * + * @return array + */ + public function getTraits() + { + if ($this->traits === null) { + $this->traits = []; + + foreach ($this->children as $child) { + $this->traits = array_merge( + $this->traits, + $child->getTraits() + ); + } + } + + return $this->traits; + } + + /** + * Returns the functions of this node. + * + * @return array + */ + public function getFunctions() + { + if ($this->functions === null) { + $this->functions = []; + + foreach ($this->children as $child) { + $this->functions = array_merge( + $this->functions, + $child->getFunctions() + ); + } + } + + return $this->functions; + } + + /** + * Returns the LOC/CLOC/NCLOC of this node. + * + * @return array + */ + public function getLinesOfCode() + { + if ($this->linesOfCode === null) { + $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; + + foreach ($this->children as $child) { + $linesOfCode = $child->getLinesOfCode(); + + $this->linesOfCode['loc'] += $linesOfCode['loc']; + $this->linesOfCode['cloc'] += $linesOfCode['cloc']; + $this->linesOfCode['ncloc'] += $linesOfCode['ncloc']; + } + } + + return $this->linesOfCode; + } + + /** + * Returns the number of executable lines. + * + * @return int + */ + public function getNumExecutableLines() + { + if ($this->numExecutableLines == -1) { + $this->numExecutableLines = 0; + + foreach ($this->children as $child) { + $this->numExecutableLines += $child->getNumExecutableLines(); + } + } + + return $this->numExecutableLines; + } + + /** + * Returns the number of executed lines. + * + * @return int + */ + public function getNumExecutedLines() + { + if ($this->numExecutedLines == -1) { + $this->numExecutedLines = 0; + + foreach ($this->children as $child) { + $this->numExecutedLines += $child->getNumExecutedLines(); + } + } + + return $this->numExecutedLines; + } + + /** + * Returns the number of classes. + * + * @return int + */ + public function getNumClasses() + { + if ($this->numClasses == -1) { + $this->numClasses = 0; + + foreach ($this->children as $child) { + $this->numClasses += $child->getNumClasses(); + } + } + + return $this->numClasses; + } + + /** + * Returns the number of tested classes. + * + * @return int + */ + public function getNumTestedClasses() + { + if ($this->numTestedClasses == -1) { + $this->numTestedClasses = 0; + + foreach ($this->children as $child) { + $this->numTestedClasses += $child->getNumTestedClasses(); + } + } + + return $this->numTestedClasses; + } + + /** + * Returns the number of traits. + * + * @return int + */ + public function getNumTraits() + { + if ($this->numTraits == -1) { + $this->numTraits = 0; + + foreach ($this->children as $child) { + $this->numTraits += $child->getNumTraits(); + } + } + + return $this->numTraits; + } + + /** + * Returns the number of tested traits. + * + * @return int + */ + public function getNumTestedTraits() + { + if ($this->numTestedTraits == -1) { + $this->numTestedTraits = 0; + + foreach ($this->children as $child) { + $this->numTestedTraits += $child->getNumTestedTraits(); + } + } + + return $this->numTestedTraits; + } + + /** + * Returns the number of methods. + * + * @return int + */ + public function getNumMethods() + { + if ($this->numMethods == -1) { + $this->numMethods = 0; + + foreach ($this->children as $child) { + $this->numMethods += $child->getNumMethods(); + } + } + + return $this->numMethods; + } + + /** + * Returns the number of tested methods. + * + * @return int + */ + public function getNumTestedMethods() + { + if ($this->numTestedMethods == -1) { + $this->numTestedMethods = 0; + + foreach ($this->children as $child) { + $this->numTestedMethods += $child->getNumTestedMethods(); + } + } + + return $this->numTestedMethods; + } + + /** + * Returns the number of functions. + * + * @return int + */ + public function getNumFunctions() + { + if ($this->numFunctions == -1) { + $this->numFunctions = 0; + + foreach ($this->children as $child) { + $this->numFunctions += $child->getNumFunctions(); + } + } + + return $this->numFunctions; + } + + /** + * Returns the number of tested functions. + * + * @return int + */ + public function getNumTestedFunctions() + { + if ($this->numTestedFunctions == -1) { + $this->numTestedFunctions = 0; + + foreach ($this->children as $child) { + $this->numTestedFunctions += $child->getNumTestedFunctions(); + } + } + + return $this->numTestedFunctions; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/File.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/File.php new file mode 100644 index 0000000..44856f0 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/File.php @@ -0,0 +1,722 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\InvalidArgumentException; + +/** + * Represents a file in the code coverage information tree. + */ +class File extends AbstractNode +{ + /** + * @var array + */ + private $coverageData; + + /** + * @var array + */ + private $testData; + + /** + * @var int + */ + private $numExecutableLines = 0; + + /** + * @var int + */ + private $numExecutedLines = 0; + + /** + * @var array + */ + private $classes = []; + + /** + * @var array + */ + private $traits = []; + + /** + * @var array + */ + private $functions = []; + + /** + * @var array + */ + private $linesOfCode = []; + + /** + * @var int + */ + private $numClasses = null; + + /** + * @var int + */ + private $numTestedClasses = 0; + + /** + * @var int + */ + private $numTraits = null; + + /** + * @var int + */ + private $numTestedTraits = 0; + + /** + * @var int + */ + private $numMethods = null; + + /** + * @var int + */ + private $numTestedMethods = null; + + /** + * @var int + */ + private $numTestedFunctions = null; + + /** + * @var array + */ + private $startLines = []; + + /** + * @var array + */ + private $endLines = []; + + /** + * @var bool + */ + private $cacheTokens; + + /** + * Constructor. + * + * @param string $name + * @param AbstractNode $parent + * @param array $coverageData + * @param array $testData + * @param bool $cacheTokens + * + * @throws InvalidArgumentException + */ + public function __construct($name, AbstractNode $parent, array $coverageData, array $testData, $cacheTokens) + { + if (!is_bool($cacheTokens)) { + throw InvalidArgumentException::create( + 1, + 'boolean' + ); + } + + parent::__construct($name, $parent); + + $this->coverageData = $coverageData; + $this->testData = $testData; + $this->cacheTokens = $cacheTokens; + + $this->calculateStatistics(); + } + + /** + * Returns the number of files in/under this node. + * + * @return int + */ + public function count() + { + return 1; + } + + /** + * Returns the code coverage data of this node. + * + * @return array + */ + public function getCoverageData() + { + return $this->coverageData; + } + + /** + * Returns the test data of this node. + * + * @return array + */ + public function getTestData() + { + return $this->testData; + } + + /** + * Returns the classes of this node. + * + * @return array + */ + public function getClasses() + { + return $this->classes; + } + + /** + * Returns the traits of this node. + * + * @return array + */ + public function getTraits() + { + return $this->traits; + } + + /** + * Returns the functions of this node. + * + * @return array + */ + public function getFunctions() + { + return $this->functions; + } + + /** + * Returns the LOC/CLOC/NCLOC of this node. + * + * @return array + */ + public function getLinesOfCode() + { + return $this->linesOfCode; + } + + /** + * Returns the number of executable lines. + * + * @return int + */ + public function getNumExecutableLines() + { + return $this->numExecutableLines; + } + + /** + * Returns the number of executed lines. + * + * @return int + */ + public function getNumExecutedLines() + { + return $this->numExecutedLines; + } + + /** + * Returns the number of classes. + * + * @return int + */ + public function getNumClasses() + { + if ($this->numClasses === null) { + $this->numClasses = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numClasses++; + + continue 2; + } + } + } + } + + return $this->numClasses; + } + + /** + * Returns the number of tested classes. + * + * @return int + */ + public function getNumTestedClasses() + { + return $this->numTestedClasses; + } + + /** + * Returns the number of traits. + * + * @return int + */ + public function getNumTraits() + { + if ($this->numTraits === null) { + $this->numTraits = 0; + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numTraits++; + + continue 2; + } + } + } + } + + return $this->numTraits; + } + + /** + * Returns the number of tested traits. + * + * @return int + */ + public function getNumTestedTraits() + { + return $this->numTestedTraits; + } + + /** + * Returns the number of methods. + * + * @return int + */ + public function getNumMethods() + { + if ($this->numMethods === null) { + $this->numMethods = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numMethods++; + } + } + } + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numMethods++; + } + } + } + } + + return $this->numMethods; + } + + /** + * Returns the number of tested methods. + * + * @return int + */ + public function getNumTestedMethods() + { + if ($this->numTestedMethods === null) { + $this->numTestedMethods = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0 && + $method['coverage'] == 100) { + $this->numTestedMethods++; + } + } + } + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0 && + $method['coverage'] == 100) { + $this->numTestedMethods++; + } + } + } + } + + return $this->numTestedMethods; + } + + /** + * Returns the number of functions. + * + * @return int + */ + public function getNumFunctions() + { + return count($this->functions); + } + + /** + * Returns the number of tested functions. + * + * @return int + */ + public function getNumTestedFunctions() + { + if ($this->numTestedFunctions === null) { + $this->numTestedFunctions = 0; + + foreach ($this->functions as $function) { + if ($function['executableLines'] > 0 && + $function['coverage'] == 100) { + $this->numTestedFunctions++; + } + } + } + + return $this->numTestedFunctions; + } + + /** + * Calculates coverage statistics for the file. + */ + protected function calculateStatistics() + { + $classStack = $functionStack = []; + + if ($this->cacheTokens) { + $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath()); + } else { + $tokens = new \PHP_Token_Stream($this->getPath()); + } + + $this->processClasses($tokens); + $this->processTraits($tokens); + $this->processFunctions($tokens); + $this->linesOfCode = $tokens->getLinesOfCode(); + unset($tokens); + + for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) { + if (isset($this->startLines[$lineNumber])) { + // Start line of a class. + if (isset($this->startLines[$lineNumber]['className'])) { + if (isset($currentClass)) { + $classStack[] = &$currentClass; + } + + $currentClass = &$this->startLines[$lineNumber]; + } // Start line of a trait. + elseif (isset($this->startLines[$lineNumber]['traitName'])) { + $currentTrait = &$this->startLines[$lineNumber]; + } // Start line of a method. + elseif (isset($this->startLines[$lineNumber]['methodName'])) { + $currentMethod = &$this->startLines[$lineNumber]; + } // Start line of a function. + elseif (isset($this->startLines[$lineNumber]['functionName'])) { + if (isset($currentFunction)) { + $functionStack[] = &$currentFunction; + } + + $currentFunction = &$this->startLines[$lineNumber]; + } + } + + if (isset($this->coverageData[$lineNumber])) { + if (isset($currentClass)) { + $currentClass['executableLines']++; + } + + if (isset($currentTrait)) { + $currentTrait['executableLines']++; + } + + if (isset($currentMethod)) { + $currentMethod['executableLines']++; + } + + if (isset($currentFunction)) { + $currentFunction['executableLines']++; + } + + $this->numExecutableLines++; + + if (count($this->coverageData[$lineNumber]) > 0) { + if (isset($currentClass)) { + $currentClass['executedLines']++; + } + + if (isset($currentTrait)) { + $currentTrait['executedLines']++; + } + + if (isset($currentMethod)) { + $currentMethod['executedLines']++; + } + + if (isset($currentFunction)) { + $currentFunction['executedLines']++; + } + + $this->numExecutedLines++; + } + } + + if (isset($this->endLines[$lineNumber])) { + // End line of a class. + if (isset($this->endLines[$lineNumber]['className'])) { + unset($currentClass); + + if ($classStack) { + end($classStack); + $key = key($classStack); + $currentClass = &$classStack[$key]; + unset($classStack[$key]); + } + } // End line of a trait. + elseif (isset($this->endLines[$lineNumber]['traitName'])) { + unset($currentTrait); + } // End line of a method. + elseif (isset($this->endLines[$lineNumber]['methodName'])) { + unset($currentMethod); + } // End line of a function. + elseif (isset($this->endLines[$lineNumber]['functionName'])) { + unset($currentFunction); + + if ($functionStack) { + end($functionStack); + $key = key($functionStack); + $currentFunction = &$functionStack[$key]; + unset($functionStack[$key]); + } + } + } + } + + foreach ($this->traits as &$trait) { + foreach ($trait['methods'] as &$method) { + if ($method['executableLines'] > 0) { + $method['coverage'] = ($method['executedLines'] / + $method['executableLines']) * 100; + } else { + $method['coverage'] = 100; + } + + $method['crap'] = $this->crap( + $method['ccn'], + $method['coverage'] + ); + + $trait['ccn'] += $method['ccn']; + } + + if ($trait['executableLines'] > 0) { + $trait['coverage'] = ($trait['executedLines'] / + $trait['executableLines']) * 100; + + if ($trait['coverage'] == 100) { + $this->numTestedClasses++; + } + } else { + $trait['coverage'] = 100; + } + + $trait['crap'] = $this->crap( + $trait['ccn'], + $trait['coverage'] + ); + } + + foreach ($this->classes as &$class) { + foreach ($class['methods'] as &$method) { + if ($method['executableLines'] > 0) { + $method['coverage'] = ($method['executedLines'] / + $method['executableLines']) * 100; + } else { + $method['coverage'] = 100; + } + + $method['crap'] = $this->crap( + $method['ccn'], + $method['coverage'] + ); + + $class['ccn'] += $method['ccn']; + } + + if ($class['executableLines'] > 0) { + $class['coverage'] = ($class['executedLines'] / + $class['executableLines']) * 100; + + if ($class['coverage'] == 100) { + $this->numTestedClasses++; + } + } else { + $class['coverage'] = 100; + } + + $class['crap'] = $this->crap( + $class['ccn'], + $class['coverage'] + ); + } + } + + /** + * @param \PHP_Token_Stream $tokens + */ + protected function processClasses(\PHP_Token_Stream $tokens) + { + $classes = $tokens->getClasses(); + unset($tokens); + + $link = $this->getId() . '.html#'; + + foreach ($classes as $className => $class) { + $this->classes[$className] = [ + 'className' => $className, + 'methods' => [], + 'startLine' => $class['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => 0, + 'coverage' => 0, + 'crap' => 0, + 'package' => $class['package'], + 'link' => $link . $class['startLine'] + ]; + + $this->startLines[$class['startLine']] = &$this->classes[$className]; + $this->endLines[$class['endLine']] = &$this->classes[$className]; + + foreach ($class['methods'] as $methodName => $method) { + $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); + + $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName]; + $this->endLines[$method['endLine']] = &$this->classes[$className]['methods'][$methodName]; + } + } + } + + /** + * @param \PHP_Token_Stream $tokens + */ + protected function processTraits(\PHP_Token_Stream $tokens) + { + $traits = $tokens->getTraits(); + unset($tokens); + + $link = $this->getId() . '.html#'; + + foreach ($traits as $traitName => $trait) { + $this->traits[$traitName] = [ + 'traitName' => $traitName, + 'methods' => [], + 'startLine' => $trait['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => 0, + 'coverage' => 0, + 'crap' => 0, + 'package' => $trait['package'], + 'link' => $link . $trait['startLine'] + ]; + + $this->startLines[$trait['startLine']] = &$this->traits[$traitName]; + $this->endLines[$trait['endLine']] = &$this->traits[$traitName]; + + foreach ($trait['methods'] as $methodName => $method) { + $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); + + $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName]; + $this->endLines[$method['endLine']] = &$this->traits[$traitName]['methods'][$methodName]; + } + } + } + + /** + * @param \PHP_Token_Stream $tokens + */ + protected function processFunctions(\PHP_Token_Stream $tokens) + { + $functions = $tokens->getFunctions(); + unset($tokens); + + $link = $this->getId() . '.html#'; + + foreach ($functions as $functionName => $function) { + $this->functions[$functionName] = [ + 'functionName' => $functionName, + 'signature' => $function['signature'], + 'startLine' => $function['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => $function['ccn'], + 'coverage' => 0, + 'crap' => 0, + 'link' => $link . $function['startLine'] + ]; + + $this->startLines[$function['startLine']] = &$this->functions[$functionName]; + $this->endLines[$function['endLine']] = &$this->functions[$functionName]; + } + } + + /** + * Calculates the Change Risk Anti-Patterns (CRAP) index for a unit of code + * based on its cyclomatic complexity and percentage of code coverage. + * + * @param int $ccn + * @param float $coverage + * + * @return string + */ + protected function crap($ccn, $coverage) + { + if ($coverage == 0) { + return (string) (pow($ccn, 2) + $ccn); + } + + if ($coverage >= 95) { + return (string) $ccn; + } + + return sprintf( + '%01.2F', + pow($ccn, 2) * pow(1 - $coverage/100, 3) + $ccn + ); + } + + /** + * @param string $methodName + * @param array $method + * @param string $link + * + * @return array + */ + private function newMethod($methodName, array $method, $link) + { + return [ + 'methodName' => $methodName, + 'visibility' => $method['visibility'], + 'signature' => $method['signature'], + 'startLine' => $method['startLine'], + 'endLine' => $method['endLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => $method['ccn'], + 'coverage' => 0, + 'crap' => 0, + 'link' => $link . $method['startLine'], + ]; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Iterator.php new file mode 100644 index 0000000..e246380 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Node/Iterator.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Node; + +/** + * Recursive iterator for node object graphs. + */ +class Iterator implements \RecursiveIterator +{ + /** + * @var int + */ + private $position; + + /** + * @var AbstractNode[] + */ + private $nodes; + + /** + * @param Directory $node + */ + public function __construct(Directory $node) + { + $this->nodes = $node->getChildNodes(); + } + + /** + * Rewinds the Iterator to the first element. + */ + public function rewind() + { + $this->position = 0; + } + + /** + * Checks if there is a current element after calls to rewind() or next(). + * + * @return bool + */ + public function valid() + { + return $this->position < count($this->nodes); + } + + /** + * Returns the key of the current element. + * + * @return int + */ + public function key() + { + return $this->position; + } + + /** + * Returns the current element. + * + * @return \PHPUnit_Framework_Test + */ + public function current() + { + return $this->valid() ? $this->nodes[$this->position] : null; + } + + /** + * Moves forward to next element. + */ + public function next() + { + $this->position++; + } + + /** + * Returns the sub iterator for the current element. + * + * @return Iterator + */ + public function getChildren() + { + return new self( + $this->nodes[$this->position] + ); + } + + /** + * Checks whether the current element has children. + * + * @return bool + */ + public function hasChildren() + { + return $this->nodes[$this->position] instanceof Directory; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Clover.php new file mode 100644 index 0000000..054b1df --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Clover.php @@ -0,0 +1,251 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\File; + +/** + * Generates a Clover XML logfile from a code coverage object. + */ +class Clover +{ + /** + * @param CodeCoverage $coverage + * @param string $target + * @param string $name + * + * @return string + */ + public function process(CodeCoverage $coverage, $target = null, $name = null) + { + $xmlDocument = new \DOMDocument('1.0', 'UTF-8'); + $xmlDocument->formatOutput = true; + + $xmlCoverage = $xmlDocument->createElement('coverage'); + $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']); + $xmlDocument->appendChild($xmlCoverage); + + $xmlProject = $xmlDocument->createElement('project'); + $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']); + + if (is_string($name)) { + $xmlProject->setAttribute('name', $name); + } + + $xmlCoverage->appendChild($xmlProject); + + $packages = []; + $report = $coverage->getReport(); + unset($coverage); + + foreach ($report as $item) { + if (!$item instanceof File) { + continue; + } + + /* @var File $item */ + + $xmlFile = $xmlDocument->createElement('file'); + $xmlFile->setAttribute('name', $item->getPath()); + + $classes = $item->getClassesAndTraits(); + $coverage = $item->getCoverageData(); + $lines = []; + $namespace = 'global'; + + foreach ($classes as $className => $class) { + $classStatements = 0; + $coveredClassStatements = 0; + $coveredMethods = 0; + $classMethods = 0; + + foreach ($class['methods'] as $methodName => $method) { + if ($method['executableLines'] == 0) { + continue; + } + + $classMethods++; + $classStatements += $method['executableLines']; + $coveredClassStatements += $method['executedLines']; + + if ($method['coverage'] == 100) { + $coveredMethods++; + } + + $methodCount = 0; + + foreach (range($method['startLine'], $method['endLine']) as $line) { + if (isset($coverage[$line]) && ($coverage[$line] !== null)) { + $methodCount = max($methodCount, count($coverage[$line])); + } + } + + $lines[$method['startLine']] = [ + 'ccn' => $method['ccn'], + 'count' => $methodCount, + 'crap' => $method['crap'], + 'type' => 'method', + 'visibility' => $method['visibility'], + 'name' => $methodName + ]; + } + + if (!empty($class['package']['namespace'])) { + $namespace = $class['package']['namespace']; + } + + $xmlClass = $xmlDocument->createElement('class'); + $xmlClass->setAttribute('name', $className); + $xmlClass->setAttribute('namespace', $namespace); + + if (!empty($class['package']['fullPackage'])) { + $xmlClass->setAttribute( + 'fullPackage', + $class['package']['fullPackage'] + ); + } + + if (!empty($class['package']['category'])) { + $xmlClass->setAttribute( + 'category', + $class['package']['category'] + ); + } + + if (!empty($class['package']['package'])) { + $xmlClass->setAttribute( + 'package', + $class['package']['package'] + ); + } + + if (!empty($class['package']['subpackage'])) { + $xmlClass->setAttribute( + 'subpackage', + $class['package']['subpackage'] + ); + } + + $xmlFile->appendChild($xmlClass); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('complexity', $class['ccn']); + $xmlMetrics->setAttribute('methods', $classMethods); + $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $classStatements); + $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements); + $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */); + $xmlClass->appendChild($xmlMetrics); + } + + foreach ($coverage as $line => $data) { + if ($data === null || isset($lines[$line])) { + continue; + } + + $lines[$line] = [ + 'count' => count($data), 'type' => 'stmt' + ]; + } + + ksort($lines); + + foreach ($lines as $line => $data) { + $xmlLine = $xmlDocument->createElement('line'); + $xmlLine->setAttribute('num', $line); + $xmlLine->setAttribute('type', $data['type']); + + if (isset($data['name'])) { + $xmlLine->setAttribute('name', $data['name']); + } + + if (isset($data['visibility'])) { + $xmlLine->setAttribute('visibility', $data['visibility']); + } + + if (isset($data['ccn'])) { + $xmlLine->setAttribute('complexity', $data['ccn']); + } + + if (isset($data['crap'])) { + $xmlLine->setAttribute('crap', $data['crap']); + } + + $xmlLine->setAttribute('count', $data['count']); + $xmlFile->appendChild($xmlLine); + } + + $linesOfCode = $item->getLinesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); + $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); + $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits()); + $xmlMetrics->setAttribute('methods', $item->getNumMethods()); + $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods()); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines()); + $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */); + $xmlFile->appendChild($xmlMetrics); + + if ($namespace == 'global') { + $xmlProject->appendChild($xmlFile); + } else { + if (!isset($packages[$namespace])) { + $packages[$namespace] = $xmlDocument->createElement( + 'package' + ); + + $packages[$namespace]->setAttribute('name', $namespace); + $xmlProject->appendChild($packages[$namespace]); + } + + $packages[$namespace]->appendChild($xmlFile); + } + } + + $linesOfCode = $report->getLinesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('files', count($report)); + $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); + $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); + $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits()); + $xmlMetrics->setAttribute('methods', $report->getNumMethods()); + $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods()); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines()); + $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */); + $xmlProject->appendChild($xmlMetrics); + + $buffer = $xmlDocument->saveXML(); + + if ($target !== null) { + if (!is_dir(dirname($target))) { + mkdir(dirname($target), 0777, true); + } + + file_put_contents($target, $buffer); + } + + return $buffer; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php new file mode 100644 index 0000000..7adf78f --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php @@ -0,0 +1,172 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\File; +use SebastianBergmann\CodeCoverage\InvalidArgumentException; + +class Crap4j +{ + /** + * @var int + */ + private $threshold; + + /** + * @param int $threshold + */ + public function __construct($threshold = 30) + { + if (!is_int($threshold)) { + throw InvalidArgumentException::create( + 1, + 'integer' + ); + } + + $this->threshold = $threshold; + } + + /** + * @param CodeCoverage $coverage + * @param string $target + * @param string $name + * + * @return string + */ + public function process(CodeCoverage $coverage, $target = null, $name = null) + { + $document = new \DOMDocument('1.0', 'UTF-8'); + $document->formatOutput = true; + + $root = $document->createElement('crap_result'); + $document->appendChild($root); + + $project = $document->createElement('project', is_string($name) ? $name : ''); + $root->appendChild($project); + $root->appendChild($document->createElement('timestamp', date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME']))); + + $stats = $document->createElement('stats'); + $methodsNode = $document->createElement('methods'); + + $report = $coverage->getReport(); + unset($coverage); + + $fullMethodCount = 0; + $fullCrapMethodCount = 0; + $fullCrapLoad = 0; + $fullCrap = 0; + + foreach ($report as $item) { + $namespace = 'global'; + + if (!$item instanceof File) { + continue; + } + + $file = $document->createElement('file'); + $file->setAttribute('name', $item->getPath()); + + $classes = $item->getClassesAndTraits(); + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']); + + $fullCrap += $method['crap']; + $fullCrapLoad += $crapLoad; + $fullMethodCount++; + + if ($method['crap'] >= $this->threshold) { + $fullCrapMethodCount++; + } + + $methodNode = $document->createElement('method'); + + if (!empty($class['package']['namespace'])) { + $namespace = $class['package']['namespace']; + } + + $methodNode->appendChild($document->createElement('package', $namespace)); + $methodNode->appendChild($document->createElement('className', $className)); + $methodNode->appendChild($document->createElement('methodName', $methodName)); + $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature']))); + $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature']))); + $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap']))); + $methodNode->appendChild($document->createElement('complexity', $method['ccn'])); + $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage']))); + $methodNode->appendChild($document->createElement('crapLoad', round($crapLoad))); + + $methodsNode->appendChild($methodNode); + } + } + } + + $stats->appendChild($document->createElement('name', 'Method Crap Stats')); + $stats->appendChild($document->createElement('methodCount', $fullMethodCount)); + $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount)); + $stats->appendChild($document->createElement('crapLoad', round($fullCrapLoad))); + $stats->appendChild($document->createElement('totalCrap', $fullCrap)); + + if ($fullMethodCount > 0) { + $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount); + } else { + $crapMethodPercent = 0; + } + + $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent)); + + $root->appendChild($stats); + $root->appendChild($methodsNode); + + $buffer = $document->saveXML(); + + if ($target !== null) { + if (!is_dir(dirname($target))) { + mkdir(dirname($target), 0777, true); + } + + file_put_contents($target, $buffer); + } + + return $buffer; + } + + /** + * @param float $crapValue + * @param int $cyclomaticComplexity + * @param float $coveragePercent + * + * @return float + */ + private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent) + { + $crapLoad = 0; + + if ($crapValue >= $this->threshold) { + $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100); + $crapLoad += $cyclomaticComplexity / $this->threshold; + } + + return $crapLoad; + } + + /** + * @param float $value + * + * @return float + */ + private function roundValue($value) + { + return round($value, 2); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php new file mode 100644 index 0000000..adcfe42 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php @@ -0,0 +1,179 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Generates an HTML report from a code coverage object. + */ +class Facade +{ + /** + * @var string + */ + private $templatePath; + + /** + * @var string + */ + private $generator; + + /** + * @var int + */ + private $lowUpperBound; + + /** + * @var int + */ + private $highLowerBound; + + /** + * Constructor. + * + * @param int $lowUpperBound + * @param int $highLowerBound + * @param string $generator + */ + public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '') + { + $this->generator = $generator; + $this->highLowerBound = $highLowerBound; + $this->lowUpperBound = $lowUpperBound; + $this->templatePath = __DIR__ . '/Renderer/Template/'; + } + + /** + * @param CodeCoverage $coverage + * @param string $target + */ + public function process(CodeCoverage $coverage, $target) + { + $target = $this->getDirectory($target); + $report = $coverage->getReport(); + unset($coverage); + + if (!isset($_SERVER['REQUEST_TIME'])) { + $_SERVER['REQUEST_TIME'] = time(); + } + + $date = date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']); + + $dashboard = new Dashboard( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $directory = new Directory( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $file = new File( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $directory->render($report, $target . 'index.html'); + $dashboard->render($report, $target . 'dashboard.html'); + + foreach ($report as $node) { + $id = $node->getId(); + + if ($node instanceof DirectoryNode) { + if (!file_exists($target . $id)) { + mkdir($target . $id, 0777, true); + } + + $directory->render($node, $target . $id . '/index.html'); + $dashboard->render($node, $target . $id . '/dashboard.html'); + } else { + $dir = dirname($target . $id); + + if (!file_exists($dir)) { + mkdir($dir, 0777, true); + } + + $file->render($node, $target . $id . '.html'); + } + } + + $this->copyFiles($target); + } + + /** + * @param string $target + */ + private function copyFiles($target) + { + $dir = $this->getDirectory($target . 'css'); + copy($this->templatePath . 'css/bootstrap.min.css', $dir . 'bootstrap.min.css'); + copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); + copy($this->templatePath . 'css/style.css', $dir . 'style.css'); + + $dir = $this->getDirectory($target . 'fonts'); + copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot'); + copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg'); + copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf'); + copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff'); + copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2'); + + $dir = $this->getDirectory($target . 'js'); + copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js'); + copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); + copy($this->templatePath . 'js/holder.min.js', $dir . 'holder.min.js'); + copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js'); + copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); + copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); + copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js'); + } + + /** + * @param string $directory + * + * @return string + * + * @throws RuntimeException + */ + private function getDirectory($directory) + { + if (substr($directory, -1, 1) != DIRECTORY_SEPARATOR) { + $directory .= DIRECTORY_SEPARATOR; + } + + if (is_dir($directory)) { + return $directory; + } + + if (@mkdir($directory, 0777, true)) { + return $directory; + } + + throw new RuntimeException( + sprintf( + 'Directory "%s" does not exist.', + $directory + ) + ); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php new file mode 100644 index 0000000..da0937e --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php @@ -0,0 +1,298 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode; +use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; +use SebastianBergmann\Environment\Runtime; +use SebastianBergmann\Version; + +/** + * Base class for node renderers. + */ +abstract class Renderer +{ + /** + * @var string + */ + protected $templatePath; + + /** + * @var string + */ + protected $generator; + + /** + * @var string + */ + protected $date; + + /** + * @var int + */ + protected $lowUpperBound; + + /** + * @var int + */ + protected $highLowerBound; + + /** + * @var string + */ + protected $version; + + /** + * Constructor. + * + * @param string $templatePath + * @param string $generator + * @param string $date + * @param int $lowUpperBound + * @param int $highLowerBound + */ + public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) + { + $version = new Version('4.0.8', dirname(dirname(dirname(dirname(__DIR__))))); + + $this->templatePath = $templatePath; + $this->generator = $generator; + $this->date = $date; + $this->lowUpperBound = $lowUpperBound; + $this->highLowerBound = $highLowerBound; + $this->version = $version->getVersion(); + } + + /** + * @param \Text_Template $template + * @param array $data + * + * @return string + */ + protected function renderItemTemplate(\Text_Template $template, array $data) + { + $numSeparator = ' / '; + + if (isset($data['numClasses']) && $data['numClasses'] > 0) { + $classesLevel = $this->getColorLevel($data['testedClassesPercent']); + + $classesNumber = $data['numTestedClasses'] . $numSeparator . + $data['numClasses']; + + $classesBar = $this->getCoverageBar( + $data['testedClassesPercent'] + ); + } else { + $classesLevel = ''; + $classesNumber = '0' . $numSeparator . '0'; + $classesBar = ''; + $data['testedClassesPercentAsString'] = 'n/a'; + } + + if ($data['numMethods'] > 0) { + $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']); + + $methodsNumber = $data['numTestedMethods'] . $numSeparator . + $data['numMethods']; + + $methodsBar = $this->getCoverageBar( + $data['testedMethodsPercent'] + ); + } else { + $methodsLevel = ''; + $methodsNumber = '0' . $numSeparator . '0'; + $methodsBar = ''; + $data['testedMethodsPercentAsString'] = 'n/a'; + } + + if ($data['numExecutableLines'] > 0) { + $linesLevel = $this->getColorLevel($data['linesExecutedPercent']); + + $linesNumber = $data['numExecutedLines'] . $numSeparator . + $data['numExecutableLines']; + + $linesBar = $this->getCoverageBar( + $data['linesExecutedPercent'] + ); + } else { + $linesLevel = ''; + $linesNumber = '0' . $numSeparator . '0'; + $linesBar = ''; + $data['linesExecutedPercentAsString'] = 'n/a'; + } + + $template->setVar( + [ + 'icon' => isset($data['icon']) ? $data['icon'] : '', + 'crap' => isset($data['crap']) ? $data['crap'] : '', + 'name' => $data['name'], + 'lines_bar' => $linesBar, + 'lines_executed_percent' => $data['linesExecutedPercentAsString'], + 'lines_level' => $linesLevel, + 'lines_number' => $linesNumber, + 'methods_bar' => $methodsBar, + 'methods_tested_percent' => $data['testedMethodsPercentAsString'], + 'methods_level' => $methodsLevel, + 'methods_number' => $methodsNumber, + 'classes_bar' => $classesBar, + 'classes_tested_percent' => isset($data['testedClassesPercentAsString']) ? $data['testedClassesPercentAsString'] : '', + 'classes_level' => $classesLevel, + 'classes_number' => $classesNumber + ] + ); + + return $template->render(); + } + + /** + * @param \Text_Template $template + * @param AbstractNode $node + */ + protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node) + { + $template->setVar( + [ + 'id' => $node->getId(), + 'full_path' => $node->getPath(), + 'path_to_root' => $this->getPathToRoot($node), + 'breadcrumbs' => $this->getBreadcrumbs($node), + 'date' => $this->date, + 'version' => $this->version, + 'runtime' => $this->getRuntimeString(), + 'generator' => $this->generator, + 'low_upper_bound' => $this->lowUpperBound, + 'high_lower_bound' => $this->highLowerBound + ] + ); + } + + protected function getBreadcrumbs(AbstractNode $node) + { + $breadcrumbs = ''; + $path = $node->getPathAsArray(); + $pathToRoot = []; + $max = count($path); + + if ($node instanceof FileNode) { + $max--; + } + + for ($i = 0; $i < $max; $i++) { + $pathToRoot[] = str_repeat('../', $i); + } + + foreach ($path as $step) { + if ($step !== $node) { + $breadcrumbs .= $this->getInactiveBreadcrumb( + $step, + array_pop($pathToRoot) + ); + } else { + $breadcrumbs .= $this->getActiveBreadcrumb($step); + } + } + + return $breadcrumbs; + } + + protected function getActiveBreadcrumb(AbstractNode $node) + { + $buffer = sprintf( + '
  • %s
  • ' . "\n", + $node->getName() + ); + + if ($node instanceof DirectoryNode) { + $buffer .= '
  • (Dashboard)
  • ' . "\n"; + } + + return $buffer; + } + + protected function getInactiveBreadcrumb(AbstractNode $node, $pathToRoot) + { + return sprintf( + '
  • %s
  • ' . "\n", + $pathToRoot, + $node->getName() + ); + } + + protected function getPathToRoot(AbstractNode $node) + { + $id = $node->getId(); + $depth = substr_count($id, '/'); + + if ($id != 'index' && + $node instanceof DirectoryNode) { + $depth++; + } + + return str_repeat('../', $depth); + } + + protected function getCoverageBar($percent) + { + $level = $this->getColorLevel($percent); + + $template = new \Text_Template( + $this->templatePath . 'coverage_bar.html', + '{{', + '}}' + ); + + $template->setVar(['level' => $level, 'percent' => sprintf('%.2F', $percent)]); + + return $template->render(); + } + + /** + * @param int $percent + * + * @return string + */ + protected function getColorLevel($percent) + { + if ($percent <= $this->lowUpperBound) { + return 'danger'; + } elseif ($percent > $this->lowUpperBound && + $percent < $this->highLowerBound) { + return 'warning'; + } else { + return 'success'; + } + } + + /** + * @return string + */ + private function getRuntimeString() + { + $runtime = new Runtime; + + $buffer = sprintf( + '%s %s', + $runtime->getVendorUrl(), + $runtime->getName(), + $runtime->getVersion() + ); + + if ($runtime->hasXdebug() && !$runtime->hasPHPDBGCodeCoverage()) { + $buffer .= sprintf( + ' with Xdebug %s', + phpversion('xdebug') + ); + } + + return $buffer; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php new file mode 100644 index 0000000..7cde175 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php @@ -0,0 +1,302 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; + +/** + * Renders the dashboard for a directory node. + */ +class Dashboard extends Renderer +{ + /** + * @param DirectoryNode $node + * @param string $file + */ + public function render(DirectoryNode $node, $file) + { + $classes = $node->getClassesAndTraits(); + $template = new \Text_Template( + $this->templatePath . 'dashboard.html', + '{{', + '}}' + ); + + $this->setCommonTemplateVariables($template, $node); + + $baseLink = $node->getId() . '/'; + $complexity = $this->complexity($classes, $baseLink); + $coverageDistribution = $this->coverageDistribution($classes); + $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink); + $projectRisks = $this->projectRisks($classes, $baseLink); + + $template->setVar( + [ + 'insufficient_coverage_classes' => $insufficientCoverage['class'], + 'insufficient_coverage_methods' => $insufficientCoverage['method'], + 'project_risks_classes' => $projectRisks['class'], + 'project_risks_methods' => $projectRisks['method'], + 'complexity_class' => $complexity['class'], + 'complexity_method' => $complexity['method'], + 'class_coverage_distribution' => $coverageDistribution['class'], + 'method_coverage_distribution' => $coverageDistribution['method'] + ] + ); + + $template->renderTo($file); + } + + /** + * Returns the data for the Class/Method Complexity charts. + * + * @param array $classes + * @param string $baseLink + * + * @return array + */ + protected function complexity(array $classes, $baseLink) + { + $result = ['class' => [], 'method' => []]; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($className != '*') { + $methodName = $className . '::' . $methodName; + } + + $result['method'][] = [ + $method['coverage'], + $method['ccn'], + sprintf( + '%s', + str_replace($baseLink, '', $method['link']), + $methodName + ) + ]; + } + + $result['class'][] = [ + $class['coverage'], + $class['ccn'], + sprintf( + '%s', + str_replace($baseLink, '', $class['link']), + $className + ) + ]; + } + + return [ + 'class' => json_encode($result['class']), + 'method' => json_encode($result['method']) + ]; + } + + /** + * Returns the data for the Class / Method Coverage Distribution chart. + * + * @param array $classes + * + * @return array + */ + protected function coverageDistribution(array $classes) + { + $result = [ + 'class' => [ + '0%' => 0, + '0-10%' => 0, + '10-20%' => 0, + '20-30%' => 0, + '30-40%' => 0, + '40-50%' => 0, + '50-60%' => 0, + '60-70%' => 0, + '70-80%' => 0, + '80-90%' => 0, + '90-100%' => 0, + '100%' => 0 + ], + 'method' => [ + '0%' => 0, + '0-10%' => 0, + '10-20%' => 0, + '20-30%' => 0, + '30-40%' => 0, + '40-50%' => 0, + '50-60%' => 0, + '60-70%' => 0, + '70-80%' => 0, + '80-90%' => 0, + '90-100%' => 0, + '100%' => 0 + ] + ]; + + foreach ($classes as $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] == 0) { + $result['method']['0%']++; + } elseif ($method['coverage'] == 100) { + $result['method']['100%']++; + } else { + $key = floor($method['coverage'] / 10) * 10; + $key = $key . '-' . ($key + 10) . '%'; + $result['method'][$key]++; + } + } + + if ($class['coverage'] == 0) { + $result['class']['0%']++; + } elseif ($class['coverage'] == 100) { + $result['class']['100%']++; + } else { + $key = floor($class['coverage'] / 10) * 10; + $key = $key . '-' . ($key + 10) . '%'; + $result['class'][$key]++; + } + } + + return [ + 'class' => json_encode(array_values($result['class'])), + 'method' => json_encode(array_values($result['method'])) + ]; + } + + /** + * Returns the classes / methods with insufficient coverage. + * + * @param array $classes + * @param string $baseLink + * + * @return array + */ + protected function insufficientCoverage(array $classes, $baseLink) + { + $leastTestedClasses = []; + $leastTestedMethods = []; + $result = ['class' => '', 'method' => '']; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] < $this->highLowerBound) { + if ($className != '*') { + $key = $className . '::' . $methodName; + } else { + $key = $methodName; + } + + $leastTestedMethods[$key] = $method['coverage']; + } + } + + if ($class['coverage'] < $this->highLowerBound) { + $leastTestedClasses[$className] = $class['coverage']; + } + } + + asort($leastTestedClasses); + asort($leastTestedMethods); + + foreach ($leastTestedClasses as $className => $coverage) { + $result['class'] .= sprintf( + '
    ' . "\n", + str_replace($baseLink, '', $classes[$className]['link']), + $className, + $coverage + ); + } + + foreach ($leastTestedMethods as $methodName => $coverage) { + list($class, $method) = explode('::', $methodName); + + $result['method'] .= sprintf( + ' ' . "\n", + str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + $methodName, + $method, + $coverage + ); + } + + return $result; + } + + /** + * Returns the project risks according to the CRAP index. + * + * @param array $classes + * @param string $baseLink + * + * @return array + */ + protected function projectRisks(array $classes, $baseLink) + { + $classRisks = []; + $methodRisks = []; + $result = ['class' => '', 'method' => '']; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] < $this->highLowerBound && + $method['ccn'] > 1) { + if ($className != '*') { + $key = $className . '::' . $methodName; + } else { + $key = $methodName; + } + + $methodRisks[$key] = $method['crap']; + } + } + + if ($class['coverage'] < $this->highLowerBound && + $class['ccn'] > count($class['methods'])) { + $classRisks[$className] = $class['crap']; + } + } + + arsort($classRisks); + arsort($methodRisks); + + foreach ($classRisks as $className => $crap) { + $result['class'] .= sprintf( + ' ' . "\n", + str_replace($baseLink, '', $classes[$className]['link']), + $className, + $crap + ); + } + + foreach ($methodRisks as $methodName => $crap) { + list($class, $method) = explode('::', $methodName); + + $result['method'] .= sprintf( + ' ' . "\n", + str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + $methodName, + $method, + $crap + ); + } + + return $result; + } + + protected function getActiveBreadcrumb(AbstractNode $node) + { + return sprintf( + '
  • %s
  • ' . "\n" . + '
  • (Dashboard)
  • ' . "\n", + $node->getName() + ); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php new file mode 100644 index 0000000..a4b1b96 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode as Node; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; + +/** + * Renders a directory node. + */ +class Directory extends Renderer +{ + /** + * @param DirectoryNode $node + * @param string $file + */ + public function render(DirectoryNode $node, $file) + { + $template = new \Text_Template($this->templatePath . 'directory.html', '{{', '}}'); + + $this->setCommonTemplateVariables($template, $node); + + $items = $this->renderItem($node, true); + + foreach ($node->getDirectories() as $item) { + $items .= $this->renderItem($item); + } + + foreach ($node->getFiles() as $item) { + $items .= $this->renderItem($item); + } + + $template->setVar( + [ + 'id' => $node->getId(), + 'items' => $items + ] + ); + + $template->renderTo($file); + } + + /** + * @param Node $node + * @param bool $total + * + * @return string + */ + protected function renderItem(Node $node, $total = false) + { + $data = [ + 'numClasses' => $node->getNumClassesAndTraits(), + 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), + 'numMethods' => $node->getNumMethods(), + 'numTestedMethods' => $node->getNumTestedMethods(), + 'linesExecutedPercent' => $node->getLineExecutedPercent(false), + 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), + 'numExecutedLines' => $node->getNumExecutedLines(), + 'numExecutableLines' => $node->getNumExecutableLines(), + 'testedMethodsPercent' => $node->getTestedMethodsPercent(false), + 'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(), + 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), + 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent() + ]; + + if ($total) { + $data['name'] = 'Total'; + } else { + if ($node instanceof DirectoryNode) { + $data['name'] = sprintf( + '%s', + $node->getName(), + $node->getName() + ); + + $data['icon'] = ' '; + } else { + $data['name'] = sprintf( + '%s', + $node->getName(), + $node->getName() + ); + + $data['icon'] = ' '; + } + } + + return $this->renderItemTemplate( + new \Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'), + $data + ); + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php new file mode 100644 index 0000000..5461c9e --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php @@ -0,0 +1,551 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\Util; + +/** + * Renders a file node. + */ +class File extends Renderer +{ + /** + * @var int + */ + private $htmlspecialcharsFlags; + + /** + * Constructor. + * + * @param string $templatePath + * @param string $generator + * @param string $date + * @param int $lowUpperBound + * @param int $highLowerBound + */ + public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound) + { + parent::__construct( + $templatePath, + $generator, + $date, + $lowUpperBound, + $highLowerBound + ); + + $this->htmlspecialcharsFlags = ENT_COMPAT; + + $this->htmlspecialcharsFlags = $this->htmlspecialcharsFlags | ENT_HTML401 | ENT_SUBSTITUTE; + } + + /** + * @param FileNode $node + * @param string $file + */ + public function render(FileNode $node, $file) + { + $template = new \Text_Template($this->templatePath . 'file.html', '{{', '}}'); + + $template->setVar( + [ + 'items' => $this->renderItems($node), + 'lines' => $this->renderSource($node) + ] + ); + + $this->setCommonTemplateVariables($template, $node); + + $template->renderTo($file); + } + + /** + * @param FileNode $node + * + * @return string + */ + protected function renderItems(FileNode $node) + { + $template = new \Text_Template($this->templatePath . 'file_item.html', '{{', '}}'); + + $methodItemTemplate = new \Text_Template( + $this->templatePath . 'method_item.html', + '{{', + '}}' + ); + + $items = $this->renderItemTemplate( + $template, + [ + 'name' => 'Total', + 'numClasses' => $node->getNumClassesAndTraits(), + 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), + 'numMethods' => $node->getNumMethods(), + 'numTestedMethods' => $node->getNumTestedMethods(), + 'linesExecutedPercent' => $node->getLineExecutedPercent(false), + 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), + 'numExecutedLines' => $node->getNumExecutedLines(), + 'numExecutableLines' => $node->getNumExecutableLines(), + 'testedMethodsPercent' => $node->getTestedMethodsPercent(false), + 'testedMethodsPercentAsString' => $node->getTestedMethodsPercent(), + 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), + 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(), + 'crap' => 'CRAP' + ] + ); + + $items .= $this->renderFunctionItems( + $node->getFunctions(), + $methodItemTemplate + ); + + $items .= $this->renderTraitOrClassItems( + $node->getTraits(), + $template, + $methodItemTemplate + ); + + $items .= $this->renderTraitOrClassItems( + $node->getClasses(), + $template, + $methodItemTemplate + ); + + return $items; + } + + /** + * @param array $items + * @param \Text_Template $template + * @param \Text_Template $methodItemTemplate + * + * @return string + */ + protected function renderTraitOrClassItems(array $items, \Text_Template $template, \Text_Template $methodItemTemplate) + { + if (empty($items)) { + return ''; + } + + $buffer = ''; + + foreach ($items as $name => $item) { + $numMethods = count($item['methods']); + $numTestedMethods = 0; + + foreach ($item['methods'] as $method) { + if ($method['executedLines'] == $method['executableLines']) { + $numTestedMethods++; + } + } + + if ($item['executableLines'] > 0) { + $numClasses = 1; + $numTestedClasses = $numTestedMethods == $numMethods ? 1 : 0; + $linesExecutedPercentAsString = Util::percent( + $item['executedLines'], + $item['executableLines'], + true + ); + } else { + $numClasses = 'n/a'; + $numTestedClasses = 'n/a'; + $linesExecutedPercentAsString = 'n/a'; + } + + $buffer .= $this->renderItemTemplate( + $template, + [ + 'name' => $name, + 'numClasses' => $numClasses, + 'numTestedClasses' => $numTestedClasses, + 'numMethods' => $numMethods, + 'numTestedMethods' => $numTestedMethods, + 'linesExecutedPercent' => Util::percent( + $item['executedLines'], + $item['executableLines'], + false + ), + 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, + 'numExecutedLines' => $item['executedLines'], + 'numExecutableLines' => $item['executableLines'], + 'testedMethodsPercent' => Util::percent( + $numTestedMethods, + $numMethods, + false + ), + 'testedMethodsPercentAsString' => Util::percent( + $numTestedMethods, + $numMethods, + true + ), + 'testedClassesPercent' => Util::percent( + $numTestedMethods == $numMethods ? 1 : 0, + 1, + false + ), + 'testedClassesPercentAsString' => Util::percent( + $numTestedMethods == $numMethods ? 1 : 0, + 1, + true + ), + 'crap' => $item['crap'] + ] + ); + + foreach ($item['methods'] as $method) { + $buffer .= $this->renderFunctionOrMethodItem( + $methodItemTemplate, + $method, + ' ' + ); + } + } + + return $buffer; + } + + /** + * @param array $functions + * @param \Text_Template $template + * + * @return string + */ + protected function renderFunctionItems(array $functions, \Text_Template $template) + { + if (empty($functions)) { + return ''; + } + + $buffer = ''; + + foreach ($functions as $function) { + $buffer .= $this->renderFunctionOrMethodItem( + $template, + $function + ); + } + + return $buffer; + } + + /** + * @param \Text_Template $template + * + * @return string + */ + protected function renderFunctionOrMethodItem(\Text_Template $template, array $item, $indent = '') + { + $numTestedItems = $item['executedLines'] == $item['executableLines'] ? 1 : 0; + + return $this->renderItemTemplate( + $template, + [ + 'name' => sprintf( + '%s%s', + $indent, + $item['startLine'], + htmlspecialchars($item['signature']), + isset($item['functionName']) ? $item['functionName'] : $item['methodName'] + ), + 'numMethods' => 1, + 'numTestedMethods' => $numTestedItems, + 'linesExecutedPercent' => Util::percent( + $item['executedLines'], + $item['executableLines'], + false + ), + 'linesExecutedPercentAsString' => Util::percent( + $item['executedLines'], + $item['executableLines'], + true + ), + 'numExecutedLines' => $item['executedLines'], + 'numExecutableLines' => $item['executableLines'], + 'testedMethodsPercent' => Util::percent( + $numTestedItems, + 1, + false + ), + 'testedMethodsPercentAsString' => Util::percent( + $numTestedItems, + 1, + true + ), + 'crap' => $item['crap'] + ] + ); + } + + /** + * @param FileNode $node + * + * @return string + */ + protected function renderSource(FileNode $node) + { + $coverageData = $node->getCoverageData(); + $testData = $node->getTestData(); + $codeLines = $this->loadFile($node->getPath()); + $lines = ''; + $i = 1; + + foreach ($codeLines as $line) { + $trClass = ''; + $popoverContent = ''; + $popoverTitle = ''; + + if (array_key_exists($i, $coverageData)) { + $numTests = count($coverageData[$i]); + + if ($coverageData[$i] === null) { + $trClass = ' class="warning"'; + } elseif ($numTests == 0) { + $trClass = ' class="danger"'; + } else { + $lineCss = 'covered-by-large-tests'; + $popoverContent = '
      '; + + if ($numTests > 1) { + $popoverTitle = $numTests . ' tests cover line ' . $i; + } else { + $popoverTitle = '1 test covers line ' . $i; + } + + foreach ($coverageData[$i] as $test) { + if ($lineCss == 'covered-by-large-tests' && $testData[$test]['size'] == 'medium') { + $lineCss = 'covered-by-medium-tests'; + } elseif ($testData[$test]['size'] == 'small') { + $lineCss = 'covered-by-small-tests'; + } + + switch ($testData[$test]['status']) { + case 0: + switch ($testData[$test]['size']) { + case 'small': + $testCSS = ' class="covered-by-small-tests"'; + break; + + case 'medium': + $testCSS = ' class="covered-by-medium-tests"'; + break; + + default: + $testCSS = ' class="covered-by-large-tests"'; + break; + } + break; + + case 1: + case 2: + $testCSS = ' class="warning"'; + break; + + case 3: + $testCSS = ' class="danger"'; + break; + + case 4: + $testCSS = ' class="danger"'; + break; + + default: + $testCSS = ''; + } + + $popoverContent .= sprintf( + '%s', + $testCSS, + htmlspecialchars($test) + ); + } + + $popoverContent .= '
    '; + $trClass = ' class="' . $lineCss . ' popin"'; + } + } + + if (!empty($popoverTitle)) { + $popover = sprintf( + ' data-title="%s" data-content="%s" data-placement="bottom" data-html="true"', + $popoverTitle, + htmlspecialchars($popoverContent) + ); + } else { + $popover = ''; + } + + $lines .= sprintf( + ' ' . "\n", + $trClass, + $popover, + $i, + $i, + $i, + $line + ); + + $i++; + } + + return $lines; + } + + /** + * @param string $file + * + * @return array + */ + protected function loadFile($file) + { + $buffer = file_get_contents($file); + $tokens = token_get_all($buffer); + $result = ['']; + $i = 0; + $stringFlag = false; + $fileEndsWithNewLine = substr($buffer, -1) == "\n"; + + unset($buffer); + + foreach ($tokens as $j => $token) { + if (is_string($token)) { + if ($token === '"' && $tokens[$j - 1] !== '\\') { + $result[$i] .= sprintf( + '%s', + htmlspecialchars($token) + ); + + $stringFlag = !$stringFlag; + } else { + $result[$i] .= sprintf( + '%s', + htmlspecialchars($token) + ); + } + + continue; + } + + list($token, $value) = $token; + + $value = str_replace( + ["\t", ' '], + ['    ', ' '], + htmlspecialchars($value, $this->htmlspecialcharsFlags) + ); + + if ($value === "\n") { + $result[++$i] = ''; + } else { + $lines = explode("\n", $value); + + foreach ($lines as $jj => $line) { + $line = trim($line); + + if ($line !== '') { + if ($stringFlag) { + $colour = 'string'; + } else { + switch ($token) { + case T_INLINE_HTML: + $colour = 'html'; + break; + + case T_COMMENT: + case T_DOC_COMMENT: + $colour = 'comment'; + break; + + case T_ABSTRACT: + case T_ARRAY: + case T_AS: + case T_BREAK: + case T_CALLABLE: + case T_CASE: + case T_CATCH: + case T_CLASS: + case T_CLONE: + case T_CONTINUE: + case T_DEFAULT: + case T_ECHO: + case T_ELSE: + case T_ELSEIF: + case T_EMPTY: + case T_ENDDECLARE: + case T_ENDFOR: + case T_ENDFOREACH: + case T_ENDIF: + case T_ENDSWITCH: + case T_ENDWHILE: + case T_EXIT: + case T_EXTENDS: + case T_FINAL: + case T_FINALLY: + case T_FOREACH: + case T_FUNCTION: + case T_GLOBAL: + case T_IF: + case T_IMPLEMENTS: + case T_INCLUDE: + case T_INCLUDE_ONCE: + case T_INSTANCEOF: + case T_INSTEADOF: + case T_INTERFACE: + case T_ISSET: + case T_LOGICAL_AND: + case T_LOGICAL_OR: + case T_LOGICAL_XOR: + case T_NAMESPACE: + case T_NEW: + case T_PRIVATE: + case T_PROTECTED: + case T_PUBLIC: + case T_REQUIRE: + case T_REQUIRE_ONCE: + case T_RETURN: + case T_STATIC: + case T_THROW: + case T_TRAIT: + case T_TRY: + case T_UNSET: + case T_USE: + case T_VAR: + case T_WHILE: + case T_YIELD: + $colour = 'keyword'; + break; + + default: + $colour = 'default'; + } + } + + $result[$i] .= sprintf( + '%s', + $colour, + $line + ); + } + + if (isset($lines[$jj + 1])) { + $result[++$i] = ''; + } + } + } + } + + if ($fileEndsWithNewLine) { + unset($result[count($result)-1]); + } + + return $result; + } +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist new file mode 100644 index 0000000..5a09c35 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist @@ -0,0 +1,5 @@ +
    +
    + {{percent}}% covered ({{level}}) +
    +
    diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css new file mode 100644 index 0000000..82113bd --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css new file mode 100644 index 0000000..d45e8db --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css @@ -0,0 +1 @@ +.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css new file mode 100644 index 0000000..824fb31 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css @@ -0,0 +1,122 @@ +body { + padding-top: 10px; +} + +.popover { + max-width: none; +} + +.glyphicon { + margin-right:.25em; +} + +.table-bordered>thead>tr>td { + border-bottom-width: 1px; +} + +.table tbody>tr>td, .table thead>tr>td { + padding-top: 3px; + padding-bottom: 3px; +} + +.table-condensed tbody>tr>td { + padding-top: 0; + padding-bottom: 0; +} + +.table .progress { + margin-bottom: inherit; +} + +.table-borderless th, .table-borderless td { + border: 0 !important; +} + +.table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { + background-color: #dff0d8; +} + +.table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { + background-color: #c3e3b5; +} + +.table tbody tr.covered-by-small-tests, li.covered-by-small-tests { + background-color: #99cb84; +} + +.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { + background-color: #f2dede; +} + +.table tbody td.warning, li.warning, span.warning { + background-color: #fcf8e3; +} + +.table tbody td.info { + background-color: #d9edf7; +} + +td.big { + width: 117px; +} + +td.small { +} + +td.codeLine { + font-family: monospace; + white-space: pre; +} + +td span.comment { + color: #888a85; +} + +td span.default { + color: #2e3436; +} + +td span.html { + color: #888a85; +} + +td span.keyword { + color: #2e3436; + font-weight: bold; +} + +pre span.string { + color: #2e3436; +} + +span.success, span.warning, span.danger { + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + text-align: center; +} + +#classCoverageDistribution, #classComplexity { + height: 200px; + width: 475px; +} + +#toplink { + position: fixed; + left: 5px; + bottom: 5px; + outline: 0; +} + +svg text { + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + fill: #666; +} + +.scrollbox { + height:245px; + overflow-x:hidden; + overflow-y:scroll; +} diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist new file mode 100644 index 0000000..8bdf04d --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist @@ -0,0 +1,284 @@ + + + + + Dashboard for {{full_path}} + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Classes

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    +
    %s%d%%
    %s%d%%
    %s%d
    %s%d
    %s
    + + + + + + + +{{insufficient_coverage_classes}} + +
    ClassCoverage
    + + +
    +

    Project Risks

    +
    + + + + + + + + +{{project_risks_classes}} + +
    ClassCRAP
    +
    +
    + +
    +
    +

    Methods

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + +{{insufficient_coverage_methods}} + +
    MethodCoverage
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + +{{project_risks_methods}} + +
    MethodCRAP
    +
    +
    +
    + + + + + + + + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist new file mode 100644 index 0000000..29fbf23 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist @@ -0,0 +1,61 @@ + + + + + Code Coverage for {{full_path}} + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + +{{items}} + +
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    +
    +
    +

    Legend

    +

    + Low: 0% to {{low_upper_bound}}% + Medium: {{low_upper_bound}}% to {{high_lower_bound}}% + High: {{high_lower_bound}}% to 100% +

    +

    + Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}. +

    +
    +
    + + + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist new file mode 100644 index 0000000..78dbb35 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist @@ -0,0 +1,13 @@ + + {{icon}}{{name}} + {{lines_bar}} +
    {{lines_executed_percent}}
    +
    {{lines_number}}
    + {{methods_bar}} +
    {{methods_tested_percent}}
    +
    {{methods_number}}
    + {{classes_bar}} +
    {{classes_tested_percent}}
    +
    {{classes_number}}
    + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist new file mode 100644 index 0000000..8c42d4e --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist @@ -0,0 +1,90 @@ + + + + + Code Coverage for {{full_path}} + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + +{{items}} + +
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    + + +{{lines}} + +
    +
    +
    +

    Legend

    +

    + Executed + Not Executed + Dead Code +

    +

    + Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}. +

    + +
    +
    + + + + + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist new file mode 100644 index 0000000..756fdd6 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist @@ -0,0 +1,14 @@ + + {{name}} + {{classes_bar}} +
    {{classes_tested_percent}}
    +
    {{classes_number}}
    + {{methods_bar}} +
    {{methods_tested_percent}}
    +
    {{methods_number}}
    + {{crap}} + {{lines_bar}} +
    {{lines_executed_percent}}
    +
    {{lines_number}}
    + + diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..b93a495 Binary files /dev/null and b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.eot differ diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..94fb549 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..1413fc6 Binary files /dev/null and b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.ttf differ diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..9e61285 Binary files /dev/null and b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff differ diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000..64539b5 Binary files /dev/null and b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js new file mode 100644 index 0000000..be9574d --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js new file mode 100644 index 0000000..002c8d3 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js @@ -0,0 +1,5 @@ +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); diff --git a/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js new file mode 100644 index 0000000..6bfc844 --- /dev/null +++ b/class/payment/paypal/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/holder.min.js @@ -0,0 +1,12 @@ +/*! + +Holder - client side image placeholders +Version 2.7.1+6hydf +© 2015 Ivan Malopinsky - http://imsky.co + +Site: http://holderjs.com +Issues: https://github.com/imsky/holder/issues +License: http://opensource.org/licenses/MIT + +*/ +!function(a){if(a.document){var b=a.document;b.querySelectorAll||(b.querySelectorAll=function(c){var d,e=b.createElement("style"),f=[];for(b.documentElement.firstChild.appendChild(e),b._qsa=[],e.styleSheet.cssText=c+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",a.scrollBy(0,0),e.parentNode.removeChild(e);b._qsa.length;)d=b._qsa.shift(),d.style.removeAttribute("x-qsa"),f.push(d);return b._qsa=null,f}),b.querySelector||(b.querySelector=function(a){var c=b.querySelectorAll(a);return c.length?c[0]:null}),b.getElementsByClassName||(b.getElementsByClassName=function(a){return a=String(a).replace(/^|\s+/g,"."),b.querySelectorAll(a)}),Object.keys||(Object.keys=function(a){if(a!==Object(a))throw TypeError("Object.keys called on non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}),function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.atob=a.atob||function(a){a=String(a);var c,d=0,e=[],f=0,g=0;if(a=a.replace(/\s/g,""),a.length%4===0&&(a=a.replace(/=+$/,"")),a.length%4===1)throw Error("InvalidCharacterError");if(/[^+/0-9A-Za-z]/.test(a))throw Error("InvalidCharacterError");for(;d>16&255)),e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f)),g=0,f=0),d+=1;return 12===g?(f>>=4,e.push(String.fromCharCode(255&f))):18===g&&(f>>=2,e.push(String.fromCharCode(f>>8&255)),e.push(String.fromCharCode(255&f))),e.join("")},a.btoa=a.btoa||function(a){a=String(a);var c,d,e,f,g,h,i,j=0,k=[];if(/[^\x00-\xFF]/.test(a))throw Error("InvalidCharacterError");for(;j>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,j===a.length+2?(h=64,i=64):j===a.length+1&&(i=64),k.push(b.charAt(f),b.charAt(g),b.charAt(h),b.charAt(i));return k.join("")}}(a),Object.prototype.hasOwnProperty||(Object.prototype.hasOwnProperty=function(a){var b=this.__proto__||this.constructor.prototype;return a in this&&(!(a in b)||b[a]!==this[a])}),function(){if("performance"in a==!1&&(a.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in a.performance==!1){var b=Date.now();performance.timing&&performance.timing.navigationStart&&(b=performance.timing.navigationStart),a.performance.now=function(){return Date.now()-b}}}(),a.requestAnimationFrame||(a.webkitRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return webkitRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=webkitCancelAnimationFrame}(a):a.mozRequestAnimationFrame?!function(a){a.requestAnimationFrame=function(b){return mozRequestAnimationFrame(function(){b(a.performance.now())})},a.cancelAnimationFrame=mozCancelAnimationFrame}(a):!function(a){a.requestAnimationFrame=function(b){return a.setTimeout(b,1e3/60)},a.cancelAnimationFrame=a.clearTimeout}(a))}}(this),function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports.Holder=b():a.Holder=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){function d(a,b,c,d){var f=e(c.substr(c.lastIndexOf(a.domain)),a);f&&h({mode:null,el:d,flags:f,engineSettings:b})}function e(a,b){var c={theme:B(J.settings.themes.gray,null),stylesheets:b.stylesheets,instanceOptions:b};return a.match(/([\d]+p?)x([\d]+p?)(?:\?|$)/)?f(a,c):g(a,c)}function f(a,b){var c=a.split("?"),d=c[0].split("/");b.holderURL=a;var e=d[1],f=e.match(/([\d]+p?)x([\d]+p?)/);if(!f)return!1;if(b.fluid=-1!==e.indexOf("p"),b.dimensions={width:f[1].replace("p","%"),height:f[2].replace("p","%")},2===c.length){var g=A.parse(c[1]);if(g.bg&&(b.theme.background=(-1===g.bg.indexOf("#")?"#":"")+g.bg),g.fg&&(b.theme.foreground=(-1===g.fg.indexOf("#")?"#":"")+g.fg),g.theme&&b.instanceOptions.themes.hasOwnProperty(g.theme)&&(b.theme=B(b.instanceOptions.themes[g.theme],null)),g.text&&(b.text=g.text),g.textmode&&(b.textmode=g.textmode),g.size&&(b.size=g.size),g.font&&(b.font=g.font),g.align&&(b.align=g.align),b.nowrap=z.truthy(g.nowrap),b.auto=z.truthy(g.auto),z.truthy(g.random)){J.vars.cache.themeKeys=J.vars.cache.themeKeys||Object.keys(b.instanceOptions.themes);var h=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(b.instanceOptions.themes[h],null)}}return b}function g(a,b){var c=!1,d=String.fromCharCode(11),e=a.replace(/([^\\])\//g,"$1"+d).split(d),f=/%[0-9a-f]{2}/gi,g=b.instanceOptions;b.holderURL=[];for(var h=e.length,i=0;h>i;i++){var j=e[i];if(j.match(f))try{j=decodeURIComponent(j)}catch(k){j=e[i]}var l=!1;if(J.flags.dimensions.match(j))c=!0,b.dimensions=J.flags.dimensions.output(j),l=!0;else if(J.flags.fluid.match(j))c=!0,b.dimensions=J.flags.fluid.output(j),b.fluid=!0,l=!0;else if(J.flags.textmode.match(j))b.textmode=J.flags.textmode.output(j),l=!0;else if(J.flags.colors.match(j)){var m=J.flags.colors.output(j);b.theme=B(b.theme,m),l=!0}else if(g.themes[j])g.themes.hasOwnProperty(j)&&(b.theme=B(g.themes[j],null)),l=!0;else if(J.flags.font.match(j))b.font=J.flags.font.output(j),l=!0;else if(J.flags.auto.match(j))b.auto=!0,l=!0;else if(J.flags.text.match(j))b.text=J.flags.text.output(j),l=!0;else if(J.flags.size.match(j))b.size=J.flags.size.output(j),l=!0;else if(J.flags.random.match(j)){null==J.vars.cache.themeKeys&&(J.vars.cache.themeKeys=Object.keys(g.themes));var n=J.vars.cache.themeKeys[0|Math.random()*J.vars.cache.themeKeys.length];b.theme=B(g.themes[n],null),l=!0}l&&b.holderURL.push(j)}return b.holderURL.unshift(g.domain),b.holderURL=b.holderURL.join("/"),c?b:!1}function h(a){var b=a.mode,c=a.el,d=a.flags,e=a.engineSettings,f=d.dimensions,g=d.theme,h=f.width+"x"+f.height;if(b=null==b?d.fluid?"fluid":"image":b,null!=d.text&&(g.text=d.text,"object"===c.nodeName.toLowerCase())){for(var j=g.text.split("\\n"),k=0;k1){var n,o=0,p=0,q=0;j=new e.Group("line"+q),("left"===a.align||"right"===a.align)&&(m=a.width*(1-2*(1-J.setup.lineWrapRatio)));for(var r=0;r=m||t===!0)&&(b(g,j,o,g.properties.leading),g.add(j),o=0,p+=g.properties.leading,q+=1,j=new e.Group("line"+q),j.y=p),t!==!0&&(i.moveTo(o,0),o+=h.spaceWidth+s.width,j.add(i))}if(b(g,j,o,g.properties.leading),g.add(j),"left"===a.align)g.moveTo(a.width-l,null,null);else if("right"===a.align){for(n in g.children)j=g.children[n],j.moveTo(a.width-j.width,null,null);g.moveTo(0-(a.width-l),null,null)}else{for(n in g.children)j=g.children[n],j.moveTo((g.width-j.width)/2,null,null);g.moveTo((a.width-g.width)/2,null,null)}g.moveTo(null,(a.height-g.height)/2,null),(a.height-g.height)/2<0&&g.moveTo(null,0,null)}else i=new e.Text(a.text),j=new e.Group("line0"),j.add(i),g.add(j),"left"===a.align?g.moveTo(a.width-l,null,null):"right"===a.align?g.moveTo(0-(a.width-l),null,null):g.moveTo((a.width-h.boundingBox.width)/2,null,null),g.moveTo(null,(a.height-h.boundingBox.height)/2,null);return d}function k(a,b,c){var d=parseInt(a,10),e=parseInt(b,10),f=Math.max(d,e),g=Math.min(d,e),h=.8*Math.min(g,f*J.defaults.scale);return Math.round(Math.max(c,h))}function l(a){var b;b=null==a||null==a.nodeType?J.vars.resizableImages:[a];for(var c=0,d=b.length;d>c;c++){var e=b[c];if(e.holderData){var f=e.holderData.flags,g=D(e);if(g){if(!e.holderData.resizeUpdate)continue;if(f.fluid&&f.auto){var h=e.holderData.fluidConfig;switch(h.mode){case"width":g.height=g.width/h.ratio;break;case"height":g.width=g.height*h.ratio}}var j={mode:"image",holderSettings:{dimensions:g,theme:f.theme,flags:f},el:e,engineSettings:e.holderData.engineSettings};"exact"==f.textmode&&(f.exactDimensions=g,j.holderSettings.dimensions=f.dimensions),i(j)}else p(e)}}}function m(a){if(a.holderData){var b=D(a);if(b){var c=a.holderData.flags,d={fluidHeight:"%"==c.dimensions.height.slice(-1),fluidWidth:"%"==c.dimensions.width.slice(-1),mode:null,initialDimensions:b};d.fluidWidth&&!d.fluidHeight?(d.mode="width",d.ratio=d.initialDimensions.width/parseFloat(c.dimensions.height)):!d.fluidWidth&&d.fluidHeight&&(d.mode="height",d.ratio=parseFloat(c.dimensions.width)/d.initialDimensions.height),a.holderData.fluidConfig=d}else p(a)}}function n(){for(var a,c=[],d=Object.keys(J.vars.invisibleImages),e=0,f=d.length;f>e;e++)a=J.vars.invisibleImages[d[e]],D(a)&&"img"==a.nodeName.toLowerCase()&&(c.push(a),delete J.vars.invisibleImages[d[e]]);c.length&&I.run({images:c}),b.requestAnimationFrame(n)}function o(){J.vars.visibilityCheckStarted||(b.requestAnimationFrame(n),J.vars.visibilityCheckStarted=!0)}function p(a){a.holderData.invisibleId||(J.vars.invisibleId+=1,J.vars.invisibleImages["i"+J.vars.invisibleId]=a,a.holderData.invisibleId=J.vars.invisibleId)}function q(a,b){return null==b?document.createElement(a):document.createElementNS(b,a)}function r(a,b){for(var c in b)a.setAttribute(c,b[c])}function s(a,b,c){var d,e;null==a?(a=q("svg",E),d=q("defs",E),e=q("style",E),r(e,{type:"text/css"}),d.appendChild(e),a.appendChild(d)):e=a.querySelector("style"),a.webkitMatchesSelector&&a.setAttribute("xmlns",E);for(var f=0;f=0;h--){var i=g.createProcessingInstruction("xml-stylesheet",'href="'+f[h]+'" rel="stylesheet"');g.insertBefore(i,g.firstChild)}g.removeChild(g.documentElement),e=d.serializeToString(g)}var j=d.serializeToString(a);return j=j.replace(/\&(\#[0-9]{2,}\;)/g,"&$1"),e+j}}function u(){return b.DOMParser?(new DOMParser).parseFromString("","application/xml"):void 0}function v(a){J.vars.debounceTimer||a.call(this),J.vars.debounceTimer&&b.clearTimeout(J.vars.debounceTimer),J.vars.debounceTimer=b.setTimeout(function(){J.vars.debounceTimer=null,a.call(this)},J.setup.debounce)}function w(){v(function(){l(null)})}var x=c(1),y=c(2),z=c(3),A=c(4),B=z.extend,C=z.getNodeArray,D=z.dimensionCheck,E="http://www.w3.org/2000/svg",F=8,G="2.7.1",H="\nCreated with Holder.js "+G+".\nLearn more at http://holderjs.com\n(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n",I={version:G,addTheme:function(a,b){return null!=a&&null!=b&&(J.settings.themes[a]=b),delete J.vars.cache.themeKeys,this},addImage:function(a,b){var c=document.querySelectorAll(b);if(c.length)for(var d=0,e=c.length;e>d;d++){var f=q("img"),g={};g[J.vars.dataAttr]=a,r(f,g),c[d].appendChild(f)}return this},setResizeUpdate:function(a,b){a.holderData&&(a.holderData.resizeUpdate=!!b,a.holderData.resizeUpdate&&l(a))},run:function(a){a=a||{};var c={},f=B(J.settings,a);J.vars.preempted=!0,J.vars.dataAttr=f.dataAttr||J.vars.dataAttr,c.renderer=f.renderer?f.renderer:J.setup.renderer,-1===J.setup.renderers.join(",").indexOf(c.renderer)&&(c.renderer=J.setup.supportsSVG?"svg":J.setup.supportsCanvas?"canvas":"html");var g=C(f.images),i=C(f.bgnodes),j=C(f.stylenodes),k=C(f.objects);c.stylesheets=[],c.svgXMLStylesheet=!0,c.noFontFallback=f.noFontFallback?f.noFontFallback:!1;for(var l=0;l1){c.nodeValue="";for(var u=0;u=0?b:1)}function f(a){v?e(a):w.push(a)}null==document.readyState&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",function y(){document.removeEventListener("DOMContentLoaded",y,!1),document.readyState="complete"},!1),document.readyState="loading");var g=a.document,h=g.documentElement,i="load",j=!1,k="on"+i,l="complete",m="readyState",n="attachEvent",o="detachEvent",p="addEventListener",q="DOMContentLoaded",r="onreadystatechange",s="removeEventListener",t=p in g,u=j,v=j,w=[];if(g[m]===l)e(b);else if(t)g[p](q,c,j),a[p](i,c,j);else{g[n](r,c),a[n](k,c);try{u=null==a.frameElement&&h}catch(x){}u&&u.doScroll&&!function z(){if(!v){try{u.doScroll("left")}catch(a){return e(z,50)}d(),b()}}()}return f.version="1.4.0",f.isReady=function(){return v},f}a.exports="undefined"!=typeof window&&b(window)},function(a,b,c){var d=c(5),e=function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}var c=1,e=d.defclass({constructor:function(a){c++,this.parent=null,this.children={},this.id=c,this.name="n"+c,null!=a&&(this.name=a),this.x=0,this.y=0,this.z=0,this.width=0,this.height=0},resize:function(a,b){null!=a&&(this.width=a),null!=b&&(this.height=b)},moveTo:function(a,b,c){this.x=null!=a?a:this.x,this.y=null!=b?b:this.y,this.z=null!=c?c:this.z},add:function(a){var b=a.name;if(null!=this.children[b])throw"SceneGraph: child with that name already exists: "+b;this.children[b]=a,a.parent=this}}),f=d(e,function(b){this.constructor=function(){b.constructor.call(this,"root"),this.properties=a}}),g=d(e,function(a){function c(c,d){if(a.constructor.call(this,c),this.properties={fill:"#000"},null!=d)b(this.properties,d);else if(null!=c&&"string"!=typeof c)throw"SceneGraph: invalid node name"}this.Group=d.extend(this,{constructor:c,type:"group"}),this.Rect=d.extend(this,{constructor:c,type:"rect"}),this.Text=d.extend(this,{constructor:function(a){c.call(this),this.properties.text=a},type:"text"})}),h=new f;return this.Shape=g,this.root=h,this};a.exports=e},function(a,b){(function(a){b.extend=function(a,b){var c={};for(var d in a)a.hasOwnProperty(d)&&(c[d]=a[d]);if(null!=b)for(var e in b)b.hasOwnProperty(e)&&(c[e]=b[e]);return c},b.cssProps=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+":"+a[c]);return b.join(";")},b.encodeHtmlEntity=function(a){for(var b=[],c=0,d=a.length-1;d>=0;d--)c=a.charCodeAt(d),b.unshift(c>128?["&#",c,";"].join(""):a[d]);return b.join("")},b.getNodeArray=function(b){var c=null;return"string"==typeof b?c=document.querySelectorAll(b):a.NodeList&&b instanceof a.NodeList?c=b:a.Node&&b instanceof a.Node?c=[b]:a.HTMLCollection&&b instanceof a.HTMLCollection?c=b:b instanceof Array?c=b:null===b&&(c=[]),c},b.imageExists=function(a,b){var c=new Image;c.onerror=function(){b.call(this,!1)},c.onload=function(){b.call(this,!0)},c.src=a},b.decodeHtmlEntity=function(a){return a.replace(/&#(\d+);/g,function(a,b){return String.fromCharCode(b)})},b.dimensionCheck=function(a){var b={height:a.clientHeight,width:a.clientWidth};return b.height&&b.width?b:!1},b.truthy=function(a){return"string"==typeof a?"true"===a||"yes"===a||"1"===a||"on"===a||"✓"===a:!!a}}).call(b,function(){return this}())},function(a,b,c){var d=encodeURIComponent,e=decodeURIComponent,f=c(6),g=c(7),h=/(\w+)\[(\d+)\]/,i=/\w+\.\w+/;b.parse=function(a){if("string"!=typeof a)return{};if(a=f(a),""===a)return{};"?"===a.charAt(0)&&(a=a.slice(1));for(var b={},c=a.split("&"),d=0;d