
    _jW                        d dl Z d dlmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZ d dlmZ d dlmZmZmZ d dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. e.rd dl/m0Z0 d dlm1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 e.rd dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZC d dlDmEZE d dlFmGZG d d lHmIZI d d!lJmKZK d d"lLmMZM d d#lNmOZO d d$lPmQZQ d d%lRmSZS d d&lTmUZU d d'lVmWZW d d(lXmYZY d d)lZm[Z[ d d*l\m]Z] d d+l^m_Z_ d d,l`maZa d d-lbmcZc d d.ldmeZe d d/lfmgZg d d0lhmiZi d d1ljmkZk d d2llmmZm d d3lnmoZo d d4lpmqZq d d5lrmsZs d d6ltmuZu d d7lvmwZw d d8lxmyZy d d9lzm{Z{ d d:l|m}Z} d d;l~mZ d d<lmZ d d=lmZ d d>lmZ d d?lmZ d d@lmZ d dAlmZ d dBlmZ d dClmZ d dDlmZ d dElmZ d dFlmZ d dGlmZ d dHlmZ d dIlmZ d dJlmZ d dKlmZ d dLlmZ d dMlmZ d dNlmZ d dOlmZ d dPlmZ d dQlmZ d dRlmZ d dSlmZ d dTlmZ d dUlmZ d dVlmZ d dWlmZ d dXlmZ d dYlmZ d dZlmZ d d[lmZ d d\lmZ d d]lmZ d d^lmZ d d_lmZ e.rd d`lmZ  G da dbeʦ          ZdS )c    N)OrderedDict)DEFAULT_API_BASEDEFAULT_CONNECT_API_BASEDEFAULT_UPLOAD_API_BASEDEFAULT_METER_EVENTS_API_BASE)ApiMode)AuthenticationError)extract_options_from_dict)RequestorOptionsBaseAddresses)_ClientOptions)new_default_http_clientnew_http_client_async_fallback)_ApiVersion)StripeObject)StripeResponse)_convert_to_stripe_objectget_api_mode
deprecated)WebhookWebhookSignature)Event)EventNotification)AnyDictOptionalUnioncast)TYPE_CHECKING)StripeContext)
HTTPClient)OAuthService)
V1Services)
V2Services)AccountService)AccountLinkService)AccountSessionService)ApplePayDomainService)ApplicationFeeService)AppsService)BalanceService)BalanceSettingsService)BalanceTransactionService)BillingService)BillingPortalService)ChargeService)CheckoutService)ClimateService)ConfirmationTokenService)CountrySpecService)CouponService)CreditNoteService)CustomerService)CustomerSessionService)DisputeService)EntitlementsService)EphemeralKeyService)EventService)ExchangeRateService)FileService)FileLinkService)FinancialConnectionsService)ForwardingService)IdentityService)InvoiceService)InvoiceItemService)InvoicePaymentService)InvoiceRenderingTemplateService)IssuingService)MandateService)PaymentAttemptRecordService)PaymentIntentService)PaymentLinkService)PaymentMethodService)!PaymentMethodConfigurationService)PaymentMethodDomainService)PaymentRecordService)PayoutService)PlanService)PriceService)ProductService)PromotionCodeService)QuoteService)RadarService)RefundService)ReportingService)ReviewService)SetupAttemptService)SetupIntentService)ShippingRateService)SigmaService)SourceService)SubscriptionService)SubscriptionItemService)SubscriptionScheduleService)
TaxService)TaxCodeService)TaxIdService)TaxRateService)TerminalService)TestHelpersService)TokenService)TopupService)TransferService)TreasuryService)WebhookEndpointService)ALL_EVENT_NOTIFICATIONSc                   p   e Zd Zdddddddddd	dedee         dddee         d	ee         d
ee         dedee         dee         ded         fdZe	j
        fdeeeef         dedededdf
dZe	j
        fdeeef         dedededef
dZdedefdZdedefdZ	 ddeeeeef         f         deeeef                  d edefd!Ze ed"          dd$                        Ze ed%          dd'                        Ze ed(          dd*                        Ze ed+          dd-                        Ze ed.          dd0                        Ze ed1          d d3                        Z e ed4          dd6                        Z!e ed7          dd9                        Z"e ed:          dd<                        Z#e ed=          dd?                        Z$e ed@          ddB                        Z%e edC          ddE                        Z&e edF          ddH                        Z'e edI          ddK                        Z(e edL          d	dN                        Z)e edO          d
dQ                        Z*e edR          ddT                        Z+e edU          ddW                        Z,e edX          ddZ                        Z-e ed[          dd]                        Z.e ed^          dd`                        Z/e eda          ddc                        Z0e edd          ddf                        Z1e edg          ddi                        Z2e edj          ddl                        Z3e edm          ddo                        Z4e edp          ddr                        Z5e eds          ddu                        Z6e edv          ddx                        Z7e edy          dd{                        Z8e ed|          dd~                        Z9e ed          dd                        Z:e ed          dd                        Z;e ed          dd                        Z<e ed          dd                        Z=e ed          dd                        Z>e ed          dd                        Z?e ed          d d                        Z@e ed          d!d                        ZAe ed          d"d                        ZBe ed          	 	 d#d                        ZCe ed          d$d                        ZDe ed          d%d                        ZEe ed          d&d                        ZFe ed          d'd                        ZGe ed          d(d                        ZHe ed          d)d                        ZIe ed          d*d                        ZJe ed          d+d                        ZKe ed          d,d                        ZLe ed          d-d                        ZMe ed          d.d                        ZNe ed          d/d                        ZOe ed          d0dÄ                        ZPe edĦ          d1dƄ                        ZQe edǦ          d2dɄ                        ZRe edʦ          d3d̄                        ZSe edͦ          d4dτ                        ZTe edЦ          d5d҄                        ZUe edӦ          d6dՄ                        ZVe ed֦          d7d؄                        ZWe ed٦          d8dۄ                        ZXe edܦ          d9dބ                        ZYe edߦ          d:d                        ZZe ed          d;d                        Z[e ed          d<d                        Z\e ed          d=d                        Z]e ed          d>d                        Z^e ed          d?d                        Z_e ed          d@d                        Z`e ed          dAd                        Zae ed          dBd                        ZbdS (C  StripeClientNT)	stripe_accountstripe_contextstripe_versionbase_addresses	client_idverify_ssl_certsproxymax_network_retrieshttp_clientapi_keyrp   rq   z#Optional[Union[str, StripeContext]]rr   rs   rt   ru   rv   rw   rx   r!   c       	            |t          d          |
r|s|durt          d          t          t          t          t
          d|pi }t          ||||pt          j        ||	          }|
!t          t          ||          ||          }
dd	lm}  |||

          | _        t          |||          | _        t!          | j        | j                  | _        t%          | j                  | _        t)          | j                  | _        d S )NzNo API key provided. (HINT: set your API key using "client = stripe.StripeClient(<API-KEY>)"). You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.TzYou cannot specify `proxy` or `verify_ssl_certs` when passing in a custom `http_client`. Please set these values on your custom `http_client` instead.)apiconnectfilesmeter_events)ry   rp   rq   rr   rs   rw   )rv   ru   )async_fallback_clientrv   ru   r   )_APIRequestor)optionsclient)rt   rv   ru   )r	   
ValueErrorr   r   r   r   r   r   CURRENTr   r   stripe._api_requestorr   
_requestorr   _optionsr"   oauthr#   v1r$   v2)selfry   rp   rq   rr   rs   rt   ru   rv   rw   rx   requestor_optionsr   s                Y/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/stripe/_stripe_client.py__init__zStripeClient.__init__   s|    ?%@    	E 	%5T%A%A0   $/,9	
 

 #
 -)))@[-@) 3
 
 
 1&D2B' ' ' !1  K 	877777'-%
 
 

 '-
 
 
 "$/4=AA
 T_--T_--    raw
sig_headersecret	tolerancereturnrm   c                 4   t          |d          r:t          t          t          t          f         |                              d          nt          t          |          }t          j        ||||           t          dt          j
        ||                     S )aA  
        This should be your main method for interacting with `EventNotifications`. It's the V2 equivalent of `construct_event()`, but with better typing support.

        It returns a union representing all known `EventNotification` classes. They have a `type` property that can be used for narrowing, which will get you very specific type support. If parsing an event the SDK isn't familiar with, it'll instead return `UnknownEventNotification`. That's not reflected in the return type of the function (because it messes up type narrowing) but is otherwise intended.
        decodeutf-8rm   )hasattrr   r   bytes	bytearrayr   strr   verify_headerr   	from_json)r   r   r   r   r   payloads         r   parse_event_notificationz%StripeClient.parse_event_notification   s     sH%% Dui'(#..55g>>>c3 	 	&w
FINNN%'66
 
 	
r   r   c                    t          |d          r(t          t          |                              d          }t	          j        ||||           t          j        |t                    }t          j
        || j        d          }|S )Nr   r   )object_pairs_hookV1)values	requestorapi_mode)r   r   r   r   r   r   jsonloadsr   r   _construct_fromr   )r   r   r   r   r   dataevents          r   construct_eventzStripeClient.construct_event   s     7H%% 	;5'**11'::G&w
FINNNz'[AAA%o
 
 
 r   method_url_c           	      J   |                                 }t          |          \  }}t          |          }|                    dd          }|                    ddg          }| j                            |||||||          \  }}	}
| j                            ||	|
|          S )Nbaser{   usageraw_requestparamsr   base_addressr   r   )copyr
   r   popr   request_raw_interpret_response)r   r   r   r   r   r   r   r   rbodyrcoderheaderss              r   r   zStripeClient.raw_request  s    3F;;%%zz&%00 

7]O44!%!<!<% "= "
 "
uh 225(H
 
 	
r   c           	      .  K   |                                 }t          |          \  }}t          |          }|                    dd          }| j                            ||||||dg           d {V \  }}}	| j                            |||	|          S )Nr   r{   r   r   )r   r
   r   r   r   request_raw_asyncr   )
r   r   r   r   r   r   r   r   r   r   s
             r   raw_request_asynczStripeClient.raw_request_async  s      3F;;%%zz&%00'+'H'H% / (I (
 (
 "
 "
 "
 "
 "
 "
uh 225(H
 
 	
r   respr   r   c                2    t          ||| j        |          S )zV
        Used to translate the result of a `raw_request` into a StripeObject.
        )r   r   r   r   )r   r   )r   r   r   r   s       r   deserializezStripeClient.deserialize1  s)     )o	
 
 
 	
r   a^  
        StripeClient.accounts is deprecated, use StripeClient.v1.accounts instead.
          All functionality under it has been copied over to StripeClient.v1.accounts.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r%   c                     | j         j        S N)r   accountsr   s    r   r   zStripeClient.accountsC       wr   am  
        StripeClient.account_links is deprecated, use StripeClient.v1.account_links instead.
          All functionality under it has been copied over to StripeClient.v1.account_links.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r&   c                     | j         j        S r   )r   account_linksr   s    r   r   zStripeClient.account_linksN       w$$r   av  
        StripeClient.account_sessions is deprecated, use StripeClient.v1.account_sessions instead.
          All functionality under it has been copied over to StripeClient.v1.account_sessions.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r'   c                     | j         j        S r   )r   account_sessionsr   s    r   r   zStripeClient.account_sessionsY       w''r   ay  
        StripeClient.apple_pay_domains is deprecated, use StripeClient.v1.apple_pay_domains instead.
          All functionality under it has been copied over to StripeClient.v1.apple_pay_domains.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r(   c                     | j         j        S r   )r   apple_pay_domainsr   s    r   r   zStripeClient.apple_pay_domainsd       w((r   av  
        StripeClient.application_fees is deprecated, use StripeClient.v1.application_fees instead.
          All functionality under it has been copied over to StripeClient.v1.application_fees.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r)   c                     | j         j        S r   )r   application_feesr   s    r   r   zStripeClient.application_feeso  r   r   aR  
        StripeClient.apps is deprecated, use StripeClient.v1.apps instead.
          All functionality under it has been copied over to StripeClient.v1.apps.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r*   c                     | j         j        S r   )r   appsr   s    r   r   zStripeClient.appsz  s     w|r   a[  
        StripeClient.balance is deprecated, use StripeClient.v1.balance instead.
          All functionality under it has been copied over to StripeClient.v1.balance.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r+   c                     | j         j        S r   )r   balancer   s    r   r   zStripeClient.balance       wr   av  
        StripeClient.balance_settings is deprecated, use StripeClient.v1.balance_settings instead.
          All functionality under it has been copied over to StripeClient.v1.balance_settings.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r,   c                     | j         j        S r   )r   balance_settingsr   s    r   r   zStripeClient.balance_settings  r   r   a  
        StripeClient.balance_transactions is deprecated, use StripeClient.v1.balance_transactions instead.
          All functionality under it has been copied over to StripeClient.v1.balance_transactions.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r-   c                     | j         j        S r   )r   balance_transactionsr   s    r   r   z!StripeClient.balance_transactions  s     w++r   a[  
        StripeClient.billing is deprecated, use StripeClient.v1.billing instead.
          All functionality under it has been copied over to StripeClient.v1.billing.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r.   c                     | j         j        S r   )r   billingr   s    r   r   zStripeClient.billing  r   r   ap  
        StripeClient.billing_portal is deprecated, use StripeClient.v1.billing_portal instead.
          All functionality under it has been copied over to StripeClient.v1.billing_portal.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r/   c                     | j         j        S r   )r   billing_portalr   s    r   r   zStripeClient.billing_portal       w%%r   a[  
        StripeClient.charges is deprecated, use StripeClient.v1.charges instead.
          All functionality under it has been copied over to StripeClient.v1.charges.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r0   c                     | j         j        S r   )r   chargesr   s    r   r   zStripeClient.charges  r   r   a^  
        StripeClient.checkout is deprecated, use StripeClient.v1.checkout instead.
          All functionality under it has been copied over to StripeClient.v1.checkout.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r1   c                     | j         j        S r   )r   checkoutr   s    r   r   zStripeClient.checkout  r   r   a[  
        StripeClient.climate is deprecated, use StripeClient.v1.climate instead.
          All functionality under it has been copied over to StripeClient.v1.climate.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r2   c                     | j         j        S r   )r   climater   s    r   r   zStripeClient.climate  r   r   a  
        StripeClient.confirmation_tokens is deprecated, use StripeClient.v1.confirmation_tokens instead.
          All functionality under it has been copied over to StripeClient.v1.confirmation_tokens.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r3   c                     | j         j        S r   )r   confirmation_tokensr   s    r   r   z StripeClient.confirmation_tokens  s     w**r   am  
        StripeClient.country_specs is deprecated, use StripeClient.v1.country_specs instead.
          All functionality under it has been copied over to StripeClient.v1.country_specs.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r4   c                     | j         j        S r   )r   country_specsr   s    r   r   zStripeClient.country_specs  r   r   a[  
        StripeClient.coupons is deprecated, use StripeClient.v1.coupons instead.
          All functionality under it has been copied over to StripeClient.v1.coupons.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r5   c                     | j         j        S r   )r   couponsr   s    r   r   zStripeClient.coupons  r   r   aj  
        StripeClient.credit_notes is deprecated, use StripeClient.v1.credit_notes instead.
          All functionality under it has been copied over to StripeClient.v1.credit_notes.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r6   c                     | j         j        S r   )r   credit_notesr   s    r   r   zStripeClient.credit_notes       w##r   aa  
        StripeClient.customers is deprecated, use StripeClient.v1.customers instead.
          All functionality under it has been copied over to StripeClient.v1.customers.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r7   c                     | j         j        S r   )r   	customersr   s    r   r   zStripeClient.customers	       w  r   ay  
        StripeClient.customer_sessions is deprecated, use StripeClient.v1.customer_sessions instead.
          All functionality under it has been copied over to StripeClient.v1.customer_sessions.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r8   c                     | j         j        S r   )r   customer_sessionsr   s    r   r   zStripeClient.customer_sessions  r   r   a^  
        StripeClient.disputes is deprecated, use StripeClient.v1.disputes instead.
          All functionality under it has been copied over to StripeClient.v1.disputes.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r9   c                     | j         j        S r   )r   disputesr   s    r   r   zStripeClient.disputes  r   r   aj  
        StripeClient.entitlements is deprecated, use StripeClient.v1.entitlements instead.
          All functionality under it has been copied over to StripeClient.v1.entitlements.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r:   c                     | j         j        S r   )r   entitlementsr   s    r   r   zStripeClient.entitlements*  r   r   ap  
        StripeClient.ephemeral_keys is deprecated, use StripeClient.v1.ephemeral_keys instead.
          All functionality under it has been copied over to StripeClient.v1.ephemeral_keys.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r;   c                     | j         j        S r   )r   ephemeral_keysr   s    r   r   zStripeClient.ephemeral_keys5  r   r   aX  
        StripeClient.events is deprecated, use StripeClient.v1.events instead.
          All functionality under it has been copied over to StripeClient.v1.events.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r<   c                     | j         j        S r   )r   eventsr   s    r   r   zStripeClient.events@       w~r   ap  
        StripeClient.exchange_rates is deprecated, use StripeClient.v1.exchange_rates instead.
          All functionality under it has been copied over to StripeClient.v1.exchange_rates.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r=   c                     | j         j        S r   )r   exchange_ratesr   s    r   r   zStripeClient.exchange_ratesK  r   r   aU  
        StripeClient.files is deprecated, use StripeClient.v1.files instead.
          All functionality under it has been copied over to StripeClient.v1.files.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r>   c                     | j         j        S r   )r   r}   r   s    r   r}   zStripeClient.filesV       w}r   ad  
        StripeClient.file_links is deprecated, use StripeClient.v1.file_links instead.
          All functionality under it has been copied over to StripeClient.v1.file_links.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r?   c                     | j         j        S r   )r   
file_linksr   s    r   r  zStripeClient.file_linksa       w!!r   a  
        StripeClient.financial_connections is deprecated, use StripeClient.v1.financial_connections instead.
          All functionality under it has been copied over to StripeClient.v1.financial_connections.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r@   c                     | j         j        S r   )r   financial_connectionsr   s    r   r  z"StripeClient.financial_connectionsl  s     w,,r   ad  
        StripeClient.forwarding is deprecated, use StripeClient.v1.forwarding instead.
          All functionality under it has been copied over to StripeClient.v1.forwarding.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rA   c                     | j         j        S r   )r   
forwardingr   s    r   r  zStripeClient.forwardingw  r  r   a^  
        StripeClient.identity is deprecated, use StripeClient.v1.identity instead.
          All functionality under it has been copied over to StripeClient.v1.identity.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rB   c                     | j         j        S r   )r   identityr   s    r   r	  zStripeClient.identity  r   r   a^  
        StripeClient.invoices is deprecated, use StripeClient.v1.invoices instead.
          All functionality under it has been copied over to StripeClient.v1.invoices.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rC   c                     | j         j        S r   )r   invoicesr   s    r   r  zStripeClient.invoices  r   r   am  
        StripeClient.invoice_items is deprecated, use StripeClient.v1.invoice_items instead.
          All functionality under it has been copied over to StripeClient.v1.invoice_items.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rD   c                     | j         j        S r   )r   invoice_itemsr   s    r   r  zStripeClient.invoice_items  r   r   av  
        StripeClient.invoice_payments is deprecated, use StripeClient.v1.invoice_payments instead.
          All functionality under it has been copied over to StripeClient.v1.invoice_payments.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rE   c                     | j         j        S r   )r   invoice_paymentsr   s    r   r  zStripeClient.invoice_payments  r   r   a  
        StripeClient.invoice_rendering_templates is deprecated, use StripeClient.v1.invoice_rendering_templates instead.
          All functionality under it has been copied over to StripeClient.v1.invoice_rendering_templates.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rF   c                     | j         j        S r   )r   invoice_rendering_templatesr   s    r   r  z(StripeClient.invoice_rendering_templates  s     w22r   a[  
        StripeClient.issuing is deprecated, use StripeClient.v1.issuing instead.
          All functionality under it has been copied over to StripeClient.v1.issuing.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rG   c                     | j         j        S r   )r   issuingr   s    r   r  zStripeClient.issuing  r   r   a^  
        StripeClient.mandates is deprecated, use StripeClient.v1.mandates instead.
          All functionality under it has been copied over to StripeClient.v1.mandates.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rH   c                     | j         j        S r   )r   mandatesr   s    r   r  zStripeClient.mandates  r   r   a  
        StripeClient.payment_attempt_records is deprecated, use StripeClient.v1.payment_attempt_records instead.
          All functionality under it has been copied over to StripeClient.v1.payment_attempt_records.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rI   c                     | j         j        S r   )r   payment_attempt_recordsr   s    r   r  z$StripeClient.payment_attempt_records  s     w..r   as  
        StripeClient.payment_intents is deprecated, use StripeClient.v1.payment_intents instead.
          All functionality under it has been copied over to StripeClient.v1.payment_intents.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rJ   c                     | j         j        S r   )r   payment_intentsr   s    r   r  zStripeClient.payment_intents       w&&r   am  
        StripeClient.payment_links is deprecated, use StripeClient.v1.payment_links instead.
          All functionality under it has been copied over to StripeClient.v1.payment_links.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rK   c                     | j         j        S r   )r   payment_linksr   s    r   r  zStripeClient.payment_links  r   r   as  
        StripeClient.payment_methods is deprecated, use StripeClient.v1.payment_methods instead.
          All functionality under it has been copied over to StripeClient.v1.payment_methods.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rL   c                     | j         j        S r   )r   payment_methodsr   s    r   r  zStripeClient.payment_methods  r  r   a  
        StripeClient.payment_method_configurations is deprecated, use StripeClient.v1.payment_method_configurations instead.
          All functionality under it has been copied over to StripeClient.v1.payment_method_configurations.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rM   c                     | j         j        S r   )r   payment_method_configurationsr   s    r   r   z*StripeClient.payment_method_configurations  s     w44r   a  
        StripeClient.payment_method_domains is deprecated, use StripeClient.v1.payment_method_domains instead.
          All functionality under it has been copied over to StripeClient.v1.payment_method_domains.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rN   c                     | j         j        S r   )r   payment_method_domainsr   s    r   r"  z#StripeClient.payment_method_domains       w--r   as  
        StripeClient.payment_records is deprecated, use StripeClient.v1.payment_records instead.
          All functionality under it has been copied over to StripeClient.v1.payment_records.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rO   c                     | j         j        S r   )r   payment_recordsr   s    r   r%  zStripeClient.payment_records  r  r   a[  
        StripeClient.payouts is deprecated, use StripeClient.v1.payouts instead.
          All functionality under it has been copied over to StripeClient.v1.payouts.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rP   c                     | j         j        S r   )r   payoutsr   s    r   r'  zStripeClient.payouts  r   r   aU  
        StripeClient.plans is deprecated, use StripeClient.v1.plans instead.
          All functionality under it has been copied over to StripeClient.v1.plans.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rQ   c                     | j         j        S r   )r   plansr   s    r   r)  zStripeClient.plans)  r   r   aX  
        StripeClient.prices is deprecated, use StripeClient.v1.prices instead.
          All functionality under it has been copied over to StripeClient.v1.prices.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rR   c                     | j         j        S r   )r   pricesr   s    r   r+  zStripeClient.prices4  r   r   a^  
        StripeClient.products is deprecated, use StripeClient.v1.products instead.
          All functionality under it has been copied over to StripeClient.v1.products.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rS   c                     | j         j        S r   )r   productsr   s    r   r-  zStripeClient.products?  r   r   as  
        StripeClient.promotion_codes is deprecated, use StripeClient.v1.promotion_codes instead.
          All functionality under it has been copied over to StripeClient.v1.promotion_codes.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rT   c                     | j         j        S r   )r   promotion_codesr   s    r   r/  zStripeClient.promotion_codesJ  r  r   aX  
        StripeClient.quotes is deprecated, use StripeClient.v1.quotes instead.
          All functionality under it has been copied over to StripeClient.v1.quotes.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rU   c                     | j         j        S r   )r   quotesr   s    r   r1  zStripeClient.quotesU  r   r   aU  
        StripeClient.radar is deprecated, use StripeClient.v1.radar instead.
          All functionality under it has been copied over to StripeClient.v1.radar.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rV   c                     | j         j        S r   )r   radarr   s    r   r3  zStripeClient.radar`  r   r   a[  
        StripeClient.refunds is deprecated, use StripeClient.v1.refunds instead.
          All functionality under it has been copied over to StripeClient.v1.refunds.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rW   c                     | j         j        S r   )r   refundsr   s    r   r5  zStripeClient.refundsk  r   r   aa  
        StripeClient.reporting is deprecated, use StripeClient.v1.reporting instead.
          All functionality under it has been copied over to StripeClient.v1.reporting.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rX   c                     | j         j        S r   )r   	reportingr   s    r   r7  zStripeClient.reportingv  r   r   a[  
        StripeClient.reviews is deprecated, use StripeClient.v1.reviews instead.
          All functionality under it has been copied over to StripeClient.v1.reviews.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rY   c                     | j         j        S r   )r   reviewsr   s    r   r9  zStripeClient.reviews  r   r   ap  
        StripeClient.setup_attempts is deprecated, use StripeClient.v1.setup_attempts instead.
          All functionality under it has been copied over to StripeClient.v1.setup_attempts.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rZ   c                     | j         j        S r   )r   setup_attemptsr   s    r   r;  zStripeClient.setup_attempts  r   r   am  
        StripeClient.setup_intents is deprecated, use StripeClient.v1.setup_intents instead.
          All functionality under it has been copied over to StripeClient.v1.setup_intents.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r[   c                     | j         j        S r   )r   setup_intentsr   s    r   r=  zStripeClient.setup_intents  r   r   ap  
        StripeClient.shipping_rates is deprecated, use StripeClient.v1.shipping_rates instead.
          All functionality under it has been copied over to StripeClient.v1.shipping_rates.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r\   c                     | j         j        S r   )r   shipping_ratesr   s    r   r?  zStripeClient.shipping_rates  r   r   aU  
        StripeClient.sigma is deprecated, use StripeClient.v1.sigma instead.
          All functionality under it has been copied over to StripeClient.v1.sigma.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r]   c                     | j         j        S r   )r   sigmar   s    r   rA  zStripeClient.sigma  r   r   a[  
        StripeClient.sources is deprecated, use StripeClient.v1.sources instead.
          All functionality under it has been copied over to StripeClient.v1.sources.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r^   c                     | j         j        S r   )r   sourcesr   s    r   rC  zStripeClient.sources  r   r   am  
        StripeClient.subscriptions is deprecated, use StripeClient.v1.subscriptions instead.
          All functionality under it has been copied over to StripeClient.v1.subscriptions.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r_   c                     | j         j        S r   )r   subscriptionsr   s    r   rE  zStripeClient.subscriptions  r   r   a|  
        StripeClient.subscription_items is deprecated, use StripeClient.v1.subscription_items instead.
          All functionality under it has been copied over to StripeClient.v1.subscription_items.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        r`   c                     | j         j        S r   )r   subscription_itemsr   s    r   rG  zStripeClient.subscription_items  s     w))r   a  
        StripeClient.subscription_schedules is deprecated, use StripeClient.v1.subscription_schedules instead.
          All functionality under it has been copied over to StripeClient.v1.subscription_schedules.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        ra   c                     | j         j        S r   )r   subscription_schedulesr   s    r   rI  z#StripeClient.subscription_schedules  r#  r   aO  
        StripeClient.tax is deprecated, use StripeClient.v1.tax instead.
          All functionality under it has been copied over to StripeClient.v1.tax.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rb   c                     | j         j        S r   )r   taxr   s    r   rK  zStripeClient.tax  s     w{r   aa  
        StripeClient.tax_codes is deprecated, use StripeClient.v1.tax_codes instead.
          All functionality under it has been copied over to StripeClient.v1.tax_codes.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rc   c                     | j         j        S r   )r   	tax_codesr   s    r   rM  zStripeClient.tax_codes  r   r   a[  
        StripeClient.tax_ids is deprecated, use StripeClient.v1.tax_ids instead.
          All functionality under it has been copied over to StripeClient.v1.tax_ids.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rd   c                     | j         j        S r   )r   tax_idsr   s    r   rO  zStripeClient.tax_ids  r   r   aa  
        StripeClient.tax_rates is deprecated, use StripeClient.v1.tax_rates instead.
          All functionality under it has been copied over to StripeClient.v1.tax_rates.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        re   c                     | j         j        S r   )r   	tax_ratesr   s    r   rQ  zStripeClient.tax_rates  r   r   a^  
        StripeClient.terminal is deprecated, use StripeClient.v1.terminal instead.
          All functionality under it has been copied over to StripeClient.v1.terminal.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rf   c                     | j         j        S r   )r   terminalr   s    r   rS  zStripeClient.terminal  r   r   aj  
        StripeClient.test_helpers is deprecated, use StripeClient.v1.test_helpers instead.
          All functionality under it has been copied over to StripeClient.v1.test_helpers.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rg   c                     | j         j        S r   )r   test_helpersr   s    r   rU  zStripeClient.test_helpers  r   r   aX  
        StripeClient.tokens is deprecated, use StripeClient.v1.tokens instead.
          All functionality under it has been copied over to StripeClient.v1.tokens.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rh   c                     | j         j        S r   )r   tokensr   s    r   rW  zStripeClient.tokens&  r   r   aX  
        StripeClient.topups is deprecated, use StripeClient.v1.topups instead.
          All functionality under it has been copied over to StripeClient.v1.topups.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        ri   c                     | j         j        S r   )r   topupsr   s    r   rY  zStripeClient.topups1  r   r   aa  
        StripeClient.transfers is deprecated, use StripeClient.v1.transfers instead.
          All functionality under it has been copied over to StripeClient.v1.transfers.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rj   c                     | j         j        S r   )r   	transfersr   s    r   r[  zStripeClient.transfers<  r   r   a^  
        StripeClient.treasury is deprecated, use StripeClient.v1.treasury instead.
          All functionality under it has been copied over to StripeClient.v1.treasury.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rk   c                     | j         j        S r   )r   treasuryr   s    r   r]  zStripeClient.treasuryG  r   r   ay  
        StripeClient.webhook_endpoints is deprecated, use StripeClient.v1.webhook_endpoints instead.
          All functionality under it has been copied over to StripeClient.v1.webhook_endpoints.
          See [migration guide](https://github.com/stripe/stripe-python/wiki/v1-namespace-in-StripeClient) for more on this and tips on migrating to the new v1 namespace.
        rl   c                     | j         j        S r   )r   webhook_endpointsr   s    r   r_  zStripeClient.webhook_endpointsR  r   r   r   )r   r%   )r   r&   )r   r'   )r   r(   )r   r)   )r   r*   )r   r+   )r   r,   )r   r-   )r   r.   )r   r/   )r   r0   )r   r1   )r   r2   )r   r3   )r   r4   )r   r5   )r   r6   )r   r7   )r   r8   )r   r9   )r   r:   )r   r;   )r   r<   )r   r=   )r   r>   )r   r?   )r   r@   )r   rA   )r   rB   )r   rC   )r   rD   )r   rE   )r   rF   )r   rG   )r   rH   )r   rI   )r   rJ   )r   rK   )r   rL   )r   rM   )r   rN   )r   rO   )r   rP   )r   rQ   )r   rR   )r   rS   )r   rT   )r   rU   )r   rV   )r   rW   )r   rX   )r   rY   )r   rZ   )r   r[   )r   r\   )r   r]   )r   r^   )r   r_   )r   r`   )r   ra   )r   rb   )r   rc   )r   rd   )r   re   )r   rf   )r   rg   )r   rh   )r   ri   )r   rj   )r   rk   )r   rl   )c__name__
__module____qualname__r   r   r   boolintr   r   DEFAULT_TOLERANCEr   r   r   r   r   r   r   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r}   r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r   r"  r%  r'  r)  r+  r-  r/  r1  r3  r5  r7  r9  r;  r=  r?  rA  rC  rE  rG  rI  rK  rM  rO  rQ  rS  rU  rW  rY  r[  r]  r_   r   r   ro   ro      s       
 )-@D(,26#'!%#-1.2L. L. L.L. !	L.
 >L. !L. !/L. C=L. L. }L. &c]L. l+L. L. L. L.h !2
 
5#y()
 
 	

 
 
#
 
 
 
< !2 ucz"  	
  
   *
3 
c 
 
 
 
.
s 
# 
 
 
 
. ,0
 
NDcN23
 c3h(

 
 

 
 
 
$ Z	        X  Z	 % % %  X% Z	 ( ( (  X( Z	 ) ) )  X) Z	 ( ( (  X( Z	     X Z	     X Z	 ( ( (  X( Z	 , , ,  X, Z	     X Z	 & & &  X& Z	     X Z	        X  Z	     X Z	 + + +  X+ Z	 % % %  X% Z	     X Z	 $ $ $  X$ Z	 ! ! !  X! Z	 ) ) )  X) Z	        X  Z	 $ $ $  X$ Z	 & & &  X& Z	     X Z	 & & &  X& Z	     X Z	 " " "  X" Z	 - - -  X- Z	 " " "  X" Z	        X  Z	        X  Z	 % % %  X% Z	 ( ( (  X( Z	 3 3 3  X3 Z	     X Z	        X  Z	 / / /  X/ Z	 ' ' '  X' Z	 % % %  X% Z	 ' ' '  X' Z	 5	,5 5 5  X5
 Z	 . . .  X. Z	 ' ' '  X' Z	     X Z	     X Z	     X Z	        X  Z	 ' ' '  X' Z	     X Z	     X Z	     X Z	 ! ! !  X! Z	     X Z	 & & &  X& Z	 % % %  X% Z	 & & &  X& Z	     X Z	     X Z	 % % %  X% Z	 * * *  X* Z	 . . .  X. Z	     X Z	 ! ! !  X! Z	     X Z	 ! ! !  X! Z	        X  Z	 $ $ $  X$ Z	     X Z	     X Z	 ! ! !  X! Z	        X  Z	 ) ) )  X) ) )r   ro   )r   collectionsr   striper   r   r   r   stripe._api_moder   stripe._errorr	   stripe._request_optionsr
   stripe._requestor_optionsr   r   stripe._client_optionsr   stripe._http_clientr   r   stripe._api_versionr   stripe._stripe_objectr   stripe._stripe_responser   stripe._utilr   r   r   stripe._webhookr   r   stripe._eventr   stripe.v2.core._eventr   typingr   r   r   r   r   typing_extensionsr   stripe._stripe_contextr    r!   stripe._oauth_servicer"   stripe._v1_servicesr#   stripe._v2_servicesr$   stripe._account_servicer%   stripe._account_link_servicer&   stripe._account_session_servicer'    stripe._apple_pay_domain_servicer(   stripe._application_fee_servicer)   stripe._apps_servicer*   stripe._balance_servicer+    stripe._balance_settings_servicer,   #stripe._balance_transaction_servicer-   stripe._billing_servicer.   stripe._billing_portal_servicer/   stripe._charge_servicer0   stripe._checkout_servicer1   stripe._climate_servicer2   "stripe._confirmation_token_servicer3   stripe._country_spec_servicer4   stripe._coupon_servicer5   stripe._credit_note_servicer6   stripe._customer_servicer7    stripe._customer_session_servicer8   stripe._dispute_servicer9   stripe._entitlements_servicer:   stripe._ephemeral_key_servicer;   stripe._event_servicer<   stripe._exchange_rate_servicer=   stripe._file_servicer>   stripe._file_link_servicer?   %stripe._financial_connections_servicer@   stripe._forwarding_servicerA   stripe._identity_servicerB   stripe._invoice_servicerC   stripe._invoice_item_servicerD   stripe._invoice_payment_servicerE   *stripe._invoice_rendering_template_servicerF   stripe._issuing_servicerG   stripe._mandate_servicerH   &stripe._payment_attempt_record_servicerI   stripe._payment_intent_servicerJ   stripe._payment_link_servicerK   stripe._payment_method_servicerL   ,stripe._payment_method_configuration_servicerM   %stripe._payment_method_domain_servicerN   stripe._payment_record_servicerO   stripe._payout_servicerP   stripe._plan_servicerQ   stripe._price_servicerR   stripe._product_servicerS   stripe._promotion_code_servicerT   stripe._quote_servicerU   stripe._radar_servicerV   stripe._refund_servicerW   stripe._reporting_servicerX   stripe._review_servicerY   stripe._setup_attempt_servicerZ   stripe._setup_intent_servicer[   stripe._shipping_rate_servicer\   stripe._sigma_servicer]   stripe._source_servicer^   stripe._subscription_servicer_   !stripe._subscription_item_servicer`   %stripe._subscription_schedule_servicera   stripe._tax_servicerb   stripe._tax_code_servicerc   stripe._tax_id_servicerd   stripe._tax_rate_servicere   stripe._terminal_servicerf   stripe._test_helpers_servicerg   stripe._token_servicerh   stripe._topup_serviceri   stripe._transfer_servicerj   stripe._treasury_servicerk    stripe._webhook_endpoint_servicerl   stripe.events._event_classesrm   objectro   rg  r   r   <module>r     s    # # # # # #            % $ $ $ $ $ - - - - - - = = = = = = E E E E E E E E 1 1 1 1 1 1        , + + + + + . . . . . . 2 2 2 2 2 2 L L L L L L L L L L 5 5 5 5 5 5 5 5       3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 + + + + + + /444444...... / . . . . . * * * * * * * * * * * *  TH666666??????EEEEEEFFFFFFEEEEEE000000666666GGGGGGMMMMMM666666CCCCCC444444888888666666KKKKKK??????444444======888888GGGGGG666666@@@@@@AAAAAA222222AAAAAA000000999999      =<<<<<888888666666??????EEEEEE      766666666666      DCCCCC??????CCCCCC           DCCCCC444444000000222222666666CCCCCC222222222222444444::::::444444AAAAAA??????AAAAAA222222444444@@@@@@IIIIII      /.....777777333333777777888888??????222222222222888888888888GGGGGG  EDDDDDDS) S) S) S) S)6 S) S) S) S) S)r   