Add Symfony Deprecation Contracts package
- Created CHANGELOG.md to maintain version history. - Added README.md with usage instructions for the trigger_deprecation() function. - Initialized composer.json for the Symfony Deprecation Contracts library, specifying dependencies and autoloading.
This commit is contained in:
105
modules/pshowsso/deps/firebase/php-jwt/CHANGELOG.md
Normal file
105
modules/pshowsso/deps/firebase/php-jwt/CHANGELOG.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Changelog
|
||||
|
||||
## [6.4.0](https://github.com/firebase/php-jwt/compare/v6.3.2...v6.4.0) (2023-02-08)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add support for W3C ES256K ([#462](https://github.com/firebase/php-jwt/issues/462)) ([213924f](https://github.com/firebase/php-jwt/commit/213924f51936291fbbca99158b11bd4ae56c2c95))
|
||||
* improve caching by only decoding jwks when necessary ([#486](https://github.com/firebase/php-jwt/issues/486)) ([78d3ed1](https://github.com/firebase/php-jwt/commit/78d3ed1073553f7d0bbffa6c2010009a0d483d5c))
|
||||
|
||||
## [6.3.2](https://github.com/firebase/php-jwt/compare/v6.3.1...v6.3.2) (2022-11-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* check kid before using as array index ([bad1b04](https://github.com/firebase/php-jwt/commit/bad1b040d0c736bbf86814c6b5ae614f517cf7bd))
|
||||
|
||||
## [6.3.1](https://github.com/firebase/php-jwt/compare/v6.3.0...v6.3.1) (2022-11-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* casing of GET for PSR compat ([#451](https://github.com/firebase/php-jwt/issues/451)) ([60b52b7](https://github.com/firebase/php-jwt/commit/60b52b71978790eafcf3b95cfbd83db0439e8d22))
|
||||
* string interpolation format for php 8.2 ([#446](https://github.com/firebase/php-jwt/issues/446)) ([2e07d8a](https://github.com/firebase/php-jwt/commit/2e07d8a1524d12b69b110ad649f17461d068b8f2))
|
||||
|
||||
## 6.3.0 / 2022-07-15
|
||||
|
||||
- Added ES256 support to JWK parsing ([#399](https://github.com/firebase/php-jwt/pull/399))
|
||||
- Fixed potential caching error in `CachedKeySet` by caching jwks as strings ([#435](https://github.com/firebase/php-jwt/pull/435))
|
||||
|
||||
## 6.2.0 / 2022-05-14
|
||||
|
||||
- Added `CachedKeySet` ([#397](https://github.com/firebase/php-jwt/pull/397))
|
||||
- Added `$defaultAlg` parameter to `JWT::parseKey` and `JWT::parseKeySet` ([#426](https://github.com/firebase/php-jwt/pull/426)).
|
||||
|
||||
## 6.1.0 / 2022-03-23
|
||||
|
||||
- Drop support for PHP 5.3, 5.4, 5.5, 5.6, and 7.0
|
||||
- Add parameter typing and return types where possible
|
||||
|
||||
## 6.0.0 / 2022-01-24
|
||||
|
||||
- **Backwards-Compatibility Breaking Changes**: See the [Release Notes](https://github.com/firebase/php-jwt/releases/tag/v6.0.0) for more information.
|
||||
- New Key object to prevent key/algorithm type confusion (#365)
|
||||
- Add JWK support (#273)
|
||||
- Add ES256 support (#256)
|
||||
- Add ES384 support (#324)
|
||||
- Add Ed25519 support (#343)
|
||||
|
||||
## 5.0.0 / 2017-06-26
|
||||
- Support RS384 and RS512.
|
||||
See [#117](https://github.com/firebase/php-jwt/pull/117). Thanks [@joostfaassen](https://github.com/joostfaassen)!
|
||||
- Add an example for RS256 openssl.
|
||||
See [#125](https://github.com/firebase/php-jwt/pull/125). Thanks [@akeeman](https://github.com/akeeman)!
|
||||
- Detect invalid Base64 encoding in signature.
|
||||
See [#162](https://github.com/firebase/php-jwt/pull/162). Thanks [@psignoret](https://github.com/psignoret)!
|
||||
- Update `JWT::verify` to handle OpenSSL errors.
|
||||
See [#159](https://github.com/firebase/php-jwt/pull/159). Thanks [@bshaffer](https://github.com/bshaffer)!
|
||||
- Add `array` type hinting to `decode` method
|
||||
See [#101](https://github.com/firebase/php-jwt/pull/101). Thanks [@hywak](https://github.com/hywak)!
|
||||
- Add all JSON error types.
|
||||
See [#110](https://github.com/firebase/php-jwt/pull/110). Thanks [@gbalduzzi](https://github.com/gbalduzzi)!
|
||||
- Bugfix 'kid' not in given key list.
|
||||
See [#129](https://github.com/firebase/php-jwt/pull/129). Thanks [@stampycode](https://github.com/stampycode)!
|
||||
- Miscellaneous cleanup, documentation and test fixes.
|
||||
See [#107](https://github.com/firebase/php-jwt/pull/107), [#115](https://github.com/firebase/php-jwt/pull/115),
|
||||
[#160](https://github.com/firebase/php-jwt/pull/160), [#161](https://github.com/firebase/php-jwt/pull/161), and
|
||||
[#165](https://github.com/firebase/php-jwt/pull/165). Thanks [@akeeman](https://github.com/akeeman),
|
||||
[@chinedufn](https://github.com/chinedufn), and [@bshaffer](https://github.com/bshaffer)!
|
||||
|
||||
## 4.0.0 / 2016-07-17
|
||||
- Add support for late static binding. See [#88](https://github.com/firebase/php-jwt/pull/88) for details. Thanks to [@chappy84](https://github.com/chappy84)!
|
||||
- Use static `$timestamp` instead of `time()` to improve unit testing. See [#93](https://github.com/firebase/php-jwt/pull/93) for details. Thanks to [@josephmcdermott](https://github.com/josephmcdermott)!
|
||||
- Fixes to exceptions classes. See [#81](https://github.com/firebase/php-jwt/pull/81) for details. Thanks to [@Maks3w](https://github.com/Maks3w)!
|
||||
- Fixes to PHPDoc. See [#76](https://github.com/firebase/php-jwt/pull/76) for details. Thanks to [@akeeman](https://github.com/akeeman)!
|
||||
|
||||
## 3.0.0 / 2015-07-22
|
||||
- Minimum PHP version updated from `5.2.0` to `5.3.0`.
|
||||
- Add `\Firebase\JWT` namespace. See
|
||||
[#59](https://github.com/firebase/php-jwt/pull/59) for details. Thanks to
|
||||
[@Dashron](https://github.com/Dashron)!
|
||||
- Require a non-empty key to decode and verify a JWT. See
|
||||
[#60](https://github.com/firebase/php-jwt/pull/60) for details. Thanks to
|
||||
[@sjones608](https://github.com/sjones608)!
|
||||
- Cleaner documentation blocks in the code. See
|
||||
[#62](https://github.com/firebase/php-jwt/pull/62) for details. Thanks to
|
||||
[@johanderuijter](https://github.com/johanderuijter)!
|
||||
|
||||
## 2.2.0 / 2015-06-22
|
||||
- Add support for adding custom, optional JWT headers to `JWT::encode()`. See
|
||||
[#53](https://github.com/firebase/php-jwt/pull/53/files) for details. Thanks to
|
||||
[@mcocaro](https://github.com/mcocaro)!
|
||||
|
||||
## 2.1.0 / 2015-05-20
|
||||
- Add support for adding a leeway to `JWT:decode()` that accounts for clock skew
|
||||
between signing and verifying entities. Thanks to [@lcabral](https://github.com/lcabral)!
|
||||
- Add support for passing an object implementing the `ArrayAccess` interface for
|
||||
`$keys` argument in `JWT::decode()`. Thanks to [@aztech-dev](https://github.com/aztech-dev)!
|
||||
|
||||
## 2.0.0 / 2015-04-01
|
||||
- **Note**: It is strongly recommended that you update to > v2.0.0 to address
|
||||
known security vulnerabilities in prior versions when both symmetric and
|
||||
asymmetric keys are used together.
|
||||
- Update signature for `JWT::decode(...)` to require an array of supported
|
||||
algorithms to use when verifying token signatures.
|
||||
332
modules/pshowsso/deps/firebase/php-jwt/README.md
Normal file
332
modules/pshowsso/deps/firebase/php-jwt/README.md
Normal file
@@ -0,0 +1,332 @@
|
||||

|
||||
[](https://packagist.org/packages/firebase/php-jwt)
|
||||
[](https://packagist.org/packages/firebase/php-jwt)
|
||||
[](https://packagist.org/packages/firebase/php-jwt)
|
||||
|
||||
PHP-JWT
|
||||
=======
|
||||
A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519).
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Use composer to manage your dependencies and download PHP-JWT:
|
||||
|
||||
```bash
|
||||
composer require firebase/php-jwt
|
||||
```
|
||||
|
||||
Optionally, install the `paragonie/sodium_compat` package from composer if your
|
||||
php is < 7.2 or does not have libsodium installed:
|
||||
|
||||
```bash
|
||||
composer require paragonie/sodium_compat
|
||||
```
|
||||
|
||||
Example
|
||||
-------
|
||||
```php
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
$key = 'example_key';
|
||||
$payload = [
|
||||
'iss' => 'http://example.org',
|
||||
'aud' => 'http://example.com',
|
||||
'iat' => 1356999524,
|
||||
'nbf' => 1357000000
|
||||
];
|
||||
|
||||
/**
|
||||
* IMPORTANT:
|
||||
* You must specify supported algorithms for your application. See
|
||||
* https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
|
||||
* for a list of spec-compliant algorithms.
|
||||
*/
|
||||
$jwt = JWT::encode($payload, $key, 'HS256');
|
||||
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
|
||||
|
||||
print_r($decoded);
|
||||
|
||||
/*
|
||||
NOTE: This will now be an object instead of an associative array. To get
|
||||
an associative array, you will need to cast it as such:
|
||||
*/
|
||||
|
||||
$decoded_array = (array) $decoded;
|
||||
|
||||
/**
|
||||
* You can add a leeway to account for when there is a clock skew times between
|
||||
* the signing and verifying servers. It is recommended that this leeway should
|
||||
* not be bigger than a few minutes.
|
||||
*
|
||||
* Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef
|
||||
*/
|
||||
JWT::$leeway = 60; // $leeway in seconds
|
||||
$decoded = JWT::decode($jwt, new Key($key, 'HS256'));
|
||||
```
|
||||
Example with RS256 (openssl)
|
||||
----------------------------
|
||||
```php
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
$privateKey = <<<EOD
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXAIBAAKBgQC8kGa1pSjbSYZVebtTRBLxBz5H4i2p/llLCrEeQhta5kaQu/Rn
|
||||
vuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t0tyazyZ8JXw+KgXTxldMPEL9
|
||||
5+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4ehde/zUxo6UvS7UrBQIDAQAB
|
||||
AoGAb/MXV46XxCFRxNuB8LyAtmLDgi/xRnTAlMHjSACddwkyKem8//8eZtw9fzxz
|
||||
bWZ/1/doQOuHBGYZU8aDzzj59FZ78dyzNFoF91hbvZKkg+6wGyd/LrGVEB+Xre0J
|
||||
Nil0GReM2AHDNZUYRv+HYJPIOrB0CRczLQsgFJ8K6aAD6F0CQQDzbpjYdx10qgK1
|
||||
cP59UHiHjPZYC0loEsk7s+hUmT3QHerAQJMZWC11Qrn2N+ybwwNblDKv+s5qgMQ5
|
||||
5tNoQ9IfAkEAxkyffU6ythpg/H0Ixe1I2rd0GbF05biIzO/i77Det3n4YsJVlDck
|
||||
ZkcvY3SK2iRIL4c9yY6hlIhs+K9wXTtGWwJBAO9Dskl48mO7woPR9uD22jDpNSwe
|
||||
k90OMepTjzSvlhjbfuPN1IdhqvSJTDychRwn1kIJ7LQZgQ8fVz9OCFZ/6qMCQGOb
|
||||
qaGwHmUK6xzpUbbacnYrIM6nLSkXgOAwv7XXCojvY614ILTK3iXiLBOxPu5Eu13k
|
||||
eUz9sHyD6vkgZzjtxXECQAkp4Xerf5TGfQXGXhxIX52yH+N2LtujCdkQZjXAsGdm
|
||||
B2zNzvrlgRmgBrklMTrMYgm1NPcW+bRLGcwgW2PTvNM=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
EOD;
|
||||
|
||||
$publicKey = <<<EOD
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8kGa1pSjbSYZVebtTRBLxBz5H
|
||||
4i2p/llLCrEeQhta5kaQu/RnvuER4W8oDH3+3iuIYW4VQAzyqFpwuzjkDI+17t5t
|
||||
0tyazyZ8JXw+KgXTxldMPEL95+qVhgXvwtihXC1c5oGbRlEDvDF6Sa53rcFVsYJ4
|
||||
ehde/zUxo6UvS7UrBQIDAQAB
|
||||
-----END PUBLIC KEY-----
|
||||
EOD;
|
||||
|
||||
$payload = [
|
||||
'iss' => 'example.org',
|
||||
'aud' => 'example.com',
|
||||
'iat' => 1356999524,
|
||||
'nbf' => 1357000000
|
||||
];
|
||||
|
||||
$jwt = JWT::encode($payload, $privateKey, 'RS256');
|
||||
echo "Encode:\n" . print_r($jwt, true) . "\n";
|
||||
|
||||
$decoded = JWT::decode($jwt, new Key($publicKey, 'RS256'));
|
||||
|
||||
/*
|
||||
NOTE: This will now be an object instead of an associative array. To get
|
||||
an associative array, you will need to cast it as such:
|
||||
*/
|
||||
|
||||
$decoded_array = (array) $decoded;
|
||||
echo "Decode:\n" . print_r($decoded_array, true) . "\n";
|
||||
```
|
||||
|
||||
Example with a passphrase
|
||||
-------------------------
|
||||
|
||||
```php
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
// Your passphrase
|
||||
$passphrase = '[YOUR_PASSPHRASE]';
|
||||
|
||||
// Your private key file with passphrase
|
||||
// Can be generated with "ssh-keygen -t rsa -m pem"
|
||||
$privateKeyFile = '/path/to/key-with-passphrase.pem';
|
||||
|
||||
// Create a private key of type "resource"
|
||||
$privateKey = openssl_pkey_get_private(
|
||||
file_get_contents($privateKeyFile),
|
||||
$passphrase
|
||||
);
|
||||
|
||||
$payload = [
|
||||
'iss' => 'example.org',
|
||||
'aud' => 'example.com',
|
||||
'iat' => 1356999524,
|
||||
'nbf' => 1357000000
|
||||
];
|
||||
|
||||
$jwt = JWT::encode($payload, $privateKey, 'RS256');
|
||||
echo "Encode:\n" . print_r($jwt, true) . "\n";
|
||||
|
||||
// Get public key from the private key, or pull from from a file.
|
||||
$publicKey = openssl_pkey_get_details($privateKey)['key'];
|
||||
|
||||
$decoded = JWT::decode($jwt, new Key($publicKey, 'RS256'));
|
||||
echo "Decode:\n" . print_r((array) $decoded, true) . "\n";
|
||||
```
|
||||
|
||||
Example with EdDSA (libsodium and Ed25519 signature)
|
||||
----------------------------
|
||||
```php
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
// Public and private keys are expected to be Base64 encoded. The last
|
||||
// non-empty line is used so that keys can be generated with
|
||||
// sodium_crypto_sign_keypair(). The secret keys generated by other tools may
|
||||
// need to be adjusted to match the input expected by libsodium.
|
||||
|
||||
$keyPair = sodium_crypto_sign_keypair();
|
||||
|
||||
$privateKey = base64_encode(sodium_crypto_sign_secretkey($keyPair));
|
||||
|
||||
$publicKey = base64_encode(sodium_crypto_sign_publickey($keyPair));
|
||||
|
||||
$payload = [
|
||||
'iss' => 'example.org',
|
||||
'aud' => 'example.com',
|
||||
'iat' => 1356999524,
|
||||
'nbf' => 1357000000
|
||||
];
|
||||
|
||||
$jwt = JWT::encode($payload, $privateKey, 'EdDSA');
|
||||
echo "Encode:\n" . print_r($jwt, true) . "\n";
|
||||
|
||||
$decoded = JWT::decode($jwt, new Key($publicKey, 'EdDSA'));
|
||||
echo "Decode:\n" . print_r((array) $decoded, true) . "\n";
|
||||
````
|
||||
|
||||
Using JWKs
|
||||
----------
|
||||
|
||||
```php
|
||||
use Firebase\JWT\JWK;
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
// Set of keys. The "keys" key is required. For example, the JSON response to
|
||||
// this endpoint: https://www.gstatic.com/iap/verify/public_key-jwk
|
||||
$jwks = ['keys' => []];
|
||||
|
||||
// JWK::parseKeySet($jwks) returns an associative array of **kid** to Firebase\JWT\Key
|
||||
// objects. Pass this as the second parameter to JWT::decode.
|
||||
JWT::decode($payload, JWK::parseKeySet($jwks));
|
||||
```
|
||||
|
||||
Using Cached Key Sets
|
||||
---------------------
|
||||
|
||||
The `CachedKeySet` class can be used to fetch and cache JWKS (JSON Web Key Sets) from a public URI.
|
||||
This has the following advantages:
|
||||
|
||||
1. The results are cached for performance.
|
||||
2. If an unrecognized key is requested, the cache is refreshed, to accomodate for key rotation.
|
||||
3. If rate limiting is enabled, the JWKS URI will not make more than 10 requests a second.
|
||||
|
||||
```php
|
||||
use Firebase\JWT\CachedKeySet;
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
// The URI for the JWKS you wish to cache the results from
|
||||
$jwksUri = 'https://www.gstatic.com/iap/verify/public_key-jwk';
|
||||
|
||||
// Create an HTTP client (can be any PSR-7 compatible HTTP client)
|
||||
$httpClient = new GuzzleHttp\Client();
|
||||
|
||||
// Create an HTTP request factory (can be any PSR-17 compatible HTTP request factory)
|
||||
$httpFactory = new GuzzleHttp\Psr\HttpFactory();
|
||||
|
||||
// Create a cache item pool (can be any PSR-6 compatible cache item pool)
|
||||
$cacheItemPool = Phpfastcache\CacheManager::getInstance('files');
|
||||
|
||||
$keySet = new CachedKeySet(
|
||||
$jwksUri,
|
||||
$httpClient,
|
||||
$httpFactory,
|
||||
$cacheItemPool,
|
||||
null, // $expiresAfter int seconds to set the JWKS to expire
|
||||
true // $rateLimit true to enable rate limit of 10 RPS on lookup of invalid keys
|
||||
);
|
||||
|
||||
$jwt = 'eyJhbGci...'; // Some JWT signed by a key from the $jwkUri above
|
||||
$decoded = JWT::decode($jwt, $keySet);
|
||||
```
|
||||
|
||||
Miscellaneous
|
||||
-------------
|
||||
|
||||
#### Exception Handling
|
||||
|
||||
When a call to `JWT::decode` is invalid, it will throw one of the following exceptions:
|
||||
|
||||
```php
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\SignatureInvalidException;
|
||||
use Firebase\JWT\BeforeValidException;
|
||||
use Firebase\JWT\ExpiredException;
|
||||
use DomainException;
|
||||
use InvalidArgumentException;
|
||||
use UnexpectedValueException;
|
||||
|
||||
try {
|
||||
$decoded = JWT::decode($payload, $keys);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
// provided key/key-array is empty or malformed.
|
||||
} catch (DomainException $e) {
|
||||
// provided algorithm is unsupported OR
|
||||
// provided key is invalid OR
|
||||
// unknown error thrown in openSSL or libsodium OR
|
||||
// libsodium is required but not available.
|
||||
} catch (SignatureInvalidException $e) {
|
||||
// provided JWT signature verification failed.
|
||||
} catch (BeforeValidException $e) {
|
||||
// provided JWT is trying to be used before "nbf" claim OR
|
||||
// provided JWT is trying to be used before "iat" claim.
|
||||
} catch (ExpiredException $e) {
|
||||
// provided JWT is trying to be used after "exp" claim.
|
||||
} catch (UnexpectedValueException $e) {
|
||||
// provided JWT is malformed OR
|
||||
// provided JWT is missing an algorithm / using an unsupported algorithm OR
|
||||
// provided JWT algorithm does not match provided key OR
|
||||
// provided key ID in key/key-array is empty or invalid.
|
||||
}
|
||||
```
|
||||
|
||||
All exceptions in the `Firebase\JWT` namespace extend `UnexpectedValueException`, and can be simplified
|
||||
like this:
|
||||
|
||||
```php
|
||||
try {
|
||||
$decoded = JWT::decode($payload, $keys);
|
||||
} catch (LogicException $e) {
|
||||
// errors having to do with environmental setup or malformed JWT Keys
|
||||
} catch (UnexpectedValueException $e) {
|
||||
// errors having to do with JWT signature and claims
|
||||
}
|
||||
```
|
||||
|
||||
#### Casting to array
|
||||
|
||||
The return value of `JWT::decode` is the generic PHP object `stdClass`. If you'd like to handle with arrays
|
||||
instead, you can do the following:
|
||||
|
||||
```php
|
||||
// return type is stdClass
|
||||
$decoded = JWT::decode($payload, $keys);
|
||||
|
||||
// cast to array
|
||||
$decoded = json_decode(json_encode($decoded), true);
|
||||
```
|
||||
|
||||
Tests
|
||||
-----
|
||||
Run the tests using phpunit:
|
||||
|
||||
```bash
|
||||
$ pear install PHPUnit
|
||||
$ phpunit --configuration phpunit.xml.dist
|
||||
PHPUnit 3.7.10 by Sebastian Bergmann.
|
||||
.....
|
||||
Time: 0 seconds, Memory: 2.50Mb
|
||||
OK (5 tests, 5 assertions)
|
||||
```
|
||||
|
||||
New Lines in private keys
|
||||
-----
|
||||
|
||||
If your private key contains `\n` characters, be sure to wrap it in double quotes `""`
|
||||
and not single quotes `''` in order to properly interpret the escaped characters.
|
||||
|
||||
License
|
||||
-------
|
||||
[3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause).
|
||||
42
modules/pshowsso/deps/firebase/php-jwt/composer.json
Normal file
42
modules/pshowsso/deps/firebase/php-jwt/composer.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "firebase/php-jwt",
|
||||
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
|
||||
"homepage": "https://github.com/firebase/php-jwt",
|
||||
"keywords": [
|
||||
"php",
|
||||
"jwt"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Neuman Vong",
|
||||
"email": "neuman+pear@twilio.com",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "Anant Narayanan",
|
||||
"email": "anant@php.net",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"license": "BSD-3-Clause",
|
||||
"require": {
|
||||
"php": "^7.1||^8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present",
|
||||
"ext-sodium": "Support EdDSA (Ed25519) signatures"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Firebase\\JWT\\": "src"
|
||||
}
|
||||
},
|
||||
"require-dev": {
|
||||
"guzzlehttp/guzzle": "^6.5||^7.4",
|
||||
"phpspec/prophecy-phpunit": "^1.1",
|
||||
"phpunit/phpunit": "^7.5||^9.5",
|
||||
"psr/cache": "^1.0||^2.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory": "^1.0"
|
||||
}
|
||||
}
|
||||
@@ -1,63 +1,7 @@
|
||||
<?php //ICB0 74:0 81:63b 82:be3 ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
HR+cPtd29tCI5vn4JdgoKAsiiB02nTdniXOPvV9SWUjTR1ouGluWynAPsaRb6rjI2fZUGgjztgVM
|
||||
zwVNKDw+jxAlujmjp8+cdjK29GDPDhRTGXR4s6auw5UOxJ9Jl/coi5nbO6NK0R7/ou4WTlVsKidQ
|
||||
Bv2XIKLB9pkSmCbEAWK8oEVvLzdfaQ1pEL2q5qnI7+dDBwfopVK5Zm1TsF4mTf9fZIhXsEpHfa2s
|
||||
m9EeXKL4Ee1N72ENKAQFsgLixdBipnEr79Dqju5PmQ5c7ylffYvSBFWoJmYI5zSNeGdrTyGvke2x
|
||||
URF3ghRnXYnf9cnGBi+4SyagfO5G9smPAaU4BVBS9h462UkLGGjwyAjKhLUmeVhwKoCqIErxPKxH
|
||||
NVWiPh5AyuFtZs3VbU5I2ECjOC8aln7UrRpIJllVZasYQvIrWkBB/iYRLmQ7kQq+/tp9GDwQNwLz
|
||||
llvrWt0cXE7VsBV6plLD9p1sL39nqdsd7AtX26jOMq27tWXSZDzvrMevLawksuO2Apuf0RGBFs3r
|
||||
7Ti9eRNHInvORCKX6rGB9BWDxk7Fu9gWDNPlzrHEMrfnFcwDNDgmrivRrl405xqq2bjs2AE++rp8
|
||||
diKz5atOFNIwAM237oAdGSG8Qe6vr2yhARqvgnOpd0kvavaHRS3AtwJ0x6fdNjlI/0h5XnVWgesW
|
||||
oqPGnudc9V6GK04ldsAPlLzpZkQl8jrJX4HGKKgm110eh+e6Q8aKQBQimsGDuGSUerj+CFa2v10o
|
||||
8+sRzdxpnBPBDgxJfJxA5dPNOZd/vaePFqallIZD07fsuEgwCXZG0Y7BWdelkk9x3f574qjDjHBu
|
||||
aLQIEbl5wajPw1wSY27IZbIqOLMV0xRP6KSW7GjFjlHqBX9EuXTJZlKwCMQD7jdwKn3KWyIqMXCm
|
||||
0oNZKKjY5BUBk9RhibKxzptXz1L3UTWqtgY9D2CMWVEyR7VjL0uoxAQx5s1Y7pXnD5xMWnfMZdTq
|
||||
aVNamBcgHLWfmCAAuwcoieLD1rX3aEwXUq1H7nzRkXBKUJzawnwJoei099VPtLtpECh1AImsv3Y6
|
||||
0MhOb6MhCPuvYF4EMC2rb+Fjdi7bwkT814M9xKc+voKFne5Xe194BurKO4Icnub69GN4HsD3u8Mg
|
||||
6RlhKA8hE9Jv7co033+gd5Iv7y7D6OPAjqJWMopVA7cW/1rJwFQ5+4b5ycNZzONs/k2m7vsGA0Z2
|
||||
tkBfu47NFlByfgIKp/qSULe5sLs17Wororh3/oKOQtItgO8XC14g8x118RjnJ9UknD7FiVpCUOk3
|
||||
K2dRLzL0uMJ79mJsUlF4RJGjSpPyXeAkWUlfylpLSz50rh5luOaPxTij2Bvbo20aQsAPlQQE1ZAa
|
||||
eaAe+CFAkyKmc+EshvZoaQwvk4zY02O==
|
||||
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
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
class BeforeValidException extends \UnexpectedValueException
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1,385 +1,258 @@
|
||||
<?php //ICB0 74:0 81:27b2 82:4d0c ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
HR+cPqQlt8hB8oMjDsv9gHWHoZQjre8DBPGqIdUg3tcElpFeW5swlX9lBFvc0/+V9pwnRMhiIShf
|
||||
aEjYO9mzr1FJ/akjBJGGnrb7DMXl1dfOR4UZmwfy72+I10xZ8jTpvcis/sPf2fhInZHpzTNQw4dx
|
||||
VXFV/SqHrqVSzLIseEoNtWpThoa5lanIqrf23jsSEgmEKf8FRxYyDGvL/Hp2hU2YAOqZpHeVkIeU
|
||||
rgBMXP8/+hO0mPFZHCrxqZ98g1v4p6zY8f5KjjyIUmG95Ti6WwEHs6PyBYJOONhIAIOiywFKvjwd
|
||||
StASn/ERlqtYz1BsVnNtE1RDMdRBmpNntqWDTOYmEaNSMZc5KjMev8aMFpvuneTeFQGMFtBkUQBq
|
||||
ZGfNwCsAC5RaiBHCbmwZ2GZZBM329ByHtjMyqaxxtuv4dA4BcLXkbmdTuzy6XxojIuPcEUn1ROpZ
|
||||
NnhTybuWHi5Gk7bBxFsLcB9C8eLIN2oHG1S88GVHXg7e4PWoToFCBZQ8BRUnH5OUPYkbcONzYexu
|
||||
GivB/zS4IFz9A1kzHesw7XxTr/02uCxCMLRJq2McUnjPxDZlSMB+8kSSyXBUrXA9z8Jdw389AiXT
|
||||
gcAL6xbUXLyoRBbT18lF9NWIINGZfhRSS5qGrILDVqxpND5yN7sFeTMeqajRNl3xuSyeyTMLAM4f
|
||||
0rgxHifOzAyUBTJ5Kz+Pu+YNGsM/k2LO1uxV31UIKwMSenLVBXQr+NqHR92HgzvZeE3RkSC+3692
|
||||
nNsZJhRP6iQ5bSP0/OkrSvOrWxKK4Y901mOrKwqSiAU0lmBP+L92W1itMKovizEyt8iIowLrybwE
|
||||
3Mlgaar9/p2B0hlT6LUuIRszKlbQp1+SpyfybFbvMNHb4BEYjKrGszY21PmoBdjUpO6iYB9F74d9
|
||||
aP2NeieBzG9E+aRBdADw0f19VxK22lIzB9x4GiFvcLezOzzeDmovCOQica3lrzUKJ9VMgExAxPrP
|
||||
XpJt/WUUbIoHiP3fFG0z/rqEeyOcIYPd9+17CoC2tZUMx/ZYEk7XCll9XyXzgsE7Egv6AiOVYrFB
|
||||
zssYvTdbQ8JL0Lk6myBt37u99JjQq9TKUeBZCHrmCIrVLTum/FLqWMGqmYhiacxjoHSz3ME7SQuS
|
||||
eWA7TwGM2OJhNHVW+NcLpAI4YzE6g19Uj83I3bqpKdZIT3u/0Au3uaJMCprR6js2AXURPjVIs5x9
|
||||
JQbNpZ/KDQW8dZiKsMNbyDJI5AAvxSQZC4B4XbVMj2MuZA+JGvtAsCN0HJ+lFOklKKLa1BTEoEg8
|
||||
ZyWzI1EzOsNzF/85S3B19uvfyULST0uXWcr61C0aBGs6WsnGD8LGD/gVHm3cke3Y3a9eKomVnnvY
|
||||
9HHZJx1gxpLDJA0Q/94GwVuNmlHKQXJs+yv2rlFb3yeZeQQ+UOUYu9k6P8INUfHwBMa3jIMFQILe
|
||||
K3cCLcuCFi61YH/BDHo9UTVOZla951UyqihrjXjQpmPkAOi6hf+HLFsu4wNwHd1C2zC0GmTMyKMe
|
||||
NQMvpGT5NIwrfKJkw0DcFqtCc/Ksa+AVCV67p8lmWmrxhW+lqNA2tmrJ9dqlJbwx+ispwpyfwoF+
|
||||
45Kh4gNdsmKoEj9CFvjj9E+u9Yn8J2iKMWjfO1TYWuWaoKxMpVQ+xwkxSaaoyhfUrXNDIBL066m2
|
||||
RMoh0LKRujeB/yKig2BDU9o/c2/pUr99dgczQEQGN4FZIY66R/gJ4sbPHip9BM6r7fzbcYYNZu4D
|
||||
W6uExgC944mKIpa+rrWdGfSrGfYjHeUzM2QAUTXXNHCYC49OvKgRQoplA2v80pq/0wVnZFGMfcup
|
||||
ZYeK4FrVV2E766uEyqzqPpadEkvyAB8e+hdy5ArOaSylyVPNTFO5gpPjQFhNrpPdshjsVeepn/Qn
|
||||
6bI7gFKgm8dYlI08RS85NZRvgBM7Cdux6qufy81s7Bd7slADTIBdwvVOyUc0aap1xmBQr9LTNAZU
|
||||
cB9tGgQPRXlLL1R7zLdugcVDwlD3zXCKMkv50HU59r8Sov5o5i/GncEEpwen75yd/b8NK36ZZ0i8
|
||||
a2fHiv918cgHmJ6aZ5l60H7gdwRDYDoqUfdI5Rzg27/HbK/mtaxfhCxNppuInoo9+e2nHWkkHEmI
|
||||
Boza9v9MoG2xgBzexFKDZBCcqn/2VF4ebHi6nPlwZXO464lSJ+TFVptCmPuZ+cS0opXM53g0mDZ4
|
||||
MbemtDg6NK+p63bThlxGKKDkD76St020B2DnMHDUhq/sGDjCw/P23XwajgO14elD9SBb0T0dE88q
|
||||
Dw7JBmDWDXyFmf7xKljFWwd3LBYs+MT5zyLWQ6r6/hwp0RcQvXDOKz5iBiP0q5GAFkaWG4K/Vk+/
|
||||
m2NmeVNKab747/iDZ1Ot10/LPNMDK/HhrJvLa+p20YDrPHQKosdBFtBP3NfMInFblA3w6qlI3W/M
|
||||
BiBidO5Te33oJrVvCfC6FIzf0UxCd9ucv7ED3JjZmtOsHHS9AMLjn+yoxyokzHJEl+p+nHyLYyn2
|
||||
3Va0lxhujfrY3nkojv24cIIpJZq2f2SLQr7s7/UR4UEJ2p0V0B0REnlVxPT5U1A05VeL70gkxkiL
|
||||
r214/zpGdBFTrRBT51H6qCTdOSAjoY9ybRJIYfgRreOoLIYqROSOT3A85G72bUO840s2Ur53+6st
|
||||
dFh2N2Xi6528PHInahK3XwMKIov7F+oxOhCNsnSKMTk3SLY5wHdsCx5KZMRkmBm4Q5xbJLU65uDA
|
||||
X3RZzNYGwPUYEmbM/m3FUwg7syzhrVq3hSCp7d0HzUlW78eR+qCS92FEBsSob3fQlI2Lp7YgRkG/
|
||||
llUX7SAaKPS8DMRnWP5LYr+8wAmcmhGVCkD3zPa0xd6L//ly5XyVidibunV8B5irfS0anNaaffJ0
|
||||
+HmcYg1uUwYSJfvTiYiG/0Eq02Pr+SDX4xRkzMX4GseMkqbetFUSwCepShec2sPvhdNS59uStd/8
|
||||
081CVTXcCv5vzv0tVMdv62ZWxgnqLvHECe35GwY2AyWhiMimp0V82BQ830z7XRsPokfTxVYdTq7H
|
||||
ZcxrgKD0XQUcbTP0IODh0M7vuMvf23yUHAGC77xIrX0df8cPYXGQD9P+SD0Wjj+Z+Y2gcWtGIxNp
|
||||
ThCR5zw4lUMaHbntqjvMn/3OkU1OIkIhTOUKGWyhHtMWjrbn56dNrqRr/umxXc6hOLZfKlGn0qeu
|
||||
v/gvvGuFaQ/jQxR8knTdJ/eApqtDrDkVoFwaJINn/GLk82xn5dmYEHrrNqSjqrGP5eOtA2Y+Vbgp
|
||||
7aeXZD4bOtvmIYu8nDLJ3XV/hDDw9dSkg0eupbn3vZqNzRkNXGNMokt/nayFOLMfEfGk1p9DOxUZ
|
||||
Ovgo6lD/VzsPftgfXxUcnBirRBqx6x7zUu+fXVi07CXnFqY3DNFQLR5bm0lrbHNWMz24iw+PCGZL
|
||||
FnVNIyUSrfqlzJXIUW9hPd9Gz2FCOzW3OBd6AgrAJp0pY16+N/G/Bk8AwaVaaQ9gxw100Qv2W+z4
|
||||
zl3Q65IWRBBQuI1T5SouOMMlA7P8JIAQW5tuf92Q+V65u3QSjODYhBlufnjwTOHDmt1CJ/gPirEm
|
||||
mqOi6Pzl9AufZpI2lduJ8k5cpi/tRZCcidZ/FVKVdHS/jwfZTRItWS3PhRMtqW8SkjFClUWParJC
|
||||
zQklcGQ92VV0w5ELKjjrwPmg/hyCSura5Z+DppIxIWSvMiSTIe3IzZkDc0UvHGFjh4qE7NIWAA7I
|
||||
ue+twEe7VBj1JaJIeuqpyv4IkLEL/SPZJGHbbJtowFIYYl2MHsKWT5q6jNKDOoTrOJT89WJVnmXk
|
||||
GbcrJOIN/aF1P6XXSqErKBNJlz4hzNRaJOFLcUs3lrOKIKp+U+8+e7i7uGwBTZupG3r87v8bo15b
|
||||
aRleAxZWZavVPkx5/YlZPWPuDdfhluUo7fnYfjK4QBJ7bU3xYYMZc2fofARVZqVdA4YcLA3Z0FLT
|
||||
be2AgH3bB/riXZCZJs2alWtQ3Q6maDTSvwUr8ALjBO27upwxQouNSwFumP4ME5F7i36h4bLXhD0R
|
||||
32eTzxNk7n+mUZdVL/fx/Ok7lH10zUvzxTG4QvYwwq4TBvEdq2o+dz6Pe6qgIc2C2wXCH/+0bwHo
|
||||
+41GQw7rhiQpFrB/0Fw4j/Bpkre30dULaiqoimLjmyAR6k+AA66uvLoqIEMgKnMdE+YSC9D670u6
|
||||
eqTSqnzq+5oOSfjZSu2GYrlHRQA7aTO2CldH216A8Vp4snbTDwMHAkJePjhD8Z19mITbeKfJYoJU
|
||||
96+4MQxUnNDvUPtYT51BKe0U70b/ecjEeFvzqVbBQlcTIWmSaNf1nS5akstV3jeuuoaP0LzAhIU6
|
||||
9V4WoYUpek+Vqfo9tMVcU3OljaVfktjBKEhWIdLauzWXs1DStAQ/Xt1YhHvOvj2vRda0Of84D5E/
|
||||
NBdTO1cq1TRwIfW9cbYcctCmVLraYA6B9Gq3AhcpZRb4a09roJGP9JByUlx8X5vWfbif7e99LNa5
|
||||
DUVieqL/9AaRmIEscUE6HuJZT0v2mzTjs7SWKkloWMX8EvzqRPg8ynM6KQcow4SN8uulHeRCOV0B
|
||||
HqrKQpaOtqzW7SP81Dfr+eBZ3eT6dHvceXqL/9E2Xi3SkUvikH2JQa3XBoNy5a2qCsWKcTGnHjoE
|
||||
f10xJA0JQriY3f/TG2ciwUZCIkVpEKEWxom4yj+lO6WfRd20ikbba/X4HfiMJDmr2U6cVvWvX+/1
|
||||
KBmE6GIdoJPrqzI83o+zuwauri7/KR83OmoCvI/neKkzODwDqw58t/f1puPkmtzDQp0n16y8Zoqw
|
||||
TyxGXaIk1FwI0j93hZr1sM/SZVCW6SxcLNYbKH09ucZDv1o0a6kM4tR9EpZ5Xw4g25/rViRU7qlA
|
||||
NSTifP62OnfUQwT6ZW/ICfYx1US44K4fnS5a/wthQUALm0xAJqe+vsBlrQj+arLfU4mYYHEB85tF
|
||||
1XQcQAwsJUd7kWT2ZsdYMsvHj2Can6JckXKUZ0XFUz/mZx1rdcnR5cMydY/2fH70yQGCiQtbFUpi
|
||||
wTc1/m31lFZ5xMwp/zFjHhkyLCL9LUftkXjnvqpTVE232/vjVMeP89xhZiEMTV7mu2ZRHiGo1C2T
|
||||
A/OYhkgP/VG0zz88wDADRjr3BMGbIHIN8cnRu9OqVX5a67yCSjpjOipXPKOgy4buNfxjRuS6u1Aq
|
||||
PhbWckshtQu9Et2PVy65qPLqxgqz9FFR3GwPZXu8fGT7Nf1JjjUmg3b+uLLT0jVZ0lQHSq2cy5zh
|
||||
2W53ALQ+3MGSKvoS3Sv/erc6OI2elQKh5MAa9y/D+kvglYIx57NL+OYeV2wAJ7CInqyqbELHNOR5
|
||||
k4WdTspcPY/7dVEQnSXvnlmdY7uUSYqV78DfHZ2pZ6NoGRCg0seqIKrbrVH3exXduIKEFHvplN1T
|
||||
EKYM9kZZ75F5WwSfqLWlHnTTcT7YVqUfG7n8EF6K0/BGCtWlKFxXnqQ0TWZOQr9xikYwa8bqrap/
|
||||
3VxUvPreqyQ0mv8It567iwUQ+QVb2B/og+PbRaxLpZbwiJiUzncQIOw7V2PsstgUUdFqIk1elZB1
|
||||
BHGhoz/TLupCCbqHLZO9CuVLXvz7aXohJkMEzNvsXFEGJcs9xYObMzU0HWJmNNeNSPV9xmWqlqJw
|
||||
3XbvrwiTTF7KNvfBqmioEzLiH0NwPtsyIByUIO54BLenNC1IWvbPRMJYIZtk+2uOOsF/6L6DBhH6
|
||||
nzmfX1Oiuaq7hdHe/vZ0oLBzg0DjMSrxGK3kfNTVLEHWurEA9tniZfeMFpVggpcRM0+qVgExC1Mx
|
||||
oYvkBT5NsC0oipDWeVCM1kiqxQuBGbAtxwdEHUXyglhkRU05VMdmgXCGwjZlObIRPZdD3irJmWhk
|
||||
3COwYyRpWXiFXkl3KPreYcgPEtkwUjZXQnz4L4IFm7NgrZJEEdsMsEFoAIjF6o4NrmSL2KehixXS
|
||||
ZnawZEMW7qylWoe5BWzoUCz6OaMP40/9y0v1HY5gn3vjl/1AoYkLuQ/MCcmuwnXkRpRUpcDlNmvf
|
||||
DjAdi/GuvViizocLz6XfGy1S2D6uCqvOYIyZdmtdWdOraETU5vqRmMe4eKIhHY44At8Gr6kuatYT
|
||||
4aNhHLRiY6Sp7swVRBjehgJx5pX9e2eK+ae8g4mC6e0GZT1JjR9spfjSGvgJw5ShkkPnxk/C4Brs
|
||||
9pZxIL60sOHHnwlY+h3BG24ukcF2ubV6+Y/iMCCmpJ+sZPTTNOIDrjb4bPDHw5diwO8RWgkF7wUo
|
||||
adTcu4j9atjk+g04EFHXP3PULRw3mCCxbcvfm6ieOczSAOZTMGuZRp3CBU77sonBiz83A/h6Bx79
|
||||
HKUAGzZWNM4fHHRxqOssZIz0Gs4Qv8WtTYpWmsaOhx8btBvr2YBZPoGvoURfQbj9MKo/wncRD3XS
|
||||
/tPw9TxZ0dPOj6HajP8mBnqqn1+tDw2M+jk7cTFP2rZw84V27KYBb4lKMIDlsTt/H6rphcrMyclk
|
||||
opJNGSsQ9pKZXV0B5cEg52ngVYIj820kLy/5XSgJZEqYkAVXkDRfQZz8Z0jp3xf1BuHv7s076h6J
|
||||
Jfe9rwHEVKbjnkBd1uhoXpWEdR3WOmg87dk58RZMmZ0+aDA58JbcF+Wiwle63TKbpqV7xBRtL5bV
|
||||
o0jlEd5ocrDUpapIB2VNZW8ou7Wnr0Y3z33YqFeuAqS4LRbczOKGU1Vee5kDxIUes4f9KFEmB9dV
|
||||
s9zK3nGD5bk/Bdfa/pkXw/4CCQ8jATRRbcCA1JN/x1r8knHgE7zbWugGQPLJgUVx2K80+bNsMbta
|
||||
y8qLNi9VyaByIbLYRBMwJ5yqk5nnCHTd30K3pkBtAkYuWEAWXFSYLlnikjoUwNXGLsC26cEArDme
|
||||
OWIL4+gxmWEUQCw1cSLhKlWWUe1b9eu4p07+7YKRzsYckMkGLYzRRaFeIDjFwI7ITJ4Ii5RJDQcE
|
||||
kHMvGjCBI2vMDRFTsPL/Vsjo+uLMA6UHtORHBX7rsT7yNPRaSvXzjIYNbKUJwdXuz1CcAhJ1VkHz
|
||||
daR4X5k33r0JIuR6yazalGeDD2keLRo9VV2SjY0t21b77zGPenHT+lTNgN7pHNWkUJMBG9qjkUJs
|
||||
5JwnKblATxsU+UTf/r427hR2zcJmGlRPqWAPw9XVuvxs41leqM4XojkusBz6IXjo3Cuhuu3LHFyS
|
||||
fFWvv1Sf7vMJBpaQ0PS8bIzfp7Tk3zyTqbzVt5V1Mrrq3xxH1FMolY+yCTdC5i/ItJEO/rAemCMj
|
||||
lp1xWSZKfxga8lAFZpY6JbhkSDNuti7FDakQQDNoBbFW9xWAFJgmULTmuhg1GnwZmWnVz4Yz+qfB
|
||||
zkW3TabG33tTx6nBHyzE3UvUWorae6Ce6+FCItR/sTYpA/v70OdSIxj8eNuJtj4kN03KSsi9dDOo
|
||||
v6PqyixFDqfx36UvKp3GYEFkyndqhYV2bjXUxlXgRxaxQiSglOn5K7Lf/X3CNXKT3Af9SNEnNIn9
|
||||
1lH7XSJZorfJm9Srs9aaBYBPzbgJ8RGQ0qShWfWKTYMQFmVseSFE0/rRluP0K39OnwimkUWuXwJo
|
||||
P1K22uj8P881rI1bsmYH7VxyX2/6X72zJHqU5aDCMnczL5SJAoD1+xv+opWrexYoQkfT6Q0aAH7w
|
||||
GlVGiTE86eQ60KkyTxqI8QzjiUj7m/8ekc0bJpGINnx6j8SqEcHFwAnm6OTJn+cqwz72YEKRleeV
|
||||
Qa4uPk7WKIuLLJ/zdN/ZsdZHEoGH5beFjItUeHBEWvUP4z9Y52zLAXi+rw7nI4v6XbbF0TxQlyCK
|
||||
i0xDBPlI3vwKl2HbJoZPzW09AVW46oY4ajHpLPngdj9ltXG2E7yWipMZdYAMcg3mkreCJRfi4k5f
|
||||
z4IB3TBAjXdZCI8ZSdDTSSiK1oX7mec3UUXLqvcig9ZkzdyjD+7wlEr4D2ypQvd31pFFOXBnUoh4
|
||||
UmfUhafqN36BEDM7MCcDyOfEjQCWG+PUCVAWMzzXzlrvYVpTEfJRyouSV8eUWwgAhmXHxPCTUX79
|
||||
VoLWHZKJV2UW8bvjyO9hlSVcYNNydul43lQVC6uXUNCn/lQZtu9nGuh5EWIBbaIRcde2DHSqSiy5
|
||||
M7NMehcaMEmkh6XUlgKDi/2dJ0D1qE8TCN4AsRjwEOrzU9Iktb3aK5sbhtOefaI5Pa8KhwGtSAje
|
||||
5pX8V71Z38AJ2z7SIbMg7+yBc2n/gUjIsJzOkDu6E6UEN4oRugHLdSOShnInVbBH9LUZNhbPyGor
|
||||
iQ6657gyqOWhvbV3JqhmNVa6s+TA/tofzAnbBv41CEBVRf0IAXCMHIvg93+vjIdYUnK15x1ttHPb
|
||||
vyZwCOGxkC8UZwX6rH2u/xtFLasUPrLl0NPvgssAdZfWlkpIpvCJQ6ev9b9HhltDtzoa9HFM0sTw
|
||||
2dtJSDAAzLKU6MWl/zFkq/hsukpVa/3WuiMee0+QD4L2Gp17dxvN4/h6NmnSwfT0wD3YtmHh99yf
|
||||
QMezMTMEaB6ZGw3mhHFu+lngiqEk/iXaTVl6oGhvFiwdLjoYKKKYcjCcyWJG4qONdluwn/4HUrnn
|
||||
HD+ey+MI1kWXHdaDyc5IzXjkM73Gnt61atS63ZyYllkdFel2WxxSHmmNn6TjNd2nMqxoEY8eDPxj
|
||||
g4+zkW7D2DOfw03/QogpQL3LxiXVpTDPXce1TOJm7I/qGSeJZXVCcIeSwiHjWFPXLtxNuNem3lcl
|
||||
RWf/csJJVZziYuclMFXWbKhCv/hySPszLrdKEjmSgMqCdlC5kD9IP6EpN5qdYOoZ0BSITSBLX3Qw
|
||||
TD3eMXd1rtj01Krs9R7ZIE6noQYcGJJg6TYDytM5SojFH10xUQkDYgKt/xn+FGpuj0NIzh1a3yWw
|
||||
RZ7/Ul+XUfrLEnPWZ0vHzUGiWd7v/Kd3bvhOY++e0kt5N8IGlOjXAiqvr7pmrE/Af6VR+pE6aguk
|
||||
Xwh5o4v/knVU8Ab/6LWkS820PM0ePHom1fn5SX7FmMfiTFc5dv/h8Y1Bd6HUcW6BjoCsVThOk7Fb
|
||||
Rj/UQMeKkIXySfRz5bK9r2rD5ON2zocGw4fvUMB/50OU+Uc4RcevHxtRezehFG/Fyey55ffOou49
|
||||
zcPdvbKfttwLmUYOhSvhL3V1A0PdO5dAdDNJgV72FxGL8eRep6kCDa2o/35IiW+Nw3xGCmalFxzw
|
||||
04EOgqEfJYR6yUNZBdY5IJVDtBsj0yM5qS9sFJhgGCmz35bg4uuvLt9kdVz8o4ZdjmLSzNmw2p0w
|
||||
qO71JTf7IvgLCD9GFIh9WKz2BJgomxPkECDyIIKSotOQKezBhcHRTG88ePxP3aoHWCgURAcy+oS7
|
||||
P3cL3pb4D79O9MK0h0juTFrKwTwM9RNoD5h8cPsniMZiiZxKksiwwSo5rKoyf7jPRBKxflqvd8iZ
|
||||
YixMBa5BI3ds3uhgvDV3cl0bvBATHoU/xPJ4eY1GTADRedFFMiD/AKLqqsNkd8iHhFI887rFD2s2
|
||||
yTjY4a/H/zk0Wdyo2/K9ODzyLxx1mVaTD803HpPSJ1btXWxgFSpSaovvIHMvk5jE8E9afrQbjliU
|
||||
MEcFs9Pxh7Cmmk2h8WsDfxxnSZfJSPGgAPVajeUusOWTuJqwmhJF5v1jfntjQ0Z91iP0v404Bh07
|
||||
xGDV0sXTKzrmWotrOhpnPXsiVH0HHN2LvqYiB2LUTBJcHkr1YEbAoaGkIzEtz4U+AxVNlUxqe0XY
|
||||
0lXTR2OZ7PjF6ti48pkJKjHg2sbtDad7vB4kToLp09vbUsQ0uCqVZDgsrhQNTTZxc+1Hp/bNGdxr
|
||||
9bSNjr4aL4URPaDE5fSr54xW81/6Q1iN9Ydkh0bs9goW/qrv0FZ9u9OoXhZ+KyGRTXwswYddD9Jr
|
||||
G57xMz6eKo6Vm6mPAMHfd28L3c97qwkXNKxNA4AK6dZkjsYHfMa==
|
||||
HR+cPt3ysAGtL26BQpjDXsAwmFbZ85TjBRVyJyjnXR7xH/6DbosIp4sZe+eDxmj004i0O12ED0go
|
||||
qUPH0xOJyipFTEUTPCfH+1Aw86yOf8GDlpJ22mT8g0bTZWGwnkqbbFT9Ly/zKxU10OiJOSwFrf6s
|
||||
dJP/XGOi5Uyz/svmKh2hIuSM+0b5InGYullj/2ksgu8mTcV4EqMl0Erq61IsXO2hOSl9Q397l2mP
|
||||
xwN0SQSxJ7biPsjP3Lur6MCOhqTJ8KSlgw7qJHmjWRmQR5Whh4nP89FyCR78GYkaZZdPxv/LvLub
|
||||
jnlWPSqoEQM4QlxoPE+Pq35xet2KDsU6PWCh4rTyOu7bz7bD5GC8whL5B8g2fdCOR/Drs3tFSngT
|
||||
ZCwYi/r2RLMv+3dM7Co+yxN39jyIXdFQ4wKXXgAPpnsM3ipn9YEfxlb5CFTgVYqU/m60IR2e1ZjB
|
||||
TVkOZTxg/8SgTFPDC2d1Nrfo/tApjmRVX32EQpweY8rKHxLxcU3GhwKh+s+OLENaA1VVidwLzXgW
|
||||
xlPGX6VLTKDKK0TDK1rxwlPFyyTPd9uBAF6bacFI2cdzYhOk9b8mRVgS2OxdAcXYfz92RKNGCJe2
|
||||
/4DJtnSRyHI1YAHeD7pw0pJ885hXLz39ox5LFSviiCakAIDBJ2EkZoAfgxoiM3vCuoBjDLhc70Iy
|
||||
TEJn9qLSctr1ParB5yAcuSMOLThi1xHl/Q+cuXw5vgFAkDdOUTShQbAfeK6uVT4AlMslpa2LWm88
|
||||
e7ebikr8cyop7dQP7OctFrmujboisoUfV8xrjm/bYlycEwRqMas0s2/KccNZ8cHD+S3Tgcf2kJGK
|
||||
YzJVTTcsQnBRelwYHmd8LW3NG3Z1FIV7NvZ5oL0Q/dyv/wbtWJ/SlRAP7PWOJfi10oOstF4PMxiI
|
||||
KrPgSgjDLM0HxLRWYfTakZHRFaTxZjOeLPngBf+EkhP3JxTOcjY11OuRGWdGbCRfcIEZJdVoawjF
|
||||
1DPqCtcCMYlMW9lSh6+tt2gkbBn039owQ59s4nsHmk4+i8WALBA/nKwCvBnH8x3r6DKx/MqWS4ki
|
||||
O72eRkeBZvdMl8cCPCHPkduS8NnlgAIq8SQHRQdbTvWrKEMsfUYapotLGCn/E6D4i0e8C/yS08bp
|
||||
72ujqjit+/a/3UVia4Ul9JsBlcictrEvNMzJ3bzB+fYmyyckKx5D/UtDEpqLI9dsGXB7xflbW5L1
|
||||
+FmsXBjwiygEnffkFh0wiloZAVihWdlmI+ItEh/w6DM+IDKIavIBCeYP4bEzMK3bimhDU12vUx7j
|
||||
ncw8BZeYx13Dd12vCqVWRQf4BzbUs3LZGU4SWIyXISFS3qyBteChleWh/IADWBIFqNxtjw1FuKA1
|
||||
MgojLW+XgauNc01tqRgQk1tjth4worNCt+ab2Z6J9D6estNmpM4C6N5U1Iz9NDjlFrUVOPjEWXDr
|
||||
rCu0+0wxClMaWejEd+Fi5jaVgRBRYoLWjvenKoPFmucLQVNNMdaqoStQdtmZSl8N/nUn7Vw2UMyB
|
||||
Ij5aBVMM8haTBJilGTEkl81DedHrzkFHZX8KUIovTAifDlFXES7u6/gY7sRonXGUX12S5JfmUaLY
|
||||
k9Nf/wh5ILVcRzZW6Bqv/8vAvNL1vZvz6GtqHT79pU6OQ9Q5VGCF3+0ExmRdlqk+y6b4Owf8WOiO
|
||||
1aYw+pyv9wrFQxVVHY5L8bgYPfQJcD17vLyB8D3c4LOZgMs5ve2cN4TGiiUlR/xYj3WeO/K0TfQ6
|
||||
UJgNSUX94atPlYrxP9G8r9K3QZ18Lb+s3y/OC+i99nJ4FbVPFmas7S73C9ohgEwta6XToN09vdWO
|
||||
1ZdOrpfALQ0pDQ4N+aD9nKwnSsyzp4rHc4We1LdKGpE6YC9L6m/rp0K9yM3pQXEbdFD4Z/DyDnul
|
||||
zBGJM+MvdfMQLyGs2NO3/FwX3clMWqTU8XPWlrUxgEDHDut+9IOvl8+K5mBuiY5jmF/amRnDxPMV
|
||||
pOQqU/XbLCEMxwDkwJMIn7SsrCCQPQhCSuuqj5Jt/cMbj+nq6ypFAig3bxlPWWUSWvkgNMYsR18K
|
||||
6YEmq9ibvGvzgOJzMaCGInlGdv9hZVTFPocy3KrIMjwF8nu7vLC/qzQOdA6XdtzuUDRk2XTliF0h
|
||||
uZb6f+Z5BnKwxlwXUYWuWgoBaBICl2u+o5+kaLkkmEgYQoM82JA1WmwR3Fq99/aoya1UxsZojyF9
|
||||
4589sKWlRVVOra/xsat/w1gp1XyqTyBc+m9YJ/fQ18as3CmliIb8zkIKzmi8mwiB1fUGPYVqlxoV
|
||||
fvnJWpiTKpMwIaKTA8QgQIJxfoKwnCcWGz17DUdWjPzyRIw4iojPyMtuY5qSD60wwELo5OBGJTAb
|
||||
3dEcFdGAzksLYakB8c6n9/vvBbQvU0KZf9Vq+FY+4pvAlgqOAoD4oN2EoZJ4GPzQh+Q1lGaqrKJl
|
||||
sr7QZ57Ch9sAEcnAPTOKCp615q5WT7jPU2g4PLEdQSJpS6gwz433GwpfNuYQL8mSamyBJkh6lEkj
|
||||
R2Wj30ztQaJ9rAThc+oMS2V7g+HXkZZ3SSmxytAzWavFLGvXqkU+prhuToqc/5I/nFZwRG8eWXCV
|
||||
ew2SKM7IXbH8qvAz5vRl0mL9VgAY4yR/IbFM9irNTnWbZwRc/Fr20M5eYhj8Bhyv/a0L/Yaby6Kr
|
||||
RlLKTUh/sqhB0PvSdG7ogrxp9skAm5QLVB/o7Q3x4YPwCcfpld9ERbCrEexS5etE8Oa59PpnYoac
|
||||
Oohk9Hberw6W4dgq6cr2Ktf1VcDo4ig2IbdzuDmKocMRn9TWtzR4Bv1vPdRA4nqDocU++8SmumF9
|
||||
LtndXPPly+/cOx/XI45ATK9sJVWezjTa2b98qAyNlGJGtmm0bWuvkikmH2d/4K93CeJqaiU0/r+G
|
||||
qt2qlewXvbTzbaoTEc01Oc54AdbCvhWxWLyvV1eSOv24zWGND+zRGkfZ4ghXO37+jUPFs2G8nYqK
|
||||
ocdSvcDbY6D7KNB90yZXC6CBtsWJfKomOeFOAAxE25JQnI5Mt9ASy52TfyyYBcU5SsPwox6IB//a
|
||||
gORK2J9ABnZUbpPS/XIesAVA1P5fPbD7sG/wdtu3gzesXsPs1CM+vHFfz3Z23HdYnXiXKm7tg9xG
|
||||
Ktg9hdLiY+PwFhYSiTIfCtECqqZ4WR4j3IKBSyObTQ8TLXMBQDh1zzGzW2iJGymdO2Llcv6wlBL5
|
||||
IvYFQ/b+GAPvR6G3Wnjq0F+hvMgCsoGDZsEq/AQrvDTZRRTU7mj3O/ZtabejzVibWLEbgqqP7Kj3
|
||||
LHxFHQsFNMa55nE5zQrLdXNqvzgRjdr4CArFZO7D+aJfmte65H9wxVYqReceDkZ0x5DwWb7GD1bJ
|
||||
Az7yhFQC8Umvw4HYMcGE4lRfa5CAbTKCgs9HXvsJj+6yhVEALEHGqWDwuhLTfC3WxCMtWsjg8bNo
|
||||
rplFEzlPOtedPyWSfCMaJ5uxyRqJuXr9QeQD4WMxvEh4fbbidMq+C8pMm32sCezVAJB4LuoaV/js
|
||||
+g/FSdUMP+CIv8z+UsfKldEM5vgqbIqQKBwHq0dgyPBf50MOtRlOZkj+JeLILU14SrNZ3cNxQza+
|
||||
Y7qw+28cXgJL7kJ4HlDgew/sWXZlaw1qlyfBKMhczGWoVaWTvDWWg0rHuCkF5UDok9/Am95z1IMW
|
||||
LpDRrKji7LYcElK9SPyKEFsIgXXzauY2Y2PCFQ5bGfILxSdTa8VMm8ENkxLPwWgLlfFwpRXl1LB0
|
||||
lfsu3urVN8iOh9NF3pGSTYhwuOPh0992sfbbUGrUCxsID8EAxej6/m2CDYKQDUyajVcnnz89u0c1
|
||||
0OgbwOJrITjCPsehLKTkruDuRUY8eGLBZm7ZI6smarQOEH0hA30Q8PC/IhM/m4Aq1TPbEEB+2Ovm
|
||||
kgK5MtIlKxczwyEa+4i590KMNF+agnfh9xfQ6WnlORP5GAu61sXouZXt08s6giQvaKtvT0sW36Bt
|
||||
XR80IkeOGtoZqGUWG0PUMM/PFn62wfQ/aLcs2cTtw0/JFwnfJnKmcZJqXKSVemRhCMJ0k2UD3NoX
|
||||
zGW11GckVQglHBBYQKdL6FYQ1qQJLg1Mcxd5yfsCzWyRteKTTKjKlgMhD5mHhrJqyIKJxEqZIyBQ
|
||||
DyaNFH3S8Xxu4wdfLJ4PApfkpgNOZ0Z5oR8ooGdNfGk8V8MOGmZypZfDugD+jyZvHJrGqKQmybDR
|
||||
1iVnAbwv0YNo+fS6N2MFEwmkMCr1EnVxw6d+u+l6xNQIABAR0sCwd9rRawOR+8Yip+Z2dPZaBZKa
|
||||
0iZBZJK3YiTKgkAoLnvJbZGoApNKrPuXgZ1jVFn/qHFgngQ3RF4S5g1rZlrw6WHS2piqxuxw827y
|
||||
h+cm/iFlNIHm3AMAxNe1Jt9/x0vCQYmRezdmYqXPT4c0ibzEmkpZZwfIO6Vr8xKuriTms4dNDvRM
|
||||
SQzP2Hn4BlGP23FEo7CwJTbMx8oVeJ2qstO4MyGOPeui+nNlJsJhyE4sfNwuiGabJiFKqnTyON8G
|
||||
drfZM5J6FYmPyUnemDRIgwRHPm2XKiw0GiQQWQpGIljomKgfnxKqXTRXHQgfHPsBVBlqIC76ZuLP
|
||||
CCH+0LGaalCmZnlXGfgkw9FABE2Q4ZC/A5HM4RJbsiaqLCmTBOxEMzYUdPzYLehKAvyAKGwWzWue
|
||||
ilPaWV2Z+/d3rMbDJnUoHjImXP/AUYOYCPqt7T7CpKqwcR/uMnDMlVorByN2sLeHMzxKexVbIiKD
|
||||
EYQkjLcHom37qmynT4NHjLXnOAFd2/DEtBrJq4FGXW683eBHbo1At/gZyCe37eylPa9XkCXoDqso
|
||||
LWfdIngecM+7mfzkQwD+ia3WojjQgBoTtjynfe1ZVeYmdICv5Qb7NSKi/145LRH/OYfKh0B3+MFI
|
||||
6F2Pe11TIVgoT27N9LKhZIk69SCtDs26OK8/u4xawuPci3HyaNlcZgHOL1wDMJ4PiJIKaEvBrRlN
|
||||
coOuk7Otco4nDGuF+rtkdtZML475LArNOscDZgioxqd7QKsVCZYdp40PG2QHfXKGsHh42IF/Miv5
|
||||
rciY/9m//111jtco0TVyW2b8uybipWa8UT//+MY2XrUyzLtBuW65/I3AYFhPUjXkY3sSlqY4rBCH
|
||||
36bDML5LW57VMr712gRiaxnbc2QoToiYKqxhXh7+ZqX3zFOVrGW4ThAVxE5CHK4kg+N6NxCWdmot
|
||||
W5RVMsL3+7IkEyV15tMF9z4T+0b8VQQ/4PsyosxkndB+GJIPS8OezZUW8lh+eD3HWn//49nN+pkj
|
||||
jTtusJ/Qzwkidnfj1ea8Idjq0RSC1DUYoJDm7S9WmuErDpgpfT87VUq4ECt+ldZEy4mJC9jDwKNc
|
||||
RES02/l9G8alOHSt6FXFtCiwK4kEtCU/OsnOExet0YwZbJOPlvb2p+oYHz8oIBmJBaUz5DvS1Mg2
|
||||
cSMTcvWX1kKmDSF1t8/4hRer5vt33XnjBAIzEu/LGZJFfF1iCoKQP780wrjGqWwSXkg00QHkZu90
|
||||
TUGgO0pmL3DDE2Bzw+ellmfdZAa1u58toVYRyeIogsSseRQKr10O6qN7f0X1gXgWwG1yUglL6YXz
|
||||
LNdhy8YgaxQsmZR/L332PZ/9oXi+c3G35tZlZz8csbSanTrrXq3PczcD2RguhvgFWrG+6JP78gF4
|
||||
OWInl745XtGfnboDR4fo/2/WJWXS5r7IryrVa3RtzlBy5aHJAshH1Rq6FzYOd30lNSAxJFREsvih
|
||||
zVNraOGiz/3fmdf28zm9d9paIywUUQ1Nj7ng1mOJys3PVmuo70nuS2FK9Zja/35twH3m9jzUsnuF
|
||||
JUPplFa38DHv08cXA4Rvjfk+gDO35oFCFlVEgezpRub/OZMdt6fitbkIcxYsWC7NLOYYT4oTIt0X
|
||||
vY8nfpyPId/c3counMCbaKa9liO+iXnET06kLvzvsA1mpeS1hZRisSR9Wp7+V63W/RGJgkptaB7k
|
||||
0tpMcTBnN0+ZAgXPsYNoUyDfc/9V+ASGYccr295IUhgNhxE0zL7GHwYydUP+IODXwthy5gDgZ7jb
|
||||
EV7VjuAZQLolzonkiI23+tQEf8nW622MR7bOqVLGYs3Z55XNcZhhACPjbGvUCwdsmsH6VEEzx2MH
|
||||
qwf5ynwA9RkOnJCL/h1y13XOfydJmyBkAd8PXhx2IlOnzo+LMY35rgZY5BERm0IPRFiGiaUTzG51
|
||||
TNA5mJa9gqLhNnCEFjm/0fAKByHdSB81bYvBKXXS2bvFheNHGwtNJSEZM/P3G9ngOQ8BqGhMK5sA
|
||||
6lclO3+AsfkyV6R4PTrOX++qRTk7Xea6n23Li730/2KQcKni+jChayYaTAE8b+1zHSM9qjc164kF
|
||||
qJDuh9+wVPVVaOLtS6ZRj10YqecMjFstRfAJD8/9Ri3xoEvDYnNyFZIul812d8UPjHzQSye9gR9y
|
||||
EqVzuqz2ss170+pYxeUKii/4muINb44V5x2Ld+k8gdBlloOd21QZT4nXJVwkvUrasV6gEPLba4gV
|
||||
PuclGQjp5vBs9wHAk52EuZSVXU+EDLXfjpx7R9xPsQ2g9mrFgX6PP/JDGBqNtg9VjNHTWq3aD/1o
|
||||
zb8hrWSF4kD6oIoIVib0wMK+P1pJTac9/YD/751gz2WrNwnvYpTQz+3P3h37TzDPMKniRPgEvpa+
|
||||
QAEGSKpl2q1anOcfGxhhCRABWfY0fxxrqSVVisLr9s2ysGQUaOOhaAYI6tset2EnOIGu3NF2ZQvm
|
||||
A5jjnvTmL7BOlGJ9QmyeHcfxAW4Kj5csfEU3ml0b5MHDJTCovLYIwHhQGI+wkzIdNWrXDZTHIsoJ
|
||||
ouobmeNmPDs6Yg1VlS04dIau6xckucwDx4L62HY9NzHCe90+22E5WNGCbqJdvuJ/f2sMh90Q50G4
|
||||
OJ39BawfHIZUBJGbU9KVq8XjFOP9qiHL/qvq+DHIrk1m7DyY/IEeIVjff/y2QQ5puL66opW194yq
|
||||
gwroYyrSDDrBt9rfBH1pRHKH0lGMOejlDuvx+BYCXhm04iV1A8x7lZQRA1UX23zBHgxHO+BTelVs
|
||||
je+qLNiQvljk9tpO+nGN+3RdznEtOND9hEu/D1QmTJTT2oarJZj0eGwCC6s+X9SslSN3Io1LGMQz
|
||||
oZu3vXDlMGniiOoiwPA4tYpTxbj5W7ruZ+7exOZNBTIlqxC8iVLf1a27xU/1cfbaoiZ4XopVu25B
|
||||
eKADxhLKrpvnI2jgGe/Dp1CTkk1hvoxDRsJwSZF5Q47d9XKj8Cpw7oUD1ROvJSkVPDNc3bGAv8rb
|
||||
Xufb3fTfd5YBZVAElL9o8uXntuWYdKMvyvv4zyKFpafxofwyirPSUCmOc2rlXCyRhUm6BmtPdqf6
|
||||
LhMVWygmADFEpnzCDOXY1B2gAsDk8G0VS7Hu467oPMHobuQLfCllTUKo/sMlJEYkvTEZyXEiXiGu
|
||||
XTCfDzGKfSuAH8nic/Nn7l/vxpGnd94amjGUqSJDMIV96mWCT1Vf9D4FIVkE0dULM9h/FmBfuyPF
|
||||
+UHDdKCYdp92WGjVriJ0gTaLgrhg6BUrMvRg8qcH/RotyXo6cU5aj/KRu/01mkCwSFbgo/H/qmR8
|
||||
dL/OJP+++L9FnmRPJ5DmA+dBmx8TVkV6ez3KTFtHtnJL53sDPiPyeZPdW9LMnfcGoqFz3I64pJTy
|
||||
wHPG7xNYJy+ZmgR+Px6Qk+a4cjkG69q7HhGd3qnRDMWE5kGvV9VqYkYlONMUO5GvFwnDgyyIx1Tk
|
||||
TPc/u8aP3I1XIVQih/olhPkJfjH1Uu8lBsy769Eu1Xx/JfifNopLeD3oodeHoBgNsqLj0voA61FK
|
||||
Iog1nQvnA4kYuV59Ohxym9erOK6D7JduJ1MctD/VaNEd6I5N7a1fgNdjJJSCWcF+8IaotisnrGtE
|
||||
xl5cAPLCQI29BNtMWAGX8/BjY95gdT7AhprR5AnBI5zed5QldYxlR9AIZnDPV06bhAGFL7LnE4T3
|
||||
tSiDdIUv5q7UlZh9H8MMDhwu6rF6jt4FaWP4U45MjyJP8dAWRR1S/CaOa240ZbvjQbxYAy7RkNnH
|
||||
FUwVdnd1vaT5BPMgrd1XQLNpaT8599p1kNY7445Tg3Uksyb7ZlAmNPdZL/Lx7QSrh+yu9JdQH6uL
|
||||
GOM/VH60v5AP2xn4aYCsXZbLXcusbr5wQ0gF+qzEXM5IARUGTWfUoXYm6SuaoEGewQErZSTP88Il
|
||||
NKDX027OONumv4JwqZjIlQYT1D382SjoVrNvnS34kjpHXD7Zy/5h8sltSBBbNVWv3xjB07ihtx78
|
||||
fQr/g1O6P04/EQ+0ITj+FiA/mQYJwuP8C28nJrT+5HMHM1ijaYhGiZuQdrHLMb5o7jFA2LjNC/sa
|
||||
f+hxL9Jz8b5j+Cwd95Dd3YmoIEPUqpSKsti4LeaB5V0S48AM2Ogcayi5s/pT5oMAucJb6uQpqENh
|
||||
y1oxl9cS2UMVcHCn4cUyqH/6t3Ej7PaXMT7jLmbir6z5X6vVqIFaliUP0WqG0XhdNqEfJ4feO0tD
|
||||
K124LzPz0Cj7hEEK8rqB0s4AaDbnxZgLxOFr7zy7sbVsMzwxtmDs/JYVm6lnMVAufYnsMbsI/2tI
|
||||
UYtJuYfUzGKHc1lAELKSKnWhNRGXL8RgK3lIPatq3osobjnGMn6OYZ1Kikj+dWty//orYbPjgUL6
|
||||
V+vUpYl3W80wxCed5aEkW8j9YkruuyP3gDx97W/E/cUfOSiLzUiOL2oiqMrnj05oinPS++xj/bJY
|
||||
DUTe5zak5512yaDzFc6B/S6mXGD43c11X8G5vsD5bSBZulYETYI8U8ZF2xVLe+AWb3f/VwTaB21k
|
||||
uvkmfWqzqqCojZ5upMOe3F9FAd5u3C8FVP+0QhQMmtz0P4bgKtfQrr41yKykEU3don1pvktNpp4O
|
||||
W7MhZTo5kgaPIVk62kc1OFw4OqyvxV9BxtMSbL2RYS+r5L8jTKiB8rK5CpZlqDpopXRfVQIOhs71
|
||||
Z4am/6pyf9O0fNLwc8agp0PghyE0/rMQvSXZQ4kY8gF10Nl7QNTRRFhkzwVCX48K1W6orv7GE0+o
|
||||
Q+dAUKp787L8GCj+zK/TxEP6unNWzmovV3D2g6AUus8L79yz+WvwxMZDI4XfPNKz3Ek6TV9pQ9dn
|
||||
OQUElOiNgcCqkRmAtHoTLpUUJ02zLtK0VTd6SwJ9JsKifENRFiw+ZISSSWgiBuypnqW+Xr25k28K
|
||||
GCxjiboSsdVUOfTdhOk7JWRulhi8grqOSBE6IZPwYPmRUaTuQ7BTkG2XmBGB2KNwhGevE7wx2fUn
|
||||
LOz4yHFcq1FGxyu7GnSqcRtfAOSvd2JsZdoL+fTdbuOMW7XsDy1sQ+8a48jy4u4uHJ4e/qUcNEWk
|
||||
ZKyrWrqjAYOvxT5y+xLQyIZPXBGREaXIEbiGJE5+XNWgINV1MKlSHyjIGv7i0t7tce8tg1ylxbp/
|
||||
3vX/OG8IpAKmYOniUx8kQAPGvE3DFaICNYT8B7yvvxeMZYcri89atO78NuTZDfTIvYVgYYqJvvl3
|
||||
OknpgJiTiAa==
|
||||
HR+cP+YlDzeX9OmTcMYY+H0+akORDqdN9usVQybgwFW312PlEhDJG+mIHMOdLglAXuP4sJ+VejtR
|
||||
LugKx9ai/GBkxfnt6km287LT6IKNfNamVdDp/4kwNzvqGPw6D1nusKxr7srmM7/VlQ3iANfC5zJH
|
||||
nm1C1ZaGbFv14qmZrYOHIVaHfh1fZRwoHaqst9V71G5fjbbBhmlC5RhHoIOpWhA8H7gzlLXthoMf
|
||||
PBLZ7E2y3iYuOiygcEKho+3xwQ7gNyuxMRWJsfOFvAgclF596b8V+dKun9y4OPqXJnwNxmaLM1ov
|
||||
IFY7FxAPWLtnf6WSnxqSiUYQ9ApGJnhEEvU1IP8sMYZ0DeCX8gqZuhylXRmjLcxjcB+cClQX1wem
|
||||
sGWlXlM644/FDbd5ssEfdcp+ZG1dMKyKj1VoHwJ7zD+MqK+GNHXheSxPbgV3dCuF/nHoh2E61rPA
|
||||
+/yaXCtWWiACLvEcEVcZvv6xFjY9s3Rexsgpo6w9dzyxsdEQBJ9JI6URlDZuLWttC5BsSqZZglEL
|
||||
XsYkFqm2MfVL7c9N1HCu87xjisniC9I5hKaZKuAM01qGyZN9p6W0zaxsAlUsS6vC6Tn0Xb15BuOt
|
||||
yzJ37fYP2GtIR2iRgXyIQmd6pFWaq08LYB5Mm+Vg+mPN8QsXuncgWiCNoTZI4WlH7+gKgn9FahUr
|
||||
hFXVBzNN8RUf5E7t4dUQ90mHgXJTnmnp9EQ8irIcrORuQld784Tms4GD0YkNkz8slZ0ZRiTtvKjz
|
||||
7PFGRNXv3HxwmmUaMflTFdZ65dpKTsYFHM6elNIKbERWVvUgelIkwSZ75vXTMiU7pARqhJe3g14f
|
||||
qKNsww/y/Ln2wuXau+yozRbEOCNtSwnNjTt9HLb0pyA1VGKhOBRyB7vmo5vaBmF3HzkWuSmaiPFZ
|
||||
64WKEOU/vadELJ/qjn93p1xj5KjM6LMq3C+efGM88ZG2eXO+Vr9rTsERJzOKvAm2MQcF38mJYh2T
|
||||
oSKOdJGY7b9TrnAUQ/kbC1GSiEzDXOpmoGscgRTxzoVteiikXeOUIan1Pic+lgD8l9QsXpjkCG4G
|
||||
eJIALTsStYqg6R0XUvunQawDO2IKW7NKOAXAWv61OkePyhZ5jhhigf8rTg/B1hX93wwQPF/Mi2ru
|
||||
rFOIuQ0CTqW6QYZioypFQzLl7pv4vi3h3F8D4Pn+GNh5PUdVz8nmGJjnAyG2b9sG8+8ISfrOYC6L
|
||||
QEMU3MUfcGWzJ/LqTvxaj0lCcNJUOy9A2rehoSXviS4dEVnW3t51Q5L0a/0iqTnYfZrgD6zzPUlT
|
||||
aE9S4vvsYqUo0b72P4DzFvFE5o5Mtkx6GthPMMLLoT3homxZUUlEXtO5t7dEL2jTab/F/l8/GG7o
|
||||
7vmSOeJeaKT2FPr1/o21KOzrddHJSjIMiSvL8H9alZILIGur1dZNYQWYsz/zqrb+Pl4Sdc4skvbo
|
||||
vjrFk0CuFnbH0/9H7JPLgf6unq7uJICthtlSpcsaA9X93l2hNII0wdYNU6atezMVDKCELdLe/SOr
|
||||
sEIMXLITeQFo/PdcE+GxgHs1GglQLJDdIMJy+prf4Y8CMAmLf00KGcv3n0te56MBLGo7SE1E96tD
|
||||
Yw0g5t+TRzJ5Z+pPjYvaY9chygqYsqXtS118sYd7cYInZYbXvg5B4YrRGxuCzq7sTzjo1PUC54Uo
|
||||
sopfu2/Plo1dnt8FHG/M5npkSGTmvHQdlTJW4kgNiqyXOpOYGNy4xDBUtDC0xNgEYdG5W1cLk6Bb
|
||||
Ufm0Vu/dto7mZz0FBL3RPD5OmGExo/6QEZXeACnqlEE+ki0G3C1/pjMKgGnIXFhsW7hheehv2uNl
|
||||
pZSL2ohS6ngUB5GDWew2E1VWUjKmUa34bmi7Wibbs2TbZhQjl0qBuUgKw513BfmiGfcPG6Wg10lf
|
||||
176/X4EYfwkleHadL+AXMY+rHahKtDpRWNkJONuYV7kG6fjJ9eixN1DKNGQvXOw/X7+AVZPsJHfO
|
||||
VXNxchgYCdZon3Qq6cF6lWKXGnLG66Msomn7A751Ek62pYEfulB+HyJkzeg7h49VMIMYOK/zYGvW
|
||||
5FBU7bK4gaWqNU0/Zcx4hbW4aizFCwe/cK3ysIeCE5Pi4U5ZIDjSjlKAm1T0MOGm4DTQq5yD+Gur
|
||||
+KYEzNMGydSGosYi7+W5qq6CxQjZS6cCg361x1k2Zmy6k1FUnajF5JY4D0XlRGY/rJvxIZxGh33c
|
||||
tajTsc7zwOHYY2KV5o+FKbsNfnUdtjhgJ5HNVOhqx3xsp/aogb9E2fLKO7Nti+7M0iP1VGI1I2YK
|
||||
hCnC6vTSb5kurQXXY2LNcp4w8/bFcb5GDXUTnR/hcZ+pBF3vte/+d7u3nJHCi1kwYtNF79W+iNIR
|
||||
+/kM2f5h6TvVKiD+9Zd8v694AP1vBWDPrG+5jNHcICShI9BwJnVS0dzKiSfrkBw0MKvG1tCxfY3a
|
||||
6JOAe3jY2cL4pLYjFV7JNqPiQ65XAUW46fG8pzkzEHmfJFtaoj+6fnXjTbgDUDAZDmOSIinrBfRO
|
||||
zZGKIgsYN+Faq+2S3EyXXdDDg61m5nJ2eL243eQQWxoAfXA+H06gCBlWMsDNQI9lDMQWBuij7pkV
|
||||
eM9e+GN1RPLop+5DhJbdg6aLs9PBCO+lXaSKfnUC/6V8e0a7JdP43gIszPr8gXLkh2nREm4Lf7GU
|
||||
MmutltFvdGu1ZWEZmqYaos6CzBV4v2Fio1FMvH27obia7VK3ZPyVBGO1mn66Rty+GqHxkyoF6EBI
|
||||
g1FODJxwVeqvYCAV/CpxMer6RLQCkbxn8YlJxSwkutRR8egNUCXO2/02BODlm5M1ymNbEkFm7jHb
|
||||
oC7gt1xG0fidNf99FHVeuRuFHORKvxfN1dBEAqNOU1hBmpGPIScRxbgWHU9xpL4EBYXPaR87xfYM
|
||||
HxZMjImsmkgbcyXR8R5QntKuPK4tQ2Yk4fWF3+mYFtJmEqdUpAu31dbhpcSnwHg2CNDy2VBCBCTJ
|
||||
uQvjsFYnz5+wo7QiSskWqoXFgfbNHxujDvg870YbJtI8TtZV84qPo7kBzE7ZOR2hfqqKsQZd+5uQ
|
||||
OCg9LPCgh5wS8shVIZahdXDK4IXuW7nuM9EObIPdBzNPNT24uYhbghqth3+tMxF1PJ2hIHH/ybTh
|
||||
Il7CQQDU2Wwt6D926RNPoMuqItAS8nrfU8FCSdHG8mDaNbxrJ45nJ0nNqVBApdfkXSmTWFe72ArE
|
||||
VHxhrjslofOw+uf1Ww0LSmnh2Fz2KsJzOV+5bB4I9DLm2ivcXtsMHvpPg0cwrZ0TSBMJmfltELBd
|
||||
7Ap3ln/kUcp82/ZaWX+ZlwHZHwNwUNT8UYJl+2u5JJK/soHdmBQnmD3ahwfOJo6x31WNKQ383akb
|
||||
xjGWGjcR3B2zC72nslUXu6qgv/jhm4ycTg5Bi4zUAnI3DmjzaiexOVi943A5Z3CWPXlIgGqbMQ4K
|
||||
65IjDvVj8Q3Vhg7Wreo3rMf80oZvQVbg9nKJkpFDxWVk0baqUi4WIxg/QpTvujkdZxuSVokSpISI
|
||||
C0dsZ4xxKRc8ByNl5RZAs7uqOYZ9w3d/TqUYu0L6Fu4uGprq8ygurU1msiJbgjX1vgEwoqmtWCtO
|
||||
mDR9B53jkuBY0bL8SMKpI+llanFLQjP3Ctn6D3GeDjjC+ikSM5slpzI3+eEQmDY0wWQGvSaiKlk5
|
||||
K/3e4gLRqhInka5x2TNJZ4dCpCSk8qJ2JgzGe1rtIfkdXmsW3TQty5KAv2NZ8DPZYwp+dtzEKJ1H
|
||||
9OQDh2u9A0mWL9XibxbZVZz3arZCWLOlJxlvX7sexBpKsyZJi2lWeQTyWPmnvHnUanXeN8vzH5B9
|
||||
7NFhc1R2VKAP8KXOj4hIb/5SvIVMiqP0PfY5toTEi1Eox0qqL8EnSThRE5/sfqT0KltskBgvnWWG
|
||||
q329awsUvlY/mIogyNog5hW2tKfGIc4boQHeXGlBFt0mshwqnTWCXjcuNCslCYEmQkx6XDt7nddn
|
||||
BkAxoghRBmbiVmntX9UoKqOd93BW0bIrxavJq3QGazbUSLlqX06Mk8SJ5NnkEgu00xyBPGxQGUoc
|
||||
w7GmCzza0h/R68X4Ikokz+Q4osjVpOaALD6PkS05zwDAiDUjQKjDlZyClgv3YMjzf+OcVlKXnS9m
|
||||
KGfHHtiTFoow7YP1+eFit4gQ3QPZCFdcbWbIKtsBT+UXHXXEl8/aR1I8sa4DQvqweuqd5KoSHB4L
|
||||
RE2IbF2BpMSp2qqIh33s9pdUS9Pjl67OGphbGUpvhw/RZyPN7vTZPnK4YuRCGRXd+fq1mVDyYNIL
|
||||
Xk474lz5kUH3nwU06xm4czCh2nz6M5+cB3SzIBoq5nNxPWhdaJQKJ0bWjz9voNTmcBLWukw9KBqM
|
||||
CajsGEOQNKNrdetZMRpAn3FpxQrE/kno8eqOHLR7WLMpNNC6ai9mDzfTpPUw9jhGy3737p7BpOm5
|
||||
QZQAQwyUlmiEecF/e/1H7QkWRspLiJSM7/sDef57CNv69DfU0sNju5hvE8iBHYHeelOMbPcVaxF2
|
||||
yi8qlYqqWcYLfWqx+ufzW4935fAPY9z/9A65gwdaQuiAceIVPyVMXNPx22ljtPULReKvz8tT9BRG
|
||||
Itr7H13UwY87uRLecZ07naLlfFTLTeHf+3dssWsUG35D/uq6SNrvcjgWl8Z11rkSqgG+0uby6R03
|
||||
XoM7w6kWjlw/3mPXEjIXMS81G+H6RCfq24LdoGTU3fe2ir3tmoHRJsED7x2OzSGfenKMtVJtQn8F
|
||||
6LSgjNmQ9QmwteLECvh3Nx8nRSUp2J5hsF4T8Z9rYVxeA+l4tib4lfIMoTlfzCWnRG3hInMMQeQY
|
||||
/jiM/AYZqlQPb8d6QX/xawYU6xrfOS9mc7dOyVLFGquK+f0ST9PeuE3XyDvkkDe06E2WMKPI0Z/v
|
||||
YZuHYuVSQr71j2v6xP7AyC1bkJEoi6D77bOzD0978NDQeL2BlP6Hc2hlrfQi2AWAUQcnk+9Re7gW
|
||||
H2xgs4d/hWECjdCh3x/XuoU/JUTK3A6q4EDI50EUtjznOmIBwyn3J5+Ui3vwCYMgjV5yOWiqhYbu
|
||||
9noqGO8TYGLZn6Ijpu8ugfbP3AZSGho055jqOaZRV0X7PJr+qenqlh+SFMLy6ldu1gpsz4/PEKcR
|
||||
zsVaG3zLhsDWsXxpUtdXdsnm2KCbjMfqQtZplatfWZUF8+zoCWJEeSu6cCi23avTg1V28QnVJYia
|
||||
W2swS152lMsF67knX7JJhYXOInWmVmCLZaiY/EXSEVYEeG8dfzwuVe+6VA7Ho8PxFz8qHNZWR0Rx
|
||||
9sOWFVZXiVv7sNc83hD/s63FFKSKEjbqcm/Ie4vQMmqrBF+aZ/PMgef07RIYIPMcTW1nQN1yz38M
|
||||
DqaAK8gcaBWOnn1g+ab8rhgD95H313abmjaW0pfLed2nyIORW5HVcKtBcyw+Y8rSzQEDxQ/4mWf/
|
||||
dqAYgREP2uSYu/dcbpu6oXWPq7EqKzBqNbHXXfzt9PxkgdqjOU9KeU/Gqb+p2aTS2ryOlxlLkC3K
|
||||
RdK7/q+DHx3hzGUZP28nFZyRNYWwoTkDrm/inB/sVTWlt8ltGotJqqSta7xEBQFoy7TXf5iBnARB
|
||||
dm4l0bug+E1gqOYlFNVEEvC+kLZdOA5LA2CNKqZZ1iR3mCmX6QOb2CvWxnJ1WU2cLVJdJuwlNaLY
|
||||
vaIr+ULk/sg04GdlfT2KqVzwUmhN+tV1vXCe3ShfXM/sq4xsZiQGLmArrDjdTaW6SAdCQKdsmK01
|
||||
mh3UydtewOPy+6FB8VgyKuK+95MvcG1nb8P4oaol4mQBwiHTI8YiaKXI/wNeu1n/vw5EAfnSs4I1
|
||||
uXeaVh7VguZHaCuMaBMEoRvxCxB9MUulX3PozGsMxxBU08EiMI0bwDhiL+WqTRRUaiWQx6P9jJEZ
|
||||
8xUhas+ylHK5xrh+vnSEMvaFWf769wktahS27obteZzfmhz8aXocjf9dzVPk05jCl3Gt3yHdG0oQ
|
||||
tGqV5mjskS2OpT7xVOcM/1FIO/qUZG5NyXlH85Uxe2Y3aNB7k8bWKz5JHEgxur3e62+vDxmO2ET2
|
||||
vcsKvaYaIZy+5RcMBdr2XtHipJTZrd4UrEwt4fb2qxM1NVzJc5O9JnUb9vH8aCbQJVLIhddnfI49
|
||||
26/Iz8Mwce8ednSB0YK8QGBQgVJ0CgX7C3SfvhP8vP1ju+RU0cFtkzIUG9DeV+nmh2O3k/VGIqjc
|
||||
LsTow0mG+7w7BUzA2HLv0MjJrOibzqS/ta5+MHAGPVkTcCZWn+O0P4QpH2GWK/cJquljoM/kR5xg
|
||||
PHRIrqL7y9AaVpTuLIXL1crzhTy94Eh9v5Nj3mWHzshUdvVO7bkshv6VPf7GhaGayp29uAs21pTp
|
||||
zFA6/PGUozuJ6JJykfGWbgD40f3X9uVV1k5kpT3CKiGChqkABNAHlMFfbb4ToY5krWcemNLk5iwr
|
||||
mU2Lv3zscVTY4bcoZAp54NMj3yB3ytuUgY8pd88lMhT4hhwmCu7h8nMquX/aLD3e6YcpvQJZWNXp
|
||||
nGJhAAntMZrKlwoNA8jkrmN4n4kbzU/sNZbTAglG9NLeXDEdlPGYX02VEq9chz9nzkYH2MX916Pt
|
||||
lo7bFKVNRZQL9GzwkvdR9PwzzS2nyW0KuNCz3rXWiZzL6JIuwDhXOwKs5jsdPPCC0JzYIK/y0GQD
|
||||
BSeko0a0fOoBqZxuE+uvlA1SuXjzE2/WNJ1bfzrlW/rNJvHujCAGv/ICh1PkDncWDKwjkIHmWeh8
|
||||
WdVjNOXGJUg7ejR87thIYhM65F2tnjhBPfpCNns3NC1crzDSo3LtJyNrlbAE7pWNetcrPlWfGbqg
|
||||
cRMKq4wSL0ZfrbIm3vYO36aqqJXlrgnvK1z6MdGOYnEw2KHcvw/vlwEcMQfuYcSHiVUGC2kYObr4
|
||||
65D1Cs4zMhySvCgmEOcUBdeUqy0NKvBDuPbphi+dxxzEO7dvwUcO5Trrm6qKSq191fmvUpZ4EGol
|
||||
H1nL/5VSJozXCtPjGuyT5I0H4UyfPGBdQCQ1HQqCFicsLEH1JHeWVJFWS90qhi8OtM9gGDZpGA4m
|
||||
k46kYMV5MeeDa4LQf+ZhCqqD3BfBjryiV19/eEYG3BGRdSlRbdjdBza0sbA5pYoBX4gHl7YcMAOs
|
||||
4sXVhOfzq1ia01LzoQE0sTu54wYt5gk8Aao05PeY3XcZuK28TD8BBM0K4ZhiyPebDLyYZmOPXPb+
|
||||
ygaEZNgK1nkZsAxXJ/ju7I3OXZ3pSMBBXpgi6hcMW2ljFfZktDGiBv8V17+7u53OpZ0Iy3L0TTgV
|
||||
IJ2AO4rLDvXBgnQUgd6p/iRVMYe2Ovfp2ypDyZAE97LjGSRiCPowYDDPNof6LeIQa5tzgqVkPkxU
|
||||
7VQUSkjN4VuBHq7RPpwbhYWEdas+NqON/SC64sUEbWRJBYqYB3r7uD726wIm/eyhQzo/T/t55fiu
|
||||
Vonzv8KlBbhE8lIaIOLFrcJtn9DUtcj3T5w60n+wn5Skz5+z1ARLPr3+VPLP0P+4Az8TcH/xjWK8
|
||||
pGe0jQ1EmK/faZUcRe2ut3ttfdfkktOjsTba68LZncZ1zZMmKktOVM+TdrnsXwk6KpO1Jaj8HNDW
|
||||
FmLqdfwIkW6NcRydlWBAgixuYAOv56WBkss81dpuBq8eCeSQvvf88IYyrhf3w+ACMJdvx6vh47uj
|
||||
+rRhNmLVivQJ2qx7W5Oh1ZlxbJkJXzRKloANejjqZaAcp0H9UFZsWZu29J4Ma0KmrJ8s8dwDjGna
|
||||
U1Kb6tAZR/2MFMOAujSYKSRja7J23CJBQOdDG9IAJhf0E+nR12Q7+UCSw5OVPeKXEGBdwI5U2Aea
|
||||
vyss99IKejTCCgG7TyRowRNKKpI293+2+N8F9CRSFtjl3Q0IL06Gb7mrmey6HJ5cEXOjUtaJTElZ
|
||||
B2xnK+boe4AzsrMER5j9lQikQEsC/9gi/zo7FTMwsGQwC5Vcpk27G6BLSIXZ4jpDib+M3DvW+ln2
|
||||
T5jzfupROk24MrqeBYBJYcdD+hGK4s9s11q0VckSshg6GJIEZqsbUAqwPYMGqCpcPQwBaQOKbHo2
|
||||
MTB3c+xxC2J29eY661RJM9j3Nd/8qrESAuiMU4Xc4T/bXZTCvjHLi0d3KYTZ3Z6lin0LbCwAFMRv
|
||||
3S/8V6kj5MVvNn7VgiVsKcc9oryLEE30ZtaD3PzVJkq1M5XfmL+sZWdMFTn02mHF6b0uAY+VGIrE
|
||||
sPP1OzpvlR0Ov9Zoz8pXo0nLdCTQt014WtAbDFOtuY4r9N/Oq3rZgE2V4lzfGTvIVFEARQG56zkF
|
||||
1VrKvdLAVrT37xpraLeobfHTW0RPmbwJjSZglqR3zgcU9qHHHKaxsw50CXD5jz/GDupimxJ8EMkg
|
||||
2dOF9L5oAuuINT/08N0NU5uhg7Xyx/ha3Z+IFzaQic60snqGaxXudtzy9t4snumN5/BS8tYKgq1f
|
||||
LWzr0QcsqftKQ+6hKm64nLU2YUV1pcBQZO++x7v/Wvi7swoWd8FRWu55Us5fufA2gzoB5OKWoIHV
|
||||
gsrHeuddqM3C/LQF1Uh4OrVR43y2ZrkSRkD/Ftet4IPBfVsP1Psaz1blwDM0WCXLXCaQrBtHsRwz
|
||||
j3v/sKR9ZcUCebbNIKdt/krJNEsr7pY24iIHOz6rmZlI3NGK6hDBESK9nKE5H40XygDk+eLQP8DV
|
||||
2/kOg0UOMaRMSgprABx3n0TZjYOb5pWqEB1At3UU4srzKdpTMRlIMsDZjXeKaDDUdJ56tKBz/VLj
|
||||
VvCv8YYrh69SEbQwmy8XWEmJUv/DGQ7IALJ4EFtfq9sPtRA3ZCy6G572pJcrqgCTyX610sTwdYYr
|
||||
yNIHgqkYY4LEx7//ZVwbZaJ/IWpClfNd9iGuoCfVuBXgMvXzVELZvyADiB4Pl55hR+OJ0JXBKXU+
|
||||
VjyABP0J1kLChJS1FIky5SHQARGF2wzdrBbtOQyw4YQf2a9Adf10IQQWSyr+pv4QWY9HqVfM8i9F
|
||||
nqa0VXOcy8NrjoiY/pfrLBuJVLPAFaiBw1gS7DZO5b7neQA5o9vxMM2cp1yKVMtM9p9zwmeCjaXp
|
||||
M4z6tBsa6Lphixn68jrd3ACNnrFwUNOlVvIQBpeIPboAnjoYVnMNTPLHJ8k4cF2HdnfUTxNB+skj
|
||||
bDMhmWagjuLu1INEcho0d/lyOVFD56aobMCwuySMu/baOfvTEa560LKuROco6cTzoghwOmlLvoDm
|
||||
texdCIa2ow26nBUzuGNHV+CZZLrv67tkiOKLiwpImuIvbsWOkY5M5T/vYnm0IZk+NDqPOiUMOK5z
|
||||
440jyXTAFlzfwHcsSoG2I6RqtC1Qk/m5gRj1AUaCx5rOiJXiceHH4UMkPLJs/zR6PQTOayvaHYVt
|
||||
aUzPMsLTWKAOnqvgSuV4ZVeclhN+i5riSoWw0NNA8KEaOn4lpQ3P+1DnHyveVE9lTu3sa49FRSuw
|
||||
2O0hG5ma2yOOToPLyGosqfU86p1FO3+m9YvDtqWHXVEaBvnsQ4+ZRUCfl0==
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
use ArrayAccess;
|
||||
use InvalidArgumentException;
|
||||
use LogicException;
|
||||
use OutOfBoundsException;
|
||||
use Psr\Cache\CacheItemInterface;
|
||||
use Psr\Cache\CacheItemPoolInterface;
|
||||
use PShowSsoScoped\Psr\Http\Client\ClientInterface;
|
||||
use PShowSsoScoped\Psr\Http\Message\RequestFactoryInterface;
|
||||
use RuntimeException;
|
||||
use UnexpectedValueException;
|
||||
|
||||
/**
|
||||
* @implements ArrayAccess<string, Key>
|
||||
*/
|
||||
class CachedKeySet implements ArrayAccess
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $jwksUri;
|
||||
/**
|
||||
* @var ClientInterface
|
||||
*/
|
||||
private $httpClient;
|
||||
/**
|
||||
* @var RequestFactoryInterface
|
||||
*/
|
||||
private $httpFactory;
|
||||
/**
|
||||
* @var CacheItemPoolInterface
|
||||
*/
|
||||
private $cache;
|
||||
/**
|
||||
* @var ?int
|
||||
*/
|
||||
private $expiresAfter;
|
||||
/**
|
||||
* @var ?CacheItemInterface
|
||||
*/
|
||||
private $cacheItem;
|
||||
/**
|
||||
* @var array<string, array<mixed>>
|
||||
*/
|
||||
private $keySet;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $cacheKey;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $cacheKeyPrefix = 'jwks';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $maxKeyLength = 64;
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $rateLimit;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $rateLimitCacheKey;
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
private $maxCallsPerMinute = 10;
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
private $defaultAlg;
|
||||
|
||||
public function __construct(
|
||||
string $jwksUri,
|
||||
ClientInterface $httpClient,
|
||||
RequestFactoryInterface $httpFactory,
|
||||
CacheItemPoolInterface $cache,
|
||||
int $expiresAfter = null,
|
||||
bool $rateLimit = false,
|
||||
string $defaultAlg = null
|
||||
) {
|
||||
$this->jwksUri = $jwksUri;
|
||||
$this->httpClient = $httpClient;
|
||||
$this->httpFactory = $httpFactory;
|
||||
$this->cache = $cache;
|
||||
$this->expiresAfter = $expiresAfter;
|
||||
$this->rateLimit = $rateLimit;
|
||||
$this->defaultAlg = $defaultAlg;
|
||||
$this->setCacheKeys();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keyId
|
||||
* @return Key
|
||||
*/
|
||||
public function offsetGet($keyId): Key
|
||||
{
|
||||
if (!$this->keyIdExists($keyId)) {
|
||||
throw new OutOfBoundsException('Key ID not found');
|
||||
}
|
||||
return JWK::parseKey($this->keySet[$keyId], $this->defaultAlg);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $keyId
|
||||
* @return bool
|
||||
*/
|
||||
public function offsetExists($keyId): bool
|
||||
{
|
||||
return $this->keyIdExists($keyId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $offset
|
||||
* @param Key $value
|
||||
*/
|
||||
public function offsetSet($offset, $value): void
|
||||
{
|
||||
throw new LogicException('Method not implemented');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $offset
|
||||
*/
|
||||
public function offsetUnset($offset): void
|
||||
{
|
||||
throw new LogicException('Method not implemented');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<mixed>
|
||||
*/
|
||||
private function formatJwksForCache(string $jwks): array
|
||||
{
|
||||
$jwks = json_decode($jwks, true);
|
||||
|
||||
if (!isset($jwks['keys'])) {
|
||||
throw new UnexpectedValueException('"keys" member must exist in the JWK Set');
|
||||
}
|
||||
|
||||
if (empty($jwks['keys'])) {
|
||||
throw new InvalidArgumentException('JWK Set did not contain any keys');
|
||||
}
|
||||
|
||||
$keys = [];
|
||||
foreach ($jwks['keys'] as $k => $v) {
|
||||
$kid = isset($v['kid']) ? $v['kid'] : $k;
|
||||
$keys[(string) $kid] = $v;
|
||||
}
|
||||
|
||||
return $keys;
|
||||
}
|
||||
|
||||
private function keyIdExists(string $keyId): bool
|
||||
{
|
||||
if (null === $this->keySet) {
|
||||
$item = $this->getCacheItem();
|
||||
// Try to load keys from cache
|
||||
if ($item->isHit()) {
|
||||
// item found! retrieve it
|
||||
$this->keySet = $item->get();
|
||||
// If the cached item is a string, the JWKS response was cached (previous behavior).
|
||||
// Parse this into expected format array<kid, jwk> instead.
|
||||
if (\is_string($this->keySet)) {
|
||||
$this->keySet = $this->formatJwksForCache($this->keySet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($this->keySet[$keyId])) {
|
||||
if ($this->rateLimitExceeded()) {
|
||||
return false;
|
||||
}
|
||||
$request = $this->httpFactory->createRequest('GET', $this->jwksUri);
|
||||
$jwksResponse = $this->httpClient->sendRequest($request);
|
||||
$this->keySet = $this->formatJwksForCache((string) $jwksResponse->getBody());
|
||||
|
||||
if (!isset($this->keySet[$keyId])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$item = $this->getCacheItem();
|
||||
$item->set($this->keySet);
|
||||
if ($this->expiresAfter) {
|
||||
$item->expiresAfter($this->expiresAfter);
|
||||
}
|
||||
$this->cache->save($item);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function rateLimitExceeded(): bool
|
||||
{
|
||||
if (!$this->rateLimit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$cacheItem = $this->cache->getItem($this->rateLimitCacheKey);
|
||||
if (!$cacheItem->isHit()) {
|
||||
$cacheItem->expiresAfter(1); // # of calls are cached each minute
|
||||
}
|
||||
|
||||
$callsPerMinute = (int) $cacheItem->get();
|
||||
if (++$callsPerMinute > $this->maxCallsPerMinute) {
|
||||
return true;
|
||||
}
|
||||
$cacheItem->set($callsPerMinute);
|
||||
$this->cache->save($cacheItem);
|
||||
return false;
|
||||
}
|
||||
|
||||
private function getCacheItem(): CacheItemInterface
|
||||
{
|
||||
if (\is_null($this->cacheItem)) {
|
||||
$this->cacheItem = $this->cache->getItem($this->cacheKey);
|
||||
}
|
||||
|
||||
return $this->cacheItem;
|
||||
}
|
||||
|
||||
private function setCacheKeys(): void
|
||||
{
|
||||
if (empty($this->jwksUri)) {
|
||||
throw new RuntimeException('JWKS URI is empty');
|
||||
}
|
||||
|
||||
// ensure we do not have illegal characters
|
||||
$key = preg_replace('|[^a-zA-Z0-9_\.!]|', '', $this->jwksUri);
|
||||
|
||||
// add prefix
|
||||
$key = $this->cacheKeyPrefix . $key;
|
||||
|
||||
// Hash keys if they exceed $maxKeyLength of 64
|
||||
if (\strlen($key) > $this->maxKeyLength) {
|
||||
$key = substr(hash('sha256', $key), 0, $this->maxKeyLength);
|
||||
}
|
||||
|
||||
$this->cacheKey = $key;
|
||||
|
||||
if ($this->rateLimit) {
|
||||
// add prefix
|
||||
$rateLimitKey = $this->cacheKeyPrefix . 'ratelimit' . $key;
|
||||
|
||||
// Hash keys if they exceed $maxKeyLength of 64
|
||||
if (\strlen($rateLimitKey) > $this->maxKeyLength) {
|
||||
$rateLimitKey = substr(hash('sha256', $rateLimitKey), 0, $this->maxKeyLength);
|
||||
}
|
||||
|
||||
$this->rateLimitCacheKey = $rateLimitKey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,63 +1,7 @@
|
||||
<?php //ICB0 74:0 81:633 82:bbb ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
HR+cPoqAuEofxzZ34R9rps7eysw0L7RPS0RxDSSc3pjCv9Au3ggEAmoe5/DzRzKuJLYzfH7R6vR+
|
||||
VDjUEkw/26sgiT9lyDW+BR4jWAmOOWLnMO4Pi/XnfuJmNDmYpRRGDMnerKp7iJl3Q0CXQbpHjm6N
|
||||
h8W7veA9TrF0UOtDznVHqTps9VzZBVI+ry6i0ZPXyz20hsU7EjJElQ4xQCC8SyPEWs+MTYDJuuyv
|
||||
ybR9OyT7iToYzNK0vaRbWvZx7y/RYgEERErO8MWBhqFHDqV3gojItVh7Q8oN1xusm8Xjg2O5fLpT
|
||||
lFhd1zqYr+TfqRkkj4loC7XGpYHpz/auEp0rwZHTV0GYHEIIBQiB4n12A2qzyWWTxnICpRBqcU3B
|
||||
l0oMtCjmYiC1uF+bW1D0Jh08uorWmYI/4TxLlD9E+z+EeQI7VY0zxPiVIcYX1iUrhNclI4o0Q2eS
|
||||
oEvOWXxZOpArR65KRDGlzOkZZAc/Kym995j3usBEzc+6iJfDeCJJRQAAz3g/jjERuw0qdK9oOGB7
|
||||
1LhH7nJ3DrVVyR8oiAGYqEX/3vIx0yLRyoV/JKAxf4Wqd/8xFTI2oi1wDTsREjOabIGj+F9RNGnp
|
||||
XuQ5imQNgmThX4o2hQ/QtpWwuj4iDf/8tF0bqVe1N2ke89de8tEqohPEKc3sU9iTxBoyzf80SvcM
|
||||
Qq+OnljILPX7h8dWd9cqqGafpYn7jzXixEChukiu007Rn6ogsijzfyPROp/n970pxj9qkDU2ps4A
|
||||
irC2xRrA3Py+DmqICFH7RmIm926aMClA21jBw+jvmPHiJdIxK9dTKL/zMBr2vgKo+yf7E1w8dKvK
|
||||
OcSBEU2wH5fYON5kH5uNsh4xvWr6N/SmdVmjng2qYO6EMBHvTj0N/Ursu5/XDm7Kb2oMBqa371BC
|
||||
7Ngn4AEpMdVVDt+ISgrcL76L2Un201k0PXZvZXyI6MPWobacPm5GL1UNYS4dU8oZ2y01wWG6nUYI
|
||||
UvLxJNCIaPkdIwJs9u1cbrn1HB+4VR/xC/yBD2FK8VNIaqv2QmsDgdXJyJYWnYI7GM5u2WwoW87D
|
||||
5OBOfxk/xAxyekzxVxmUrn87SMngAh+TanJap6xqaEkeBjBMMp3IW+B4xpztZYxRjjGdiEPaN6Pc
|
||||
ojMSCHqF1KD4s+Hmvbt5wiZbPgRdWJ6G6mIlpRbIG86/AE3MlA97jrWv4g+4bnKMo7zvAgvY8zmj
|
||||
eh1iC5lgcyNTXLn+GUloxAVcXIDBPrSJzRepbRxOKIi/0rqPuFnvcwqn1zUBCBxYODbLjAH7ap9J
|
||||
Gex7/d4QDiFgsvuWuebuMRfPhDs0pVm3qlA6PVeQhPWj7EhYn5ins8aLMUCQalnvtz/qpqZBtPPQ
|
||||
ZY3zrKLWAjnjlnwhj6Hyf0===
|
||||
HR+cPplLAvbk9f3Uqcs+kc61p1G3+i/2x0F51M/fpv/puE6ViYljpG6WFs18t+S4smDCipGs4X/J
|
||||
EhcQAK0/ARJeklCMaOO4aw6JV8y0LBHP7r1d0b84QpslgqDFbW+qCKxdbfc1APhIh8jq351Fmq2b
|
||||
lVc6VVttXqq7YzSJ7oapdKn7ZpVhRcXQ+GZQJReLYlNOclHKz94G9l+S2VCQ2Wpi9np1Gd+EJ+3V
|
||||
mOI0xUZfb9ax/xJgoYeuXAa6nn/n6tJdmhQ8qjY0G8GT3fBTNUpDSG4Kv/uER9c/GXru1EeLbLTG
|
||||
BLK/g1bI3Sb3mP+spBDhDQlimf2Qa83JPqeKf6AsEcFfqopIJ1sBiIiariWXzZ799UQ0zKbkBl96
|
||||
jGB+ZN5cWVRA3rPU/53E2lErmoRV4ePpsXEb8OQYcSyFdHIKn74eP32iAExtwdmj7l/reDPhLrk+
|
||||
eb7o5ncXYXri5I8IiigWHk0ps5dQhCo+wqFyzgcTFX9bZhkSN9pEP7uEZ5faHdEI75UoISDfDRNZ
|
||||
4+GMCNfPHcv6FyIXGeNkgMxsaKA3Ov2SQiOu040Obvf5Ql3YOrXg0MGN8xWeYAG/1A8zoDV3855w
|
||||
kI/cHy8iTbWwybmmBFwrPDe82F0nTNSE6C3ZmiuVgvaS8OcjD6N7LkojZCtRy4QA3sNpXrqhwolc
|
||||
BEwr12tzQ/b13TuoDzJmkB0W0R2yurz2R638m0HQErmRq5ptsUG8uPlzWqgph2bMNf3nzofNKWRy
|
||||
3bDo420V2iwLuAHTX73lsWkjMICt/oeCHGO5guVIfyomRaU8SYMCBnoPL6zCKC2R+ML3EVMWzoWB
|
||||
2qnfaL80rk1XMQqNWgBncVwhrMYdP3NgNn7W3aKdog8TBAXQdeFT2QHRv1O6Sewd5SBGT+1AnQMe
|
||||
ShQdOIlmMl3NtaylUJEEccLrz8Yriwk8r0gOltMS+ZyHW8CcrvdI7sthkM08CAXQXqGUneequr+4
|
||||
KSNd28rIOCFPPr23XqjmBxI1L68sS52770bNV9tk11rzAzs5XwgSw9h/MSlp8uURylxDbl+wgkEC
|
||||
xxcHHzqoXSBWwomnpowTpuQCcGpl3IPTZtdq+pegELuolHRfpWxrmolmBq/9AXa1S4TneE9B/WXs
|
||||
v2flij2t+cTgQZT+8CSMLHR0Z0ZSIzz/5XiU3Aa3U8oF1TkTo2yOVHQoq+1NfnDDyYHWDnNLAQBc
|
||||
miTzuLieVrZ7jyzFcW9kLueQUH1WO2Rf+3QljCrmsMMxf3SBDgA06nq83HBpoOlSWfc73MzBLnHd
|
||||
wp+5f42iP0F6H7zW7GrxshYC1ATEi3V97+QTD/aYdsvNxJUFUGXzH7++fII783RBt5EBKyTJV4QL
|
||||
vJdxI2WwkHIpqYGZKaXKgLnM5IC==
|
||||
HR+cPqtwcgHgNt+Bra8FXvVIb/EiMwtHSb/vh6ZN3vtK6bvE7pUctr+4KDFAFa1U7DzCN4TuOpTU
|
||||
pjw3ZHvkkFSt97w7zou2ID4ZgZSmgKfI024YCc7CcF6bKFfu6VPXGsWir1KlOM0iTyM8kxnxmTf0
|
||||
E3vsnzGW2xiSBSPQNhCSNJPoe1amNhR6jBdu7M76MSRU8/RaZ0REj0AssqdeiDORSaBKEaHoROl8
|
||||
2L+FebKJQOGVw9WS2VN1EEJTL/fteIcImQMCgO2hBC2/OdyeYK/2UJMsgFzDCJMH3xBy5KhFosmq
|
||||
OQZrxLTk7gL7OmRRi5n7LXD/KQ2QzjdvXu1f5mQOEd6uqom58ql3GsZUM42G+7TnDF99Pwp7Ywb+
|
||||
6WBCeVV8zMn9kSL51MGjVvvi/eq0PrbF5BGNyaUan/G1cSfqjqkYCmJmvhgdGvlENV+WPc6n0YY/
|
||||
7XA11f6zrkY7DvJvCF6eVggTMhjVlJkMii049PkqJDb8GECJyAQ91VJ1Mt/tSJh3fZ2ROpFZTO6Z
|
||||
ZoTcSo47xGH+jQd7PK5oZ64ESCO8hxxyqetjR7vXICdK1+d5qi9TxkCeiG5uhndhNNwB5akueJhm
|
||||
jJwT5eKvytqIkAvFiII0RkKFvlckAoH9ceom2xaBP6fds1SQztC0Qvt9SyoiAMtTRD1iPlQnQAlm
|
||||
P3bBOt9Sd6SaLUCmrYmcM2MrZDsQBiSWjL/9+8MMrKGQjRwlwHBXIkNP+qwQjX0PLKfDgbTQSnjt
|
||||
EuH1OJC4LI9gSYQ0132hpM4WwEDG2DVAtTHguXjXaEnXKPLVnxLJz8u3/cLuFeOa3o2A2NW7Sm0r
|
||||
A56VSE4CBy9NZbdBUXmJ3PFrT+JqK2TBDQ0Ilht7vsmOOpthyyDfg5NqPm+jpGKIN3eANrXwhChl
|
||||
Xu6m4Gkrf2iu0DPh1Wy6lv7gBH6QKa7+vpRSQO6I7WoI7ZNR1Oss18QSCKwTdrFDXNJpQth98rBy
|
||||
KocpdCS4TRkQWN6rfKuFV2S/ZDPiDOjPr5qF8xbdWqAyiXTVEkklGOUjUjJP6tUizsOlYZC63eIv
|
||||
ig/nvP3yjv875rdHvVj2jMN/h3k5SLSPEADWvUE5DyKvlNdmiAeD3gMaHrI2BZaevcaJnpSbo07l
|
||||
BGbIu28c1kR0ilgSOrrWm9FG5sg5KOCJ5DdQSk333aZSeTwqfiXwjqlTTKs2+HgO88ephzAe7O9K
|
||||
SvDJM1D+EBKrChkoN4TmNlJPeURB9DPaWbmVWzw9RfY3724PaSdn4UeBRswa0a/aVt5LZpEiq8RZ
|
||||
3pCG0vtztFog85OO3JucaSAShnz7ul+wK64iUTX7HPxFF+stx4/+P5NpZI71/bFT1ODEhe3yomUs
|
||||
Mc0ngDO4SQQwmSXO821WkiEArxgwSevpXuqvXfspBs384G==
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
class ExpiredException extends \UnexpectedValueException
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1,491 +1,323 @@
|
||||
<?php //ICB0 74:0 81:325e 82:6247 ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
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
|
||||
RSEcLSkHYG===
|
||||
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
|
||||
6VQ6K6Q+GeqtMAOrzAe1=
|
||||
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
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
use DomainException;
|
||||
use InvalidArgumentException;
|
||||
use UnexpectedValueException;
|
||||
|
||||
/**
|
||||
* JSON Web Key implementation, based on this spec:
|
||||
* https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41
|
||||
*
|
||||
* PHP version 5
|
||||
*
|
||||
* @category Authentication
|
||||
* @package Authentication_JWT
|
||||
* @author Bui Sy Nguyen <nguyenbs@gmail.com>
|
||||
* @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
|
||||
* @link https://github.com/firebase/php-jwt
|
||||
*/
|
||||
class JWK
|
||||
{
|
||||
private const OID = '1.2.840.10045.2.1';
|
||||
private const ASN1_OBJECT_IDENTIFIER = 0x06;
|
||||
private const ASN1_SEQUENCE = 0x10; // also defined in JWT
|
||||
private const ASN1_BIT_STRING = 0x03;
|
||||
private const EC_CURVES = [
|
||||
'P-256' => '1.2.840.10045.3.1.7', // Len: 64
|
||||
'secp256k1' => '1.3.132.0.10', // Len: 64
|
||||
// 'P-384' => '1.3.132.0.34', // Len: 96 (not yet supported)
|
||||
// 'P-521' => '1.3.132.0.35', // Len: 132 (not supported)
|
||||
];
|
||||
|
||||
/**
|
||||
* Parse a set of JWK keys
|
||||
*
|
||||
* @param array<mixed> $jwks The JSON Web Key Set as an associative array
|
||||
* @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the
|
||||
* JSON Web Key Set
|
||||
*
|
||||
* @return array<string, Key> An associative array of key IDs (kid) to Key objects
|
||||
*
|
||||
* @throws InvalidArgumentException Provided JWK Set is empty
|
||||
* @throws UnexpectedValueException Provided JWK Set was invalid
|
||||
* @throws DomainException OpenSSL failure
|
||||
*
|
||||
* @uses parseKey
|
||||
*/
|
||||
public static function parseKeySet(array $jwks, string $defaultAlg = null): array
|
||||
{
|
||||
$keys = [];
|
||||
|
||||
if (!isset($jwks['keys'])) {
|
||||
throw new UnexpectedValueException('"keys" member must exist in the JWK Set');
|
||||
}
|
||||
|
||||
if (empty($jwks['keys'])) {
|
||||
throw new InvalidArgumentException('JWK Set did not contain any keys');
|
||||
}
|
||||
|
||||
foreach ($jwks['keys'] as $k => $v) {
|
||||
$kid = isset($v['kid']) ? $v['kid'] : $k;
|
||||
if ($key = self::parseKey($v, $defaultAlg)) {
|
||||
$keys[(string) $kid] = $key;
|
||||
}
|
||||
}
|
||||
|
||||
if (0 === \count($keys)) {
|
||||
throw new UnexpectedValueException('No supported algorithms found in JWK Set');
|
||||
}
|
||||
|
||||
return $keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a JWK key
|
||||
*
|
||||
* @param array<mixed> $jwk An individual JWK
|
||||
* @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the
|
||||
* JSON Web Key Set
|
||||
*
|
||||
* @return Key The key object for the JWK
|
||||
*
|
||||
* @throws InvalidArgumentException Provided JWK is empty
|
||||
* @throws UnexpectedValueException Provided JWK was invalid
|
||||
* @throws DomainException OpenSSL failure
|
||||
*
|
||||
* @uses createPemFromModulusAndExponent
|
||||
*/
|
||||
public static function parseKey(array $jwk, string $defaultAlg = null): ?Key
|
||||
{
|
||||
if (empty($jwk)) {
|
||||
throw new InvalidArgumentException('JWK must not be empty');
|
||||
}
|
||||
|
||||
if (!isset($jwk['kty'])) {
|
||||
throw new UnexpectedValueException('JWK must contain a "kty" parameter');
|
||||
}
|
||||
|
||||
if (!isset($jwk['alg'])) {
|
||||
if (\is_null($defaultAlg)) {
|
||||
// The "alg" parameter is optional in a KTY, but an algorithm is required
|
||||
// for parsing in this library. Use the $defaultAlg parameter when parsing the
|
||||
// key set in order to prevent this error.
|
||||
// @see https://datatracker.ietf.org/doc/html/rfc7517#section-4.4
|
||||
throw new UnexpectedValueException('JWK must contain an "alg" parameter');
|
||||
}
|
||||
$jwk['alg'] = $defaultAlg;
|
||||
}
|
||||
|
||||
switch ($jwk['kty']) {
|
||||
case 'RSA':
|
||||
if (!empty($jwk['d'])) {
|
||||
throw new UnexpectedValueException('RSA private keys are not supported');
|
||||
}
|
||||
if (!isset($jwk['n']) || !isset($jwk['e'])) {
|
||||
throw new UnexpectedValueException('RSA keys must contain values for both "n" and "e"');
|
||||
}
|
||||
|
||||
$pem = self::createPemFromModulusAndExponent($jwk['n'], $jwk['e']);
|
||||
$publicKey = \openssl_pkey_get_public($pem);
|
||||
if (false === $publicKey) {
|
||||
throw new DomainException(
|
||||
'OpenSSL error: ' . \openssl_error_string()
|
||||
);
|
||||
}
|
||||
return new Key($publicKey, $jwk['alg']);
|
||||
case 'EC':
|
||||
if (isset($jwk['d'])) {
|
||||
// The key is actually a private key
|
||||
throw new UnexpectedValueException('Key data must be for a public key');
|
||||
}
|
||||
|
||||
if (empty($jwk['crv'])) {
|
||||
throw new UnexpectedValueException('crv not set');
|
||||
}
|
||||
|
||||
if (!isset(self::EC_CURVES[$jwk['crv']])) {
|
||||
throw new DomainException('Unrecognised or unsupported EC curve');
|
||||
}
|
||||
|
||||
if (empty($jwk['x']) || empty($jwk['y'])) {
|
||||
throw new UnexpectedValueException('x and y not set');
|
||||
}
|
||||
|
||||
$publicKey = self::createPemFromCrvAndXYCoordinates($jwk['crv'], $jwk['x'], $jwk['y']);
|
||||
return new Key($publicKey, $jwk['alg']);
|
||||
default:
|
||||
// Currently only RSA is supported
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts the EC JWK values to pem format.
|
||||
*
|
||||
* @param string $crv The EC curve (only P-256 is supported)
|
||||
* @param string $x The EC x-coordinate
|
||||
* @param string $y The EC y-coordinate
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function createPemFromCrvAndXYCoordinates(string $crv, string $x, string $y): string
|
||||
{
|
||||
$pem =
|
||||
self::encodeDER(
|
||||
self::ASN1_SEQUENCE,
|
||||
self::encodeDER(
|
||||
self::ASN1_SEQUENCE,
|
||||
self::encodeDER(
|
||||
self::ASN1_OBJECT_IDENTIFIER,
|
||||
self::encodeOID(self::OID)
|
||||
)
|
||||
. self::encodeDER(
|
||||
self::ASN1_OBJECT_IDENTIFIER,
|
||||
self::encodeOID(self::EC_CURVES[$crv])
|
||||
)
|
||||
) .
|
||||
self::encodeDER(
|
||||
self::ASN1_BIT_STRING,
|
||||
\chr(0x00) . \chr(0x04)
|
||||
. JWT::urlsafeB64Decode($x)
|
||||
. JWT::urlsafeB64Decode($y)
|
||||
)
|
||||
);
|
||||
|
||||
return sprintf(
|
||||
"-----BEGIN PUBLIC KEY-----\n%s\n-----END PUBLIC KEY-----\n",
|
||||
wordwrap(base64_encode($pem), 64, "\n", true)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a public key represented in PEM format from RSA modulus and exponent information
|
||||
*
|
||||
* @param string $n The RSA modulus encoded in Base64
|
||||
* @param string $e The RSA exponent encoded in Base64
|
||||
*
|
||||
* @return string The RSA public key represented in PEM format
|
||||
*
|
||||
* @uses encodeLength
|
||||
*/
|
||||
private static function createPemFromModulusAndExponent(
|
||||
string $n,
|
||||
string $e
|
||||
): string {
|
||||
$mod = JWT::urlsafeB64Decode($n);
|
||||
$exp = JWT::urlsafeB64Decode($e);
|
||||
|
||||
$modulus = \pack('Ca*a*', 2, self::encodeLength(\strlen($mod)), $mod);
|
||||
$publicExponent = \pack('Ca*a*', 2, self::encodeLength(\strlen($exp)), $exp);
|
||||
|
||||
$rsaPublicKey = \pack(
|
||||
'Ca*a*a*',
|
||||
48,
|
||||
self::encodeLength(\strlen($modulus) + \strlen($publicExponent)),
|
||||
$modulus,
|
||||
$publicExponent
|
||||
);
|
||||
|
||||
// sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption.
|
||||
$rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA
|
||||
$rsaPublicKey = \chr(0) . $rsaPublicKey;
|
||||
$rsaPublicKey = \chr(3) . self::encodeLength(\strlen($rsaPublicKey)) . $rsaPublicKey;
|
||||
|
||||
$rsaPublicKey = \pack(
|
||||
'Ca*a*',
|
||||
48,
|
||||
self::encodeLength(\strlen($rsaOID . $rsaPublicKey)),
|
||||
$rsaOID . $rsaPublicKey
|
||||
);
|
||||
|
||||
return "-----BEGIN PUBLIC KEY-----\r\n" .
|
||||
\chunk_split(\base64_encode($rsaPublicKey), 64) .
|
||||
'-----END PUBLIC KEY-----';
|
||||
}
|
||||
|
||||
/**
|
||||
* DER-encode the length
|
||||
*
|
||||
* DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See
|
||||
* {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information.
|
||||
*
|
||||
* @param int $length
|
||||
* @return string
|
||||
*/
|
||||
private static function encodeLength(int $length): string
|
||||
{
|
||||
if ($length <= 0x7F) {
|
||||
return \chr($length);
|
||||
}
|
||||
|
||||
$temp = \ltrim(\pack('N', $length), \chr(0));
|
||||
|
||||
return \pack('Ca*', 0x80 | \strlen($temp), $temp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes a value into a DER object.
|
||||
* Also defined in Firebase\JWT\JWT
|
||||
*
|
||||
* @param int $type DER tag
|
||||
* @param string $value the value to encode
|
||||
* @return string the encoded object
|
||||
*/
|
||||
private static function encodeDER(int $type, string $value): string
|
||||
{
|
||||
$tag_header = 0;
|
||||
if ($type === self::ASN1_SEQUENCE) {
|
||||
$tag_header |= 0x20;
|
||||
}
|
||||
|
||||
// Type
|
||||
$der = \chr($tag_header | $type);
|
||||
|
||||
// Length
|
||||
$der .= \chr(\strlen($value));
|
||||
|
||||
return $der . $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Encodes a string into a DER-encoded OID.
|
||||
*
|
||||
* @param string $oid the OID string
|
||||
* @return string the binary DER-encoded OID
|
||||
*/
|
||||
private static function encodeOID(string $oid): string
|
||||
{
|
||||
$octets = explode('.', $oid);
|
||||
|
||||
// Get the first octet
|
||||
$first = (int) array_shift($octets);
|
||||
$second = (int) array_shift($octets);
|
||||
$oid = \chr($first * 40 + $second);
|
||||
|
||||
// Iterate over subsequent octets
|
||||
foreach ($octets as $octet) {
|
||||
if ($octet == 0) {
|
||||
$oid .= \chr(0x00);
|
||||
continue;
|
||||
}
|
||||
$bin = '';
|
||||
|
||||
while ($octet) {
|
||||
$bin .= \chr(0x80 | ($octet & 0x7f));
|
||||
$octet >>= 7;
|
||||
}
|
||||
$bin[0] = $bin[0] & \chr(0x7f);
|
||||
|
||||
// Convert to big endian if necessary
|
||||
if (pack('V', 65534) == pack('L', 65534)) {
|
||||
$oid .= strrev($bin);
|
||||
} else {
|
||||
$oid .= $bin;
|
||||
}
|
||||
}
|
||||
|
||||
return $oid;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,108 +1,64 @@
|
||||
<?php //ICB0 74:0 81:ae2 82:1505 ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
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=
|
||||
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
|
||||
mop2ovmkr6yp3BWE8KWxsbzXKSJAEwij2mQg
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use OpenSSLAsymmetricKey;
|
||||
use OpenSSLCertificate;
|
||||
use TypeError;
|
||||
|
||||
class Key
|
||||
{
|
||||
/** @var string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate */
|
||||
private $keyMaterial;
|
||||
/** @var string */
|
||||
private $algorithm;
|
||||
|
||||
/**
|
||||
* @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial
|
||||
* @param string $algorithm
|
||||
*/
|
||||
public function __construct(
|
||||
$keyMaterial,
|
||||
string $algorithm
|
||||
) {
|
||||
if (
|
||||
!\is_string($keyMaterial)
|
||||
&& !$keyMaterial instanceof OpenSSLAsymmetricKey
|
||||
&& !$keyMaterial instanceof OpenSSLCertificate
|
||||
&& !\is_resource($keyMaterial)
|
||||
) {
|
||||
throw new TypeError('Key material must be a string, resource, or OpenSSLAsymmetricKey');
|
||||
}
|
||||
|
||||
if (empty($keyMaterial)) {
|
||||
throw new InvalidArgumentException('Key material must not be empty');
|
||||
}
|
||||
|
||||
if (empty($algorithm)) {
|
||||
throw new InvalidArgumentException('Algorithm must not be empty');
|
||||
}
|
||||
|
||||
// TODO: Remove in PHP 8.0 in favor of class constructor property promotion
|
||||
$this->keyMaterial = $keyMaterial;
|
||||
$this->algorithm = $algorithm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the algorithm valid for this key
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAlgorithm(): string
|
||||
{
|
||||
return $this->algorithm;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate
|
||||
*/
|
||||
public function getKeyMaterial()
|
||||
{
|
||||
return $this->keyMaterial;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,66 +1,7 @@
|
||||
<?php //ICB0 74:0 81:670 82:c29 ?><?php //000ab
|
||||
// Copyright prestashow.com 2025. All Rights Reserved.
|
||||
// @authors prestashow.com <contact@prestashow.com>
|
||||
// @license https://prestashow.com/license
|
||||
return;
|
||||
?>
|
||||
HR+cPvgyah7adcU6L0K7aj6nmfCQGfBy3OsCbZv2CR1iDOIE5p4PeQ2yd/6mEZkyL7QUTMpQdemv
|
||||
shs0U6+MkiJERiAPle+/hDgB+MYE0IXqIKak+w5hMUG+oSgW5K6WpVdStKwMa/J1OTl8kSLB8f0U
|
||||
y0vHqB2GV7slxh+aKfhPA9uuJswMLayXAxGVv8zuylnSbMEM3E0WUZRSKEb4/03TfpAlNyon5HHZ
|
||||
glrHLbwi9f64pLMJrvQmMuh387fFKNPTWOgfztTkPh6ejoMbbNZE9KyCf8YLyzChW1/I4KBEdZ15
|
||||
BmoIK+8U9ilwjXCFzlpJmkUeVEPg6ekOvb0OJY6IEbNoRinBGXlRD98DquOfqvZ9TC1REHzfMEAp
|
||||
Q1wz9jZvUrixiGkcPdnRtGZZBM329ByHtjMyqaxxtuwceGuAjEaZJO7WB9C6nxwj6uywxXzpcjT3
|
||||
T1YzGXQgeQlKAjvCP+sVrP0IWMQIb/oVXYGNvRWmKtK9rl10zF/EY2qTqQcCIbI+CkMcK/+mYn0a
|
||||
g+c9HOz2MYVLV8GitGEEaB2MdGYbaFNdp6CdMHGoZ20lbmx68eJkJuf7WSbm90fguFgs2Wo/zDOD
|
||||
BzBzg1qhaEsiROJKZ1i3KqLBklhNFvlD4mZN9FiPk3IQIPDA0nzPInzUvy7QU4iT3e52Dr6iiHXd
|
||||
gTlK7k5sCgd19EpTW/8OHe58yKqUGxynQ7pTXeRdpLIM20sHHA2Ykgryut1BwgilVLw8oBxmmUzH
|
||||
+RsuYqMMH87uEmyxi4/BXt2DPfwbfJBF45f4ROmY6kUnDNPK5Z6tDROfA8qLu1ahncIpjvh1z12N
|
||||
WkvwbIPuhesuUReuRCfp/X8D8+xXk++Xa104sH2tMuBeO//ZMtoqzk5Ts9wu6qGSN7xBXM+t/T0l
|
||||
dg7mnqDYSnT6b5JdHrvnwMkI1vqmdY5gSfVVO5CDQ6QxSzjKTaz7xBXFiQnMLnXWsB0G/N6VexbA
|
||||
q0iMyX1mlERyxaqukrMq9F725f2YCNYufGKNJhtHY3AHKmbPX3E3chjpBhxFQr70kVQZuyroA5fK
|
||||
e2kVDxMqO7vg6jZC60T4XLWbgojx6nYFvnH6sQ3dzucJ+p0VRlj0OauBnbtHhulL0lQjWK+e0xTF
|
||||
cQix2uT8Ogh/CXVOWlQ30Nl2mxua+OtmQmso+wTE+iSmN+T8GRkoii5rx7k0a7LEPhGVkrSm7M3d
|
||||
caEFJZKY74V+972euKAKd5ObUvzy4DluBGuaLMYGZoo52VztXU99Zn3ZQq7z1P6M1hy3JJQpAYOn
|
||||
U0uBYoxM58Qw32cz72O0c8uNg7WctXMQAsnSrCQ9JDGl9V+Zp2gq+m1/taR3H/kGBe2ay9pr2zoO
|
||||
SLyUz1rb64mSWqrRg+FsS1OR5+liPt+PRWsz3bTRRgLmGnXmwGaupeK1yyYfv71qzKpjk+sMq6tl
|
||||
jRXmn40==
|
||||
HR+cPq5IHmYVfhilm+hIAxQ7Tl9c5k4sqX6VczYoONyt/0HrPBcMmzKroWPGuGV1yL7KalIF9D+Z
|
||||
BBq2RVewgYC6Fzh5ljEOnrJOsynsb6CQ+AF5B6YyOoSXutedogU7RpzrC/ZRPH90x9OVeCPnvyd3
|
||||
ItJqAG77jP1v2uAKMVMRKlJta7tEGNX3vUo0KPqjdxVaFTILY+o78ngqT8/tlx9E+TK9zdm9Cqm8
|
||||
l9aQw5TTafHJk1Ss7R2yeGoiZJVi9fTZvoqx6WdC65OVtus2yOPgLKOM1U+vaS/DUTeVxsKqzeLp
|
||||
heG4UijQCYD5e+ikbNzfakWaqAZ1tQwL/ovaXjVhr2PtRhmhZ0hMG9eD+ne6Jyh5Nq1GNvUXWFfF
|
||||
KLN56sg5mEJ3JUdYoNMEyxN39jyIXdFQ4wKXXgAPpsQYgufPGeYvALmlO/TgX2rb/tAmpc0eFWpC
|
||||
Zq7HikomL3/h6pRQbWHTYp/RSpAtQNKGHHOE+FR1fqfvb0montXquptOFwQl+lpmOG0Ly99tY+Gd
|
||||
JSDIaGUQJtSIvJvG8tOYlrsSgwIh+TBVSPpXXq7W0dMJQmeLIM5C0Q6wTF7LOU3YXuoCoq3Z8Zy3
|
||||
XbpKT+lWmVTF18ZJnIYzyQYfKjuOkW7Sbrux5bFGQ7vDRLjN/inP5E8G4rLNpmwsNpMcPN20we5J
|
||||
EtfoenVwC4/1bJT1xcbiwJRmG110ASdML2kBE59cw5sjGMjNAS+gNdVOJ6AMlvQLjn3XSBZXS4bK
|
||||
sMrJFgemr410LmbVdV7WJPbNvKMkyckX3x5ZsuWKGJWQemtmONetT2H+1eaInJt+Y4O/mRqkykb2
|
||||
lZx005/MTtnP+LSLnjCU+BKWJxEsqSmr7cGgA7uUYf781IXaelUwlFvIMB5jwfVfIb4bSk3vtKjE
|
||||
35QQyFj/7YWPiWch/oyhEyHcbENV578Tffs2xQckUKEs07pe9OxunUwWgPwPqoLPCUCUJJH2r1O5
|
||||
uetCIH62AIZIBhAdvejWlwQKq8kwLirwXLyHKCNtAuCg4s8piu7h0SWq4AofGHI3aUMUVdy3B7t5
|
||||
FfPVXAaini3Z5FmB7pj8Ip2KpCcaKVAu3NHOiL0GwbcEL2gc8sTM5CKvy/hO3CZO48KJ2EEXE1mh
|
||||
oCuWjqaxGhObwt9chwcT0MsBh9FfBj9FGQ/5yEkVQ3FrwtKtIcDrin7PfsKZJ+ui33CFnYDPgLAo
|
||||
k/FPem0/abG8ww6+20wzuZ97FTRsgukNs+hT44gowzGnLpU6pbAMqGpJWx2k34QHPjAOLxP9TKtI
|
||||
3Xxet9zVfJQqStzTbZ9BCj6Tbe7z0XCBbsoxj7gwHWBIEvP8R+X+u63qno94soisofJiKFBVWhuV
|
||||
aHFbjAtJhA9DCCyZQpA+wKMxoBw4JQIO6US+VivkoGXz+y6xvoTxmXU8i3QxLT3sanXRNBrySkLj
|
||||
=
|
||||
HR+cPsKVMAHf+A2BqQVDXs7OwRacGl1OPxSt/Mcj2ZQLqMcPilN74/Np5BqSsn5P/381I5uHadCk
|
||||
BPjurLxNWUj3C7vY39U+BrcT5UNGnXuQgkTOaagEReND+pqL6snJDLlISSvfeTdA2uAFAKEV+AEq
|
||||
lMq+hvegWDwhLGyYt/k11NW9aSuFD3VkI5pr7qWPWyveKNck8WNMPORmfKM2wKfjmCqaj1BIHsFn
|
||||
VF4u+rK46V3tXyQoOqKneANJnlEeeCNOgEgsQcKl+zf8s9kKSu0NXfGYBX3k5TSYuCSB1/pnzNH4
|
||||
a3sRvsnIcPDYCfYJViqU5A/+RFFoKF07JJ8O8ckpEcD5m+/P5CyI2mt60XN3/SmSG+NpZtsFy/ai
|
||||
Gtdc7v9RGzuJLdu7jRt96fvi/eq0PrbF5BGNyaUan/G0dcGnM1AWoBRvsUAdmwBEUXd9Te5b5PS+
|
||||
cllyz+35W6yJ+CFsih5NdmufcWq6qK53fUeVjjKX1pGDph7pg7RXz1cyDMbEqhb23HCNLR9EYLNB
|
||||
ar79/LM1jmFAWnW0kMgVCTTGUp8JE6HV6Jc+72GFi1HEVgjnX6dIv99yd3su40m5yd6xmBfI1sVe
|
||||
8vgwe+TaSIt/o0EMBca+84esC8cds/v+edQriI5s0WNJfU+Kjd99CZ274Mt43uHvuiZu02KupCzH
|
||||
vVc5ZI8qf6L2a4Tiubb0KjQ0nwQHmLFb/aRlwA3jcC8d1b88seJpWCk40sN7bRj3xT5xXI4zWILv
|
||||
2H5GXhL74p1SWtXKvKBJjy/CqoZpiOsmTtqJf7ee1mUd7QGdubXKx8giM7Z+04VuD+sKfqSdfJWe
|
||||
vmS6L/jWGOF0PVq3rDLzyMAsjYILZqH70CZdVJGhEKw/pElMPWyPv5NUclqqRXLmEFdRxPedAvwL
|
||||
MRWLuyLhzeLLczG2zy4nO4l2qZ/rYRSwwIntdiTPhG6ZoTmDV9bTlWAzXCiRfih+qSruNAhCXIks
|
||||
2PRnpQ2iawdnsUKCnDoabitDQF+qaww2ha1PEpsx0OX2bpdxGZxVRms2g5XhSs90iLNrHW0a7VRD
|
||||
XJ68S8Hoyr+ie0Crc0Pi7omWlF8vzTgVjCEDWzcIdz7SbzbqowXnT/Pq1/E7kw7b/AJj33244Jfm
|
||||
cdGRim8oIuGtmi9V97h8PSJzWMpI+1d4jtNJnQ+xN7urudY+36xahDfl3PKKwclbRn3lZ3rTIZ6r
|
||||
qNGDK9zObCl1ZFIpZangaMshGZfwtnkociK2n+NwSx7axgQ5G9tf/4P57NQXi0x5SfaZqYadBCMT
|
||||
n0oI0dEnnCp+OdbKwJNKaWRa23exVrrxZGJxx16bEQfq7LXDWmg6KQB6TWcKUgqWRSGTpcyBFb4G
|
||||
OMz9Jufjgnz98nHccpzACYQa3pVMEw2vI3w0nMsAu0uBq1LQkBITbRCfkdsl2YQIFH5k6BUKgCGN
|
||||
roSDqufNjsMWhtrvTyS=
|
||||
<?php
|
||||
|
||||
namespace PShowSsoScoped\Firebase\JWT;
|
||||
|
||||
class SignatureInvalidException extends \UnexpectedValueException
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user