@ BZUppÖp€0œBZU’’’’€ÖE0ȜBZU PÖtp• BZU€`ÖB€OœBZU’’’’’’’’ Ö<0ĻžBZU PÖ2€OœBZU’’’’’’’’°Ö<`õBZU°’’’’’’’’Ö>€oœBZUp’’’’’’’’’’’’×> UČBZUąŹ«]Z02²]Z5²]Z Ė«]Z Ė«]ZH¬]ZĄĖ«]ZĢ«]Zˆ!³]Zˆ!³]Z ŗ²]Zą ¬]Z¼²]ZąĢ«]ZąĢ«]Zp'³]ZØ'³]ZyÆ]Zp¦*Aķ…yg” Ā\If you still need support and have an active subscription for this product, please email %s.š'œBZUžP?? Š BZUP’’’’€BšBZU€@’’’’B+€oœBZU’’’’’’’’C> + BZU`š’’’’GØ#ŸBZU’’’’šĄI6pŸBZU`5ÉBĄ IRĄžBZUĄ ĄI7ą¤BZUĄ °I8 ¶ BZUp’’’’ITĖrBZU°’’’’’’’’I‰ “ BZUpS?£’’’’JTĖrBZU0’’’’’’’’J‰ “ BZUpS?£’’’’KTĖrBZU’’’’’’’’K‰ “ BZUpS?£’’’’LTĖrBZUŠ’’’’’’’’L‰#ŸBZU’’’’Š@M6pŸBZU`5ÉB   MRĄžBZU@ @M7ą¤BZU@€0M8 ¶ BZUpS?£’’’’MTĖrBZU0’’’’’’’’M‰ “ BZUpS?£’’’’NTĖrBZU’’’’’’’’N‰ “ BZUpS?£’’’’OTĖrBZUą’’’’’’’’O‰ “ BZUpS?£’’’’PTĖrBZU°’’’’’’’’P‰@ BZU` 8Sp@ BZU` HSp€0œBZU’’’’ XSE0ȜBZU°PStp• BZUp`SB€OœBZU’’’’’’’’S<0ĻžBZUPS2p• BZUP`SB€OœBZU’’’’’’’’ S<0ĻžBZU PS2€OœBZU’’’’’’’’°S<p!BZU°’’’’ĄS4p|BZUĄ’’’’’’’’S>€oœBZU€’’’’’’’’’’’’T> rÆ]ZąÆ]ZøÆ]Z€rÆ]Zh"³]Z "³]Z‚Æ]ZX‚Æ]Z0‚Æ]Z@sÆ]Z0§«]Z +²]Z§*AąsÆ]ZąsÆ]Z tÆ]Z tÆ]ZP(³]Zˆ(³]Z yÆ]Zp¦*Ang der Struktur und des Stils deines Textes.š'œBZUžPt? + BZU`€’’’’vØ€0œBZU’’’’pxE€OœBZU’’’’’’’’x<P\BZU`xp0ȜBZU`Pxt€OœBZU’’’’’’’’ x<bBZU 0° xRĄ„ BZUp°’’’’x#ŸBZU’’’’z6pŸBZU€ąą8zRĄžBZUąz7ą¤BZUĄšz8 ¶ BZU€#“]’’’’zTĖrBZUš’’’’’’’’z‰#ŸBZU’’’’p@{6pŸBZU@p@{7ą¤BZU@@0{8 ¶ BZU€S?£’’’’{TĖrBZU0’’’’’’’’{‰ “ BZU€S?£’’’’|TĖrBZUŠ’’’’’’’’|‰ “ BZU€S?£’’’’}TĖrBZU ’’’’’’’’}‰@ BZU`P€p@ BZU``€p€0œBZU’’’’p€E0ȜBZU P€tp• BZU€`€B€OœBZU’’’’’’’’€€<0ĻžBZU€P€2p• BZUP`€B€OœBZU’’’’’’’’€<0ĻžBZUP€2€OœBZU’’’’’’’’ €<`õBZU ’’’’’’’’€>€oœBZU’’’’’’’’’’’’>ąuÆ]Z0)³]Zh)³]Z zÆ]Z vÆ]Z vÆ]Z˜ƒÆ]ZĄƒÆ]Z胯]Z€-²]Z€vÆ]Z„Æ]ZH#³]ZЧ«]Z€#³]Z wÆ]Z wÆ]Z`wÆ]Z`wÆ]Z )³]ZŲ)³]Z@zÆ]Z environment variables, if available $mode = getenv(self::ENV_MODE); $maxAttempts = getenv(self::ENV_MAX_ATTEMPTS) ? getenv(self::ENV_MAX_ATTEMPTS) : self::DEFAULT_MAX_ATTEMPTS; if (!empty($mode)) { return Promise\Create::promiseFor( new Configuration($mode, $maxAttempts) ); } return self::reject('Could not find environment variable config' . ' in ' . self::ENV_MODE); }; } /** * Fallback config options when other sources are not set. * * @return callable */ public static function fallback() { return function () { return Promise\Create::promiseFor( new Configuration(self::DEFAULT_MODE, self::DEFAULT_MAX_ATTEMPTS) ); }; } /** * Config provider that creates config using a config file whose location * is specified by an environment variable 'AWS_CONFIG_FILE', defaulting to * ~/.aws/config if not specified * * @param string|null $profile Profile to use. If not specified will use * the "default" profile. * @param string|null $filename If provided, uses a custom filename rather * than looking in the default directory. * * @return callable */ public static function ini( $profile = null, $filename = null ) { $filename = $filename ?: (self::getDefaultConfigFilename()); $profile = $profile ?: (getenv(self::ENV_PROFILE) ?: 'default'); return function () use ($profile, $filename) { // if (!@is_readable($filename)) { return self::reject("Cannot read configuration from $filename"); // } $data = \MediaCloud\Vendor\Aws\parse_ini_file($filename, true); if ($data === false) { return self::reject("Invalid config file: $filename"); } if (!isset($data[$profile])) { return self::reject("'$profile' not found in config file"); } if (!isset($data[$profile][self::INI_MODE])) { return self::reject("Required retry config values not present in INI profile '{$profile}' ({$filename})"); } $maxAttempts = isset($data[$profile][self::INI_MAX_ATTEMPTS]) ? $data[$profile][self::INI_MAX_ATTEMPTS] : self::DEFAULT_MAX_ATTEMPTS; return Promise\Create::promiseFor( new Configuration( $data[$profile][self::INI_MODE], $maxAttempts ) ); }; } /** * Unwraps a configuration object in whatever valid form it is in, * always returning a ConfigurationInterface object. * * @param mixed $config * @return ConfigurationInterface * @throws \InvalidArgumentException */ public static function unwrap($config) { if (is_callable($config)) { $config = $config(); } if ($config instanceof PromiseInterface) { $config = $config->wait(); } if ($config instanceof ConfigurationInterface) { return $config; } // An integer value for this config indicates the legacy 'retries' // config option, which is incremented to translate to max attempts if (is_int($config)) { return new Configuration('legacy', $config + 1); } if (is_array($config) && isset($config['mode'])) { $maxAttempts = isset($config['max_attempts']) ? $config['max_attempts'] : self::DEFAULT_MAX_ATTEMPTS; return new Configuration($config['mode'], $maxAttempts); } throw new \InvalidArgumentException('Not a valid retry configuration' . ' argument.'); } }