Files
boc/aamos-command-center/target/release/deps/libtower_http-a805404201e0f65b.rlib
T

2484 lines
565 KiB
Plaintext
Raw Normal View History

!<arch>
/ 0 0 0 0 8604 `
`ÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBÛBRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRfRf™B™B™B™B™B™B™B™B_ZN102_$LT$tower_http..classify..grpc_errors_as_failures..GrpcFailureClass$u20$as$u20$core..fmt..Display$GT$3fmt17he5e57baccce54927E_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17h14270e7877712beeE_ZN103_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Debug$GT$3fmt17h658632ac6efb3b81E_ZN103_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Octal$GT$3fmt17h62a0db8fa019955fE_ZN104_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Binary$GT$3fmt17h2011e773fbfe47f8E_ZN105_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..Display$GT$3fmt17h7e777f194cb4020aE_ZN106_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..LowerHex$GT$3fmt17hfea926e28f2be964E_ZN106_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..fmt..UpperHex$GT$3fmt17h94b4f71defe8ff42E_ZN10tower_http15follow_redirect6policy9eq_origin17hca733f79ff442f6dE_ZN10tower_http8classify23grpc_errors_as_failures1_109_$LT$impl$u20$core..fmt..Octal$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17hc03e7431c27ac0e4E_ZN10tower_http8classify23grpc_errors_as_failures1_110_$LT$impl$u20$core..fmt..Binary$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h837b72688ab0b87aE_ZN10tower_http8classify23grpc_errors_as_failures1_112_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h4d2bb724c5b5841cE_ZN10tower_http8classify23grpc_errors_as_failures1_112_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$tower_http..classify..grpc_errors_as_failures..GrpcCodeBitmask$GT$3fmt17h50136510843397aaE_ZN10tower_http8classify23grpc_errors_as_failures20GrpcErrorsAsFailures12with_success17h97b80416dea9081fE_ZN10tower_http8classify23grpc_errors_as_failures22classify_grpc_metadata17h9f9c5a6c4a2dd50bE_ZN10tower_http8classify24status_in_range_is_error23StatusInRangeAsFailures32new_for_client_and_server_errors17hcf594db9ced4ef3bE_ZN10tower_http8classify24status_in_range_is_error23StatusInRangeAsFailures3new17h4e7e4589e2a6a7baE_ZN112_$LT$tower_http..classify..status_in_range_is_error..StatusInRangeFailureClass$u20$as$u20$core..fmt..Display$GT$3fmt17hf161b5a5e54469a2E_ZN113_$LT$tower_http..classify..grpc_errors_as_failures.._..InternalBitFlags$u20$as$u20$core..str..traits..FromStr$GT$8from_str17h13be5c9acd879fc0E_ZN124_$LT$tower_http..classify..grpc_errors_as_failures..GrpcEosErrorsAsFailures$u20$as$u20$tower_http..classify..ClassifyEos$GT$12classify_eos17h35aee116817d5141E_ZN141_$LT$tower_http..classify..grpc_errors_as_failures..GrpcCode$u20$as$u20$core..convert..From$LT$core..num..nonzero..NonZero$LT$i32$GT$$GT$$GT$4from17h10149c9f4a8b9612E_ZN4core3fmt5Write9write_fmt17h739824b8d5e63bb6E_ZN4core3str21_$LT$impl$u20$str$GT$12trim_matches17h08f02515e1aaeb8dE_ZN8bitflags6traits5Flags10intersects17h8ffb9f28b603ef53E_ZN8bitflags6traits5Flags10iter_names17had9a4bf114ed377fE_ZN8bitflags6traits5Flags5empty17h6e0b958e573b146dE_ZN8bitflags6traits5Flags6insert17h68fd2e51cfadeda1E_ZN8bitflags6traits5Flags6remove17h9346274e16cb3bb9E_ZN8bitflags6traits5Flags8contains17h5eaa53bb70eb4254E_ZN8bitflags6traits5Flags8is_empty17h4c1a896ea077d47eE_ZN8bitflags6traits5Flags9from_name17h51f2c0d0c076e59fEanon.aa690d51b4421fefac6e6ccb883bc122.33.llvm.13255072745782152274anon.aa690d51b4421fefac6e6ccb883bc122.16.llvm.13255072745782152274anon.aa690d51b4421fefac6e6ccb883bc122.17.llvm.13255072745782152274anon.aa690d51b4421fefac6e6ccb883bc122.
tower_http-a805404201e0f65b.tower_http.91c59d4b0ed118f6-cgu.0.rcgu.o/
tower_http-a805404201e0f65b.tower_http.91c59d4b0ed118f6-cgu.1.rcgu.o/
tower_http-a805404201e0f65b.tower_http.91c59d4b0ed118f6-cgu.2.rcgu.o/
lib.rmeta/ 0 0 0 644 505880 `
ELF·˜¶@@GNUÀrust
å³#rustc 1.96.0 (ac68faa20 2026-05-25)ÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁ¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0ÁhttpÁ,ÊbD´ßú^£ò´VÁûÌ-188e6a2896370f81ÁbytesÁ1ž;›¢¥³3t´÷¬-9ab8679fb35a705dÁitoaÁû”­eºùîÉ/Þ ÷ŽÚ<¯-8b71445f6e5565f1Á futures_utilÁ}h"gœ«ìj¾<G-a74bc5f08cd6c96fÁ futures_coreÁÔ #0€ŒlÏ/œ%áàæ!-54e00c79609f6de3Á
futures_macroÁboÆ$¾É æðGô}-cbbe8d74ceaf6376Á futures_taskÁ+ÓÅfÐ4Pú{-¸*1¨-dcd8a3e2825c89abÁ futures_sinkÁݬwÞÚ7Žª _°à\-005b1f0a7b5abe4aÁpin_project_liteÁc:ž“èqPÔ² låî-fa08336265b0d278Áfutures_channelÁ¿êû„ñ’ óÓ¹-89600126d4fe9190ÁslabÁ˜ìòͺܓ$® %ãÕ6-940e9d610b73c48bÁ
futures_ioÁµ] óŽe_a€FµwBM-52cc55b2510d5c5fÁì46¯¦ŒïõÅ’Z/¯-a454f505f30bc1f2Á http_bodyÁV)ïF´áÇ–ÒSAù³Ú†-9c184e2d77f3774aÁtowerÁLdé3¸¹×“% нÙ-a5a7981d8dbddd69ÁtokioÁ~í˜ÑFN­ˆ‘Û&ÕǬ‚F-2e8a35e14ae82399Á parking_lotÁ‘{%#NÕÆÇî×Âó³®-d304a3d2e3fa0badÁlock_apiÁ6JÂÉ–Coó;³u‰‰×}³-a58f13f6ba8e2585Á
scopeguardÁ±hú`Ã+ú=*ž)$ý-14a1bf74f002cc8bÁparking_lot_coreÁ+G÷-)¢3ñ6w ÷-96dda93fe1f45ff2ÁsmallvecÁ¥uÓöù¤_êÛc6ÃèÏ-57e80a5b3ccd3003Á®Ÿ=ê @Êq{0¡¡£ª-c28393f1568b0153Á`ãŒN€ZÛ:õ\-7ce82f3507212cabÁmioÁjUa?{`å3c@½åk«üj-e2adf0334040c489Á tokio_macrosÁÅm6‡Ä”蚬îAôGôâ-d13c5e580899166cÁsocket2ÁŒí”l.,.O¦Ýžw ê¸_-477bf62e8b01439eÁsignal_hook_registryÁóÓêܤÞß\ÏÍZ¤êk1„-0df3f4b575f2ad33ÁerrnoÁAX'2k$~t—üt]-06a2f72be8b8e935Á
tower_serviceÁ_ i²yÆúÕ8'ø6K©-426a99b575f4adedÁ tower_layerÁ?ܰ®¢‚VyJT;Öiæð`-037597086710a3adÁ sync_wrapperÁ€"8Êr'õ´]W-270be0f0464016d7ÁurlÁÈÞ[ã<lì·»’\.ÑO-34f06a7b5be4ba48Áform_urlencodedÁ™Ù¦)ž-´Ï«Bó¹«i8-b21a6453ec4c6027Ápercent_encodingÁÙSõU<Zj€ËfYê±-608213e915e95613ÁidnaÁ0òd7ÞVϤÉVQ^QzT-0b27c80ee15b2052Á idna_adapterÁå.2,
z+&润§;¥-3894fd78d4e7d69cÁicu_normalizerÁÓ¯J}Û‹q3n,BY:6*-1ff97b6300c65a3bÁ icu_providerÁfý ecVoÒ–×%aƲ-26ba06420635a5f4ÁzerotrieÁÖjxÄ’Rðo„u˜¤îm-8213996ed0004d51Á
displaydocÁ¯Ü-{6È€Ûù˜ˆÈ
|-e6cd9a7bbe869315ÁzerofromÁÚwóÌ77¬R„Jzðè-b5e12a50bee7a139Ázerofrom_deriveÁ#/\(Ûåè
•Ø‹
Ì÷-b0a52e57dcf964fcÁyokeÁC6€2N‹¢ ˜ox4å-693d60a54f4f9cdeÁstable_deref_traitÁÃ2¯c!#wõáÖZÛd¿-1053a3f8bccf45f4Á yoke_deriveÁÓ‚. I©]F@šÔ¶€~-2347d6299a9342ddÁzerovecÁj†o!AÒwþý"»c Z[-a26db0a583c313b8Ázerovec_deriveÁšÚ¾#Àµlþk¸Úéìí¨-e1300b4489bd91f1Á writeableÁŠÚZVd^GmÕĉé2ÏÌ`-eeb981e21830c22aÁicu_locale_coreÁóÍ>­‹ñ§  «©,Û
-f42a734f84d1ee3dÁlitemapÁ^¿V4êg"ˬçˆÅ2Qi&-4f065ea63c011d48ÁtinystrÁ¸˜›s-ªsV¯™j-c7a86e007016634eÁicu_collectionsÁ’!]úâ?ëòPÞQà™N-b882f5a5cafdd8d3Á
potential_utfÁP°g®œH rUæ™-b10cb335d8d170deÁ utf8_iterÁK——Ø]áR.ý#k-ed71523c288ce9d1Áicu_normalizer_dataÁð¯O´¥lȃb­_ls^u-2cc53e133ce07707Áicu_propertiesÁlÌ;Øßjyq.ê~žCs(-dc4cdd823550a516Áicu_properties_dataÁ“w‘ŠMXöù\ãmq˜õs-1181beec2790515cÁbitflagsÁ¨7AvÖb,* èh©¯³Ö-765f98ff397854cfÁ test_helpersÁd±6$¦6authÁ$á6»ò„Æ6
set_headerÁT7»
set-headerÁ´î6propagate_headerÁ„É7»propagate-headerÁä¢7 compressionÁ\ü8»compression-brÁÔë7»compression-deflateÁü‹8»compression-gzipÁä°8»compression-zstdÁäÒ8üå7Œ
add_extensionÁl´9»
add-extensionÁÌ9sensitive_headersÁŒò9»sensitive-headersÁìÊ9
decompressionÁl®;»decompression-brÁä•:»decompression-deflateÁü·:!»decompression-gzipÁôÞ:»decompression-zstdÁô‚;ü:”content_encodingÁ„µ> »… ÔÍ;»Ÿ üí;»¿ ä’<»Û ä´<»þ!äÖ<»š"üø<!»¼"ôŸ=»Ú"ôÃ=»fsÁtç=üÇ;çcompression_utilsÁŒõ@»… Ô×>»Ÿ ü÷>»¿ äœ?»Û ä¾?»þ!äà?»š"ü‚@!»¼"ô©@»Ú"ôÍ@üÑ>CompressionLevelÁ„ÍC»… Ô˜A»Ÿ ü¸A»¿ äÝA»Û äÿA»þ!ä¡B»š"üÃB!»¼"ôêB»Ú"ôŽCü’Amap_response_bodyÁŒŽD»map-response-bodyÁìæCmap_request_bodyÁ„ÏD»map-request-bodyÁä¨DtraceÁ,„E»…'ŒèD testsÁ,š$0 ',â$×K ',«$ X ',$~ ',ù ',ŸA$”A ',üb$ñblimitÁ,ìE»ª(ŒÐEmetricsÁ<˜F»Å(œúEcorsÁ$ÃF»â(„¨F
request_idÁTñF»
request-idÁ´ÐF catch_panicÁ\¦G» catch-panicÁ¼„G
set_statusÁTÛG»
set-statusÁ´ºGtimeoutÁ<ŒH»ü)œîGnormalize_pathÁtÁH»normalize-pathÁÔœH
on_early_dropÁlüH»
on-early-dropÁÌØHÀ ',âY$×Y ',™  usable_for_retriesÁ”Øe
$Íe
ëredirectÁDÿ »Ê+¤à ëRedirectÁDÎ »Ê+¤ ëü#ø »ü#tß ëServeDirÁD¶ »ü#tƒ ë ServeFileÁLÀ »ü# "builderÁ<ÎI»utilÁ„·I service_extÁ\ôI»î,„ÝIServiceBuilderExtÁŒÂJ»î,„ˆJ
ServiceExtÁTâJ»î, "validate_requestÁ„K»validate-requestÁäöJbodyÁ$ M»½)¼¿K»þ!äÜK»š"üþK!»¼"ô¥L»Ú"ôÉL»ü#tíL»ª(ŒMü¹KÜÀmacrosÁdefine_inner_service_accessorsÁ opaque_bodyÁ
opaque_futureÁfollow_redirectÁpolicyÁµ      æ BdÁ Â0Ê+
on_requestÁ
clone_bodyÁ 
clone_body_fnÁ$$×''''Ê+'Š1Ÿ1--filter_credentialsÁ0000000000 0 BLOCKLISTÁ0<æ <block_cross_originÁ< block_anyÁ<
block_noneÁ<remove_blocklistedÁ<
remove_allÁ< remove_noneÁ0D>0FFFÊ+Fù0limitedÁKKKKKPæ KR>KTTTÊ+
XXXXXX^^^æ aÂ0aXdÂ0ddddÊ+dù0dŠ1k  redirect_fnÁmmmmmmss×mvvvvÊ+mØ5{{ same_originÁ~~~~~~~æ ~×~Ê+ 
  
PolicyÁŸŸŸÊ+Ÿù0ŸŠ1¥¥¥¡¥Ê+¥ù0¥Š1¬¬¬¡¬Ê+¬ù0¬Š1 PolicyExtÁ³µ´¡´´³
¸¡¸¸¼¥¼µ¾¡¾¾¼
¡ÂÂStandardÁAttemptÁÇ'aÁÇstatusÁÇmethodÁÇlocationÁÇprevious_methodÁÇpreviousÁÎÂ:ÎÌ:ÎÚ:Îè:Îø:Î;Õ is_followÁÕis_stopÁØØØÊ+ÜÜÜÊ+ eq_originÁ 
  
 !"#æ ¡ with_policyÁФСŠServiceÁŠlayerÁ¤æ >¤¡ç=layer_with_policyÁ˜ReqBodyÁ˜ResBodyÁ˜¤˜¡˜ResponseÁ˜ErrorÁ˜FutureÁ˜
poll_readyÁ˜Ñ¢¤¢ÿ>¢Ž?¢¡¢°¢Š ¨ ¨ ««takeÁ«try_clone_fromÁ®¡®Š1±¡±± resolve_uriÁclassifyÁgrpc_errors_as_failuresÁÀÀÀÀÀÀÀÀÀÀ À
À ÀÍ into_bitmaskÁÀÏ÷ÀÑ÷ÀÓ try_from_u32ÁÀÕ>À׿ × with_successÁ×make_classifierÁÀÛ FailureClassÁÛ ClassifyEosÁÛclassify_responseÁÞÛclassify_errorÁàÀâËCâ classify_eosÁâ“DåÀç×Àclassify_grpc_metadataÁéor_elseÁé map_failure_classÁìììììììììõõõæ ìùùù×ìýýýNewClassÁýËCýßCýòCƒý“Dì±FËC¾D“Dstatus_in_range_is_errorÁæ  new_for_client_and_server_errorsÁinto_make_classifierÁËCßCòC “D¢¤× 
  
MakeClassifierÁ°
ClassifierÁ°ËC°ßC°¯C´æ ¹¹ËC¹ßC¹ÖI¹¯C¾ClassifyResponseÁÀËCÀßCÀòCÃÀ“DÅÀ¡EÇDZFßCÊËCʾDÊ“DÍÊ¡EÏϱFNeverClassifyEosÁÒ¥Ò
_output_tyÁÒ_neverÁÖ¥ÖËCÖ¾DÖ“DÚÜ¥Ü×ßæ ߯CâËCâßCâòCåâ“Dçé×servicesÁBoxErrorÁ AndÁííí¬í­ òòòƒ öö ùùù× ýýý> CloneBodyFnÁ±ƒ0FilterCredentialsÁñ2Š3«3Ä3blockedÁ0ƒ0×KLimitedÁ remainingÁKKƒKK×XOrÁ¬­X   ƒX¤¤X§§§×X«««>m
RedirectFnÁ¯¯±m²²ƒmµ~
SameOriginÁ·_privÁ~~ºƒ~~½>ActionÁ¿FollowÁÀ
¿StopÁÂ
Ń 
È×FollowRedirectLayerÁÊ¡Ê0̓͡ С
Ò¡Ò× Õ¡Õ>FollowRedirectÁؤءØinnerÁØ0 ݤݡ݃
á¤á¡ä¤ä¡ä×get_refÁget_mutÁ
into_innerÁResponseFutureÁë¤ëë¡ëfutureÁëserviceÁë0ëÚ:ëuriÁëÄëheadersÁë˜.÷¤÷÷¡÷×üý¤ýý¡ü__assert_not_repr_packedÁ¤¡ü
ProjectionÁ'__pinÁ¤¡V›V0Ú:ºVÄÍV˜.ü
ProjectionRefÁõW¤¡V›V0Ú:ºVÄÍV˜.ýprojectÁŸõWý project_refÁ¡õWü__OriginÁ£õW£¤££¡£__dummy_lifetimeÁ£V£V£0£Ú:£ºV£Ä£ÍV£˜.ü±õW±¤±±¡üMustNotImplDropÁü·¥ü¹¤¹¹¡
RequestUriÁ½
½ˆÀƒBodyReprÁÂÂÛÄ
ĈÂEmptyÁÇ
婃
ËË×ÀGrpcCodeÁΫÏ
Î CancelledÁÑ
ÎUnknownÁÓ
ÎInvalidArgumentÁÕ
ÎDeadlineExceededÁ×
ÎNotFoundÁÙ
Î
AlreadyExistsÁÛ
ÎPermissionDeniedÁÝ
ÎResourceExhaustedÁß
ÎFailedPreconditionÁá
ÎAbortedÁã
Î
OutOfRangeÁå
Î
UnimplementedÁç
ÎInternalÁé
Î UnavailableÁë
ÎDataLossÁí
ÎUnauthenticatedÁï
À À
òƒÀ À õ×ÀÀGrpcCodeBitmaskÁø
øˆÀ
û×ÀÀþƒÀ÷InternalBitFlagsÁ
ˆ÷÷ƒ÷÷÷÷Ö÷ï
÷÷§ù÷ ÷
FLAGSÁ__bitflags_flag_namesÁBitsÁ´from_bits_retainÁ all_namedÁœ ALL_NAMEDÁOKÁ CANCELLEDÁUNKNOWNÁINVALID_ARGUMENTÁDEADLINE_EXCEEDEDÁ NOT_FOUNDÁALREADY_EXISTSÁPERMISSION_DENIEDÁRESOURCE_EXHAUSTEDÁFAILED_PRECONDITIONÁABORTEDÁ OUT_OF_RANGEÁ
UNIMPLEMENTEDÁINTERNALÁ UNAVAILABLEÁ DATA_LOSSÁUNAUTHENTICATEDÁ©c³cÄcÓcëc„d•d«dÄdÞdùdˆeœe±eÁeÔeåe÷ À PrimitiveÁÀÇ_÷ Ã>÷
Å×÷Ç×÷ÉÉþË ÷ÍÉ÷Ï÷÷Ñbits_mutÁ÷ÓemptyÁÓ£Ó´Ó from_bitsÁÓfrom_bits_truncateÁÓïbÓ from_nameÁÚ¹bÛÓis_emptyÁÓis_allÁÓ
intersectsÁÓcontainsÁÓinsertÁÓremoveÁÓtoggleÁÓsetÁÓ intersectionÁÓCÓ
differenceÁÓsymmetric_differenceÁÓ
complementÁÛ©cÛ³cÛÄcÛÓcÛëcÛ„dÛ•dÛ«dÛÄdÛÞdÛùdÛˆeÛœeÛ±eÛÁeÛÔeÛåe÷û×÷ý×÷ÿ×÷×÷ƒ°ƒ±÷²÷ˆ°ˆµ÷÷°¯÷°÷°Ú÷Û÷ °
÷!šextendÁ¥÷"ùž¥ž÷#¡ù¡
iter_namesÁ÷$¤¤IntoIterÁ¤ê÷%¨•h¨£¨´¨²h¨Ãh¨ïb¨åh¨ƒi¨“i¨¡i¨³i¨Ãi¨Ñi¨ßi¨íi¨øi¨C¨“j¨¥j¨Áj÷&½×÷'¿×÷(Á×÷)Ã×÷*Űű÷+Ȳ÷,ʰʵ÷-Í÷.ϰϯ÷/Ò°÷0Ô°ÔÚ÷1×Û÷2Ù°Ù
÷3ܱmÝ¥÷4ßùà¥à÷5ãùãîm÷6æænæêÀGrpcErrorsAsFailuresÁê
success_codesÁÀì×ÀîƒÀGrpcEosErrorsAsFailuresÁð—rÀò×ÀôƒÀGrpcFailureClassÁöCodeÁ÷
÷ˆö½?ú
úˆÀý×ÀParsedGrpcStatusÁÿSuccessÁ
ÿ
NonSuccessÁ
ˆÿGrpcStatusHeaderMissingÁ
ÿHeaderNotStringÁ
ÿ HeaderNotIntÁ
À×ÀÀŽÀÖìMapFailureClassÁÏT±ìƒìStatusInRangeAsFailuresÁžrangeÁ ×¢ƒStatusInRangeFailureClassÁ¤
StatusCodeÁ¥
¥ˆ¤½?¨
¨ˆ«×SharedClassifierÁ­­
classifierÁ°°×³³ƒClassifiedResponseÁËCßCȹ
¹ˆ RequiresEosÁ¼
¼ˆ ¿ËC¿ßC¿×ServerErrorsAsFailuresÁüR
Ń Ç× É>ServerErrorsFailureClassÁËúvÌ
̈˽?Ï
ψ
Ò× LatencyUnitÁÔSecondsÁÕ
ÔMillisÁ×
ÔMicrosÁÙ
ÔNanosÁÛ
߃á×






&
&
&
'
+
+
+
,
,
-
I
I
I
J
J
W
W
W
i
i
i
j
j
k
k
u
u
u
v
v
z
z
z
{
{
ˆ
ˆ
ˆ
Œ
Œ
Œ
¢
¢
¢
£
£
¤
¤
¥
©
©
©
ª
ª
«
«
°
°
°
±
±
²
²
Ð
Ñ
Ò
Ó
Ô
Ö
×
Û
Û
Û
ß
ß
ß
à
à
Ž
 
 
 
¡
¨
¨
¨
¨
­
®
®
®
±
±
µ
µ
Þ
à
ä
å
è
è
è
é
ü
ü
ü
ƒ

Œ

 
¢
¥
¥
¥
´
´
¾
¾
Ã
Å
Ì
Í
Ù
Ú
Þ
Þ
Þ
å
ç
ê
ê
ê
õ
ü
ü
ü






š
š
š
£
ª
ª
ª
´
»
Æ
É
É
É
Ï
Ô
Ô
Ô
à
ç
ç
ç
è
é
û
û
û

Á
Í
Í
Í
ó
ö
ö
ö
ü
ü
ü
ÿ

Š
Š
Œ
Ž
Ž




š
Æ
Æ
Æ
È
È
È
Ë
Î
Ò
Ö
Ú
Ý
Þ
ß
à
á
â
ã
ä
ü
ü
ü
þ
þ
þ







Œ



¢
£
«
¯
°
±
²
³
´
µ

·
¾
¾
¾
À
À
À
Â
Â
Â
Ä
Ä
Ä
É
Î
Ó
Ø
Ý
ä
å
í
í
í
ï
ó
ó
ó
õ
þ
þ
þ
Œ
Œ
Œ



š
¡
¡
¡
£
¬
¬
¬
²
²
²
µ
Â
Â
Â
Æ
È
È
È
Ó
Ó
Ó
à
â
â
â
Ÿ³°ÀÊØííèMð¬ ñ­ lóòË·K'9Š ¤ˆ¿c¤ˆ³¤ˆŸííèMð¬ ñ­ lóòË·K'9Â0ØùNƒ±<Ú¿HiÚ_hŠ ç‰¿c牟ç‰âˆØ»OŠñ20Š30Œ«30Ä30ŽôO0ß_б]__¿cÌŠ³ÌŠŸÌŠÚ‰ÛšP©PKVEü;°Þ¢Ø׋Š ׋¿c׋³׋Ÿ׋ƋډØÙPž¬XŸ­XåV¯Êß½<܈∊ ÊŒ¿cÊŒ³ÊŒŸÙPž¬XŸ­XåV¯Êß½<ȉΉÔ‰Ú‰Ø¯¯éQ±±mÁGû‡Ñví”ŠŠ Ž¿cŽŸ¯¯éQ±±mÁGû‡ÑvíÆ‹Ú‰Û··ªR¸¼R~¸ÙM3üOŒØŠ ³¿cŸÆ‹Ú‰Ÿ 8¡âˆ¿ŠŸžBoxÁ¡ˆˆ¢ˆl }.xÏ¡çEçEèEGlobalÁ ¿±‡§í#Ƌډ³¥Û¿ÀÁõRÂÈS¡º‘.4DØ®‘Š ®‘¿c®‘Ÿ®‘ƋډŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
®‘ډƋډØÊʸSÌ0({$Võæ‘¡Š „“¿c„“³„“ÊʸSÌ0({$Võæ‘¡¤ØØØ©TÛÏTÜ0Ò¥¨Gs³ªk’”Œ”Š Ÿ”¿cŸ”0ØØ©TÛÏTÜ0Ò¥¨Gs³ªk¤ôôRequestÁöheadÁ¦÷˜.¦ §ŠkÂDÿ>¿cëëßUïVð›Vñ0òÚ:óºVôÄõÍVö˜.aµqlÏÁ?O’”âˆà“íëëßUïVð›Vñ0òÚ:óºVôÄõÍVö˜.aµqlÏÁ?O¤¡‘‚ØëëßUïVð›Vñ0òÚ:óºVôÄõÍVö˜.aµqlÏÁ?O’”ÿ>ؽ½¾ï[¿ˆ
Ï`¦&諸¿cÂÄÅÛÆˆÇÈÆ\ÉÊ©Øì[49ZzƒÆ‹ÛÎÏЫÑÒ–]ÓÔ¬]ÕÖÀ]רÜ]ÙÚù]ÛÜŽ^ÝÞ¨^ßàÅ^áâã^ ãä‚_
åæ–_ çè­_ éêÇ_
ëìÜ_íîô_ïð‰`($ä™.¸¼ØæšŠ æš¿cæšéæšéæšô ô õ ¨÷ ˆÐ  mjçítoé¿cøøùÐ`úˆÀ TMf™ÓÏÛ‚žØ‚žŠ ‚žÛ˜aƒˆÀ íÖƒÞèH5ØÜžŠ ÜžÐìÜžµßܞܞܞíßܞܞºÜžšeÜžM{‚ž‚ž³Üž¿cÜžÄcÜžïyÜžàÜžéÜžÈcÜžÆcÜžÊcÜžÌcÜž–úܞܞ•˜ÜžÜž¶ûܞܞ̘ܞܞöøÜžÜžÞ—ܞܞïܞܞœöܞܞ•!ÜžÐLܞܞÃLܞܞÇLÜžÈc‚žÆc‚žÊc‚žÌc‚ž–ú‚ž‚ž•˜‚ž‚ž¶û‚ž‚ž̘‚ž‚žöø‚ž‚žÞ—‚ž‚žï‚ž‚žœö‚ž‚ž•!‚žÐL‚ž‚žÃL‚ž‚žÇL‚ž¿cêêûqë—rÀ-#ÑÅÊ3Ø•¤³•¤À•¤¿cððÆrñ—rÀXt„dö³sØë¤Ê뤿cö÷øŸsùˆúû½?üˆî÷–«e¯Äc¶¥¿cÿòsƒ†tˆ¥tˆÉtŠåtÇþ]ÀèGÐ즵ߦ¦¦ØªuÏTì±ì'úÞڵ܇cŠ ¯§¿c¯§À¯§Ê¯§¿cžž“vŸ²v‡qùúWªØ¨¨À¨¨¿c¤¥¦úv§ˆ¨©½?ªˆzÏɦæ…ÍÄcó¨¿c­­»w¯Ûw1RýÑªé§ØÍ©°Í©¿c¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúVËCßCÊÒÒòKÔ’LÕ¤LíjöUç&Ž¡‘¿c÷ªØÃÓyļRÅÀŠˆZ¿cÇ«³Ç«ÀÇ«¿cËÌÍúvΈÏн?ш ¶$æm‰dÿÄc¬Š ÔÕÖÈzרÜzÙÚïzÛÜ‚{^;Ã1J—÷Û÷¬Ø÷¬¿c÷¬òí ²¯º·Å¿ÍÊÝØÀ½òÎþøîêô𢞳­ÅÃßÔö혤µ¯¼·Ç¿ÐÊáØôÎøÝÔùí$§s¯·È¿ÒÊäØ÷ëËÂõÎûøÅìêòðýöÿù ž«¤°­¿ÜÒÇÃÒËáÔýíDR«½·ÕÊÃÕêÉÃí'FTdv¯·¥
¬Ø¿ÜÖ¿¹·Ä¿ñÎýøÞÔ¼ŠÊ˜Ø±ë·¹ë¢ëÏÎÑÎψÿŽÿÿøÀøÇçö¤¤éËÉÍû½øý¿øÿÁøÃøƒÅøÈøˆÊøÍøÏøÒøÔø×øÙøšÜøßø¤æøÛêýžâÃâðÖÒ¹­Ø¸Š ¿cb³ Ÿ =ÛF³11Ú0“í‚Ø
éÐìµßíߺšeM{ÄcïyàÈcÆcÊcÌc–ú•˜¶û̘öøÞ—ïœö•!ÐLÃLÇLÀʰ
 ܈
Ù܈3;
 �
Ùâˆ4=(
Ô í܈âˆ
Ø 
ÙNõ\¤ˆh ¤ˆs܈û ܈âˆÐ âˆÛ£­µ¸7õ¸ÿ܈¢  ܈ ¿c  âˆ!-†»(áª
ûc¾ (Í÷»«°à÷»ŽVå æüÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ È½? éBLû¹
  c cˆ¢cµ
 `£cbufÁ `àB¤GS
T†»ÒŽºÛ†»¯ ¢º»¢ºÄޱœ§Žº†»*Ǿ†»ÿá»Æ  
´܈&  ®
´âˆ'8è í܈âˆî ïN\¤ˆh܈Å∣»¿Þ忺܈s í܈âˆÆü»¤ˆ܈ Ô∠ڬ­G
ăȉ%
¢ȉÔ‰Ú‰=<“ŒŠ šbôý  æ 똫®‘A ΉÄÀÔ
¢ΉÔ‰Ú‰?ŒÇ × üý!ü°Í Ÿ’Œá  Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖŸ’÷ ȉû”ª Ήb¢attemptÁR¬ÌÒÂ`‹ÄŸ’PŸ’WȉÔÁ
£ȉÔ‰Ú‰?œÈ ÚΉÔåò
£ΉÔ‰Ú‰?œì þüƒƒ¤ÅL‘ ôôÇ”ö×”¦÷˜.¦ §ŠkÂDÔ‰žÆ=̼ÆñtrequestÁ?«ÍÇa©È ¼Äȉ$, 
¤ȉÔ‰Ú‰<„Ë ÚÔä , Ô‰Ú‰ȉΉÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÔ‰    Ô‰ åüÄ;4

×TÔ‰Ô‰Ú‰ȉΉà˱Ìd üÜ# þüŒyå˵̾ÌåËÆ ȉÊõÌz³Ìƒ¼ÌŒE˜.HuãÊëÌö³Ì$Ή¼Ì¼çŠ 
¤ΉÔ‰Ú‰xG„î ýþmåËæõÌ ΉÇ³Ì˜µÌ¡¼Ìª¾Ì³$›³Ì˜.u¼ÌßÁÏË
_ref__selfÁ
_ref__bodyÁ Ñ  ”Š 
Ù”Š5=(£ ”Ч ¨ 7ç‰C ç‰N”Š ”Š¢jtÌÑ¿ìÉ R

÷c É h
 ÷» ÜË FÜÿ Ô€ ýåü&`
­&”Š÷»÷»2>†»üÉR é

Ù`¿ÿ
÷»ú üô'  š üÉh 8
à`j   · &ü†± ý«üb`«&”Šü ݼ ¬Ò, å½   Í`Í` DebugStructÁÐ`×µ`Ñ` µ`Ò`
has_fieldsÁµ`ã¹q·Ù›ß¨9éÕæëÕ¥ ÷»±÷»²¬±¯óÏ­&”Š÷»÷»‰ÓMëÖ†» ÔºïÔr”Ø Ö¿®‘¿ŠÊ®‘ð +ü‘_ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
®‘¿ŠŒ¼ ç‰L ±Å ¨  ”Š  º
’"”Š¢ºO:B ¹ À ,üöJ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ∠¬Ò,„ ¢º$‹ ¿ÒñûÙß%˜.(šñÙ Œ­ ”ŠÀ -üÒn ç‰ ”Š í ± /(ÌÑ"ÌŠ. ÌŠ9BL
ÙÀþ Ýxœ ÝÀ± ÝÏ ÝhåÀþ †»xœ †»À± †»Ï 
 
†»hå  

 
+  †»(Ó
d ª÷»'¸÷»!Í ÷» â÷»ñöõ
÷»Ú ß
÷»Ã È×
   !ØÐݼÜÿÜäå½ì†»Ú 䆻øá̆»«¸á´†»¸áœ†»{ ¸á¸á\±ju¸á†»i¸á†»I¸á†»)¸á†» ↻éÍß²ü˜T ; ëë
HeaderNameÁìÏTÃ.àƒ
Iivƒ 
 ã ëü÷v;äãÎãÖŸãü™S ã¬Ÿ ã ãÜÎãg*Á ã,Ï ã.ä ã^fÁ ãiqÏ ãt|ä ã¨  ãœ«;ãÇŸãò ãï ãí ãëï Á ãÏ ãä ãü¥Â š¥°í=ü†çÌŠ$–ü€ ´>ü¼xÌŠÌŠýC¬¨ Ñ ?üûVÌŠ$™ ÌŠ .´Ä
õ  ˆ @ü–
r>Ìé
ÌŠ
ÌŠ
 =ü·

ë
Aüó xÌŠ
ÌŠD
4—
ýC´é$‰Bü»XÌŠÌŠ .¼‘ ˜ÖCüâtAÌ·ÌŠ$‚ÌŠ = )4?J³Eüƒ0¢=ÌŠ$“'üÇm0ÔE¼æü‚1lÄ3 ¸¸UriÁ¹schemeÁŒ º authorityÁŒ »path_and_queryÁŒ ªª¡•¦Jl¯1Øðª
à”Œ” »üåOÙü2 ²8 ³{ü¸|*”¾ Ö¿®‘Ú‰Y®‘ÖIüëëü˜3?ÔT”üƒ1?Ò Ÿ’Œœ ÌŠ±Å<20ôÔØð3Øð5CØÅG áñ

µºqûûPartsÁüÚ:ýºVþÄÿÍV
extensionsÁ¼R¦¶^Èëý‘ƒæ
æ
HeaderMapÁè
maskÁé
indicesÁê
entriesÁë
extra_valuesÁì
dangerÁ_V$ð.
¡œºº HeaderValueÁ»ÏT¾¼ is_sensitiveÁ¾®>úžëÁ|Ø
5ˆ÷< <•¼´é 
 ;ä,

őe 
ŸX%  Å•X%  § ïíe¼îËè¿*ä^emÇš% ýÕ€$%
  ä½Çš%   ã
Ýš% ý½š"%
 § ïíe¼îËè¿* ãŠ
¯eÍÌe e ˜
žúý¾ºO€!
âe N   ã
äe ýô.e
 Äl ã
Ø! PhantomDataÁFu\»Ÿ  ãÕÜ
 øÑÞQ &-4;¼2i¾úç2iØûùƒÁ;CiùƒÈ;<i ¾úæ žúu¿¤% žúý®¤%
̤%k  œ  Ñ® ü ¼üèÕ ü™®
 ÆÍ ƒÈ<iT[bip{ ü±ŒA—>iý¯Î(% Ó#ý¥Î3% ¾ú
×Î%©ƒŒ>i¾ú ƒ >iÕÏŠ%!Mè'O# ØûåÍŠ%!
èŠ%!¹ƒ±@i Û¼ÀüX_fmtâ
ÛÀüœ‰ 
Ã$
kˆ÷Àü<‰
˜ \‘J$üÜñü·ÝäýópcÓÆ‹ýú=e½l ã"ý’G,“t ãeý¢eÔl ã5ýÜÖeýû·eýý¯e ý®W‡% äaý²™µ%¯ä ãý†~û% ªäEÌš% ýŒÌ`N ´ ã½­eýÚÙN¸ ãåÎÌNQ ª ãeýí¯ø
O é ãeùƒó0õi‡Í ãLùƒ²2¶iùƒÖ2’iùƒí4µiý¥.çZâ ã‚5iý˜@ZÛ ãe÷1Zų̀ڡ!»Õƒú8iý¬*ñFšî$Fùõ¬Þ[ÿÝùõ“á4¸ ãùƒß8,iý¤R%û ãê ãE³¤%˜ª ãEŤ%ý—ËÉ%µ ã›>i̪ ãEÇÎ%ý߈%« ã¼@i!ª ãEÔŠ%!ý´'CO!È ãeÝŠ%!Žæó ôôÇ”ö×”¦÷˜.¦ §ŠkÂDÆ‹;
‚öÔ³ÄlÄlIterÁÇlµ ™lÈl
end_or_lenÁ™lÉl_markerÁ™lŒœjSž ãÐÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÀü Àü¬Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙˆ÷âä~ ¾úÿe®ùb ØûUe žúyžúy ämŸX% žú ‰ú1 ¾úƒ¶2iØûÚ2iƒ¾ú¾úqÀü‰ƒ¶@ižúm®¤%žúžúØû2!I„ÉÍV ùh
keyÁü
ªs
;äe ãÉ4i ãø
ú1þŠä
Ús ãe
³Öéýˆ%F("'׋4 ׋?HR®  ,†»(½+
ùcÑ+ ÷»'ß+ ÷»tyB šhݼtþŽ|彆»Ë  Øøàª±·Áö†»
ôÕÔÄ äQü›I׋¦maxÁ1g-׋ŒSüÒºvQ„ö׋'”„t„ ‹-A œ¥Î-”Æ Ö¿®‘Ú‰ý-®‘üi„ö Ö¿®‘Ú‰9.®‘< WüºÜŸ’Œå ׋±Å Ñ88$K Š ܈ä.µ¸/7  âˆ/õ¸/8(Ò ܈âˆÖ ×N£\ÊŒh ÊŒs܈òŽºúâˆÇ¢ºÏœ¦µ¸'õ¸ó܈ Š ܈†»  âˆ!-†»(ßu0á»…0
÷»#“0÷»¢¦0÷»Qã äª}ݼ֗彆»
Žº†»óǾû¢ºÍ±Ú䎺†»]Ǿ†»;á» Š ‹1»¿   ¯1å¿!8æ ܈âˆì íN®\ÊŒh܈¹âˆ»¿Òå¿´܈s ܈âˆÁaü·ŠÊŒ܈ Ð∠֬­G
Äýȉ%3ÒÂ/<Œ„ Tô÷  ç 슫®‘A ΉÄÁÁ3‹Ä1ŒÈ Ø ýþ!üªÔ iŸ’ŒÛ ²±ÅŸ’žÆ„¤¼ÆôAØÅE¬WŸÒÂ܋ğ’蟒îȉÔ 5ÍÇ1œÉ ÛΉÔæY5©È1œí ÿjü„ƒ·ƒ¡L’‹É<¼žÆá}¼Æ¢3„É7dÍÇþ©È¼Åȉ$<6ãÊ.$×„Ì ÛÔå , lÔ‰Ú‰ȉΉàË  ²¼Ì æüÅ;ã6
×TÔ‰lÔ‰Ú‰ȉΉàËæ¥üÝ# ÿküyåËê¥,›¾ÌåËdÿÍe¤¦#è¥,¼Ì5B˜.Erãʳš¦òè¥$Ή¼Ì¼è58ÁÏj9„ï þÿlåË礦žÐè¥0ê¥9¼ÌB¾ÌK襘.a¼ÌwÁϺˆÐ•Ð Î
 ”Š9ÌÑ/7(¡
¯”Š¥
¦
´7ŽC ŽN”Š¿ÒgqÌÑäÅ
Ñ9‰Ó Å
ã9
÷»
ÔÇ
BÜú
Ôû
{,„,­&”Š÷»÷»/;†»üÅQ
a: Ô²q:÷»õ
xüï'
 
üÅg
ª:ïÔ^
 ±
²
uü‚°
l,«&”Šé ݼ
®«,‰
å½ 
éÕËéÕpëÕy†»3ëÖ<÷»=J±MÕ-­&”Š÷»÷»‰ÓÔëÖ†» ÔHïÔ
üŽŒí
 ë;
•"üޱÅP:B ý

zü d
Ÿ’ŒÑ
ÏŽ
±Å
 ü޳¬° (ØÅ,\¢°Ë„Ì
¯”ŠÞ
{üß
Žl
”Š ø
± /»(Œ  )3  ¾8 ™ù­5/‹êH ¿&-¼üˆ4V¾]‹êW6üÔ1ú!Øð”!Øð/=>áñ”Þ”òRX”” Ö¿®‘Ú‰‹>®‘üÑ„Ä Ö¿®‘Ú‰Á>®‘6 ÝäŒü„àz!Ôx!ÒŸ’Œµ L±Å<›;ØðØð.ØÅ2áñyÏ£ü™6Ì  ôôÇ”ö×”¦÷˜.¦ §ŠkÂDâˆT_requestÁ $“ ۼ∤üÜA¿ÚLÿ ç·¢º_bodyÁMÔ¾Û@
¢âˆ¿Š2ŒÇÞ©üñm¤ØŒ¢  ±ÅåºØÅ!T’º§ä¡A
£âˆ¿Š2œªÃªüä_ãºó·åº„É!MÔ» DÿÌÿkB
¤âˆ¿ŠE$“„ˆ ž«üÉU¿Ú 庢º §åº(˜.+[¢½D¿UniqueÁ žúˆ8Åá™-Ýñà§ ïíe¼îËè¿*à  àžÔ¿ÚC
¢àÆ‹Ú‰ÐŒÈ Øß°üòmŸ’Œ£ Ÿ±Å<‰ à2î¿ ±¿(1ØÅ5e‘ÀÀë¾±¿ î¿-ä¢âD
£àƋډ_œ« ½Ä±üå_êÀΈÁºî¿±¿$-„É1]™Â¸D€ë¾±¿ î¿-Ì€áE
¤àƋډ^$”„‰ ˜Ÿ²üÊUÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÆ‹ Ÿ Æ‹ àî¿#±¿+4˜.4¬˜Ä„B í¡‘Œ”à(¾üÀ' B¡‘Œ”˜¬Å(ííèMð¬ ñ­ lóòË·K'9¡‘Œ”dã'¡‘$Ð'Œ”,Ö'¹
£m ¡‘Œ”ƒ*Âüæ(va¡‘Œ”˜ðƤé)ÙPž¬XŸ­XåV¯Êß½<¡‘Œ”\ˆ)¡‘$õ(Œ”,û(¹
¡\µ/œúvˆÖ SÝ2§:ùãÆ/Ðüˆ/>óÉT /±Å,–/ .\´0 ¥¥¦MethodÁ§ˆÔ _\æØ†ÆØ×Å0Ñü‡0>ƒËTŸ0±Å,•0 .L-ØðÂ1Òl,Øð<1±Å,“1 ˜,¤Ç2ƒËá2Óü‘2PƒËT²2±Å,¨2 .†.Øð×3ÔB-Øð<²3±Å,¨3 n-(!5!‡5Æ"®‘. ®‘9BL(#5 (.K÷»#“5N¯K÷» mËK
êcƒˆP#”5É­ݼ¹áÎÁå½É÷»ÑØá±îø‚Ð$Ä7t³7LŽ8Öü‚7ŒäÉ7$7áÎ,“7\<$Œ9dý8
MÖ9×üÎ8ˆä‘9$ç8áÎ,Ý8\<,Í:LÊ: Ö¿®‘Ú‰ Ò:Ù:Ûüƒ:VŸ’Œ®: ®‘L:±Å š:®‘}C<ñ;%Â÷U¼÷39þ;=
ý÷Ú‰M‡ø ™N
ÙÚ‰
‡ø=‰øMá÷Ì«®‘mÞ÷ Ö¿®‘Ú‰
ê÷ uƒø Ö¿®‘Ú‰
ø ßü¥;Yýš÷ˆ \®‘Ú‰VµÕ÷Åù÷ŽÆ=ã÷Ÿ’ŒÐ; Ÿ’L±;±Å ¼;-Õ÷®‘ Ú‰qÚ‰_>©ÐÕ}H$—! ±“3P
Ù±“5=($Æ  ʱ“Ï7„“C „“N±“ ±“¢jtêØ¿H&—! ±“!-†»(&Ó #Qô3Q÷»#AQ÷»qv>&×  ÔdݼpÊÙx彆»È ÝÙÓÝÙÛ¤±±»ØÛ†»ôÏH'—! R
´±“&8'Ú  ʱ“×7„“C±“uR¼Üôú# ʱ“ž$üÊ#T„“$ë#±“4Ý#0 /,ô%œû%\û%Œ”$,S
ÙŒ”4<‡& &ü€-  Ø’”Œ” Ž&•&ü£%r%Ž!üÆ,`’”Œ”üØ%7Ÿ”lÀ% ß“,¬%’”,³%’” Œ” Œ”3ÏT6ŸãÞ8’”Ê@(÷' ’”oT
Ù’”5=H(…( Œ”°TãÞ/8((±' Ø’”Œ”(µ' (¶'Nà\Ÿ”h Ÿ”s’”ø ’”Œ”˺àÓ ª¦á1ãÞ÷’”Ÿ@*÷' ’”†»H*…( Œ”!-†»(*¾'
Vá»V÷»#(V÷»¢;V÷»Q*Â' *Ã'ç}ݼçâ彆»
ú↻ó ºàþºàбÝçú↻`ê冻>á»,¼)œÃ)
5W
´ííèMð¬ ñ­ lóòË·K'9׋ÌŠb6 Ø’”òæ Ö)Ý)üƒ)Z%!4’”òæüª)-ØØ©TÛÏTÜ0Ò¥¨Gs³ªk’”òæ$›)’”,Ž)’”Iòæ?ÏT´ìæ^’”ßÔ™+ŸX
¹+üé*PÊʸSÌ0({$Võæ‘òæœû*EÖé~Ë Ø’”Œ”¦-Ÿ”$ñ,’”,Ù,Œ”4ã,ÏT0ß! ÊŒ”Ö/üà.v(Œ”ü¨/(ß“´‡/Œ”4ù.0 DX+¼’”èø+’?úâçâ(+¡ 1x+Í’”éø+›K ’”0+¸ Ÿ”H+ª 7P+Ú’”Œ”êø+¯?’”Ÿ” 1Œ”cT»3³•Ì»3£[
0 ³•½•:Ñ3tÆ3 Ó3Ú3 üá2yœØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
³•½•0
ì“3 û”Lï2 ÌÌkÎwakerÁ¸Ï local_wakerÁ¸ÐextÁ¸Ñúˆ¸Ò_marker2Á¸f'EwÚ]¾åú2 ³•§cxÁ&|ÚïÓ!<¬4±[T¶4³•”¶4±[
Ù³•6<Á4 Ç4\Ö4ý&X³•ç†X³•T˜5\¥5œ¥5±[
Ù6
<±5 ·5DÆ5tÑ5±[ ‚–$é5

U²z ‚–<‰6 üé5(±[
®‚–ºñ
\ Tý5 ? üî5# 6
46D­6Ü›6±[
£‚–ºñH8
¤¢6 µ6¤å6
   Š 
—õ…˲ ³´OptionsÁµGetÁ·¸PostÁ¹ºPutÁ»¼DeleteÁ½¾HeadÁ¿ÀTraceÁÁÂConnectÁÃÄPatchÁÅÆExtensionInlineÁ LjÔÈÉExtensionAllocatedÁ
ʈÔ0Â5*õ͵G
 
l´7Øg—õóóôVersionÁõˆ²  <éè––FܬØ7•Ôm—õ‚ö#±[
Ù‚ölØ7
<æ7
$û7±[ü•8Œ¢8<¢8¯8±[E±[
0
³•½•XHLª8 ²8 úI³•½•0 OneshotÁº\ö=ˆÈŽg³•½• ³8<Â84×8üÀ6¨ 볕‚– ç8 &, í8î8R b
r `
püà3ŽŒ œ ¬¼  Ü   ¥ çà  ŒŒ7ub—õÚð#±[
ÙÚðLŒ7 <7÷
‘Šª
 ! #IÈ?
"
#—õ…Ëß÷Ôø
ååæAllocatedExtensionÁ爚 ªZƒ× ·-‡ž­¡ˆˆ¢ˆl }.xÏ
æ¼
±[
ÙÇ‚#Ô" Ýð —õ…Ëß÷ ŠŽ 

 ²-
5
 ²I
Q
 ²e
m
 ²

 ²
¥
 ²¹
Á
 ²Õ
Ý
 ²ñ
ù
 ²

)Ú>
! å" Þ>
"; #@  ²
!H !Q
¡:ü¨4ÆüÒ4œü”5ÚüÂ5¬ýîÿXÛ³•üä4&ý‚†Xýz3Ö‚–46ý›\AÌ‚–Dé6k©<ò6 Ì 



  é-
«= Ûã 
ýìa8΂–,7ý­gBЂ–L¸7ý™mSÒ‚–LÜ7$ëëßUïVð›Vñ0òÚ:óºVôÄõÍVö˜.aµqlÏÁ?O³•‚–d‘4ÎñLè3½•<ó3³•M  ³•D ³• Ö
’¾×
ÂÄÅÛÆˆÇÈÆ\ÉÊ©Øì[49Zzƒ‚–ä

 ¥ŠÆ
‚–q
’¾²
=
åºl
 ½•c
…Ë
ÚðdØð2Ëúµ‚öi ‚ö:¥Š2úIýIþILeftÁÿIˆ€JJRightÁJˆžýb]
†÷“ýýjýjëòk½•_³•œ"ß÷ð
ç
‚‚ò
Ç‚ê
Ç‚ö
ïreqÁöVG
›Vñ 0Ê ˜. 'êóN
òôÍ ö8 ûöÒ œÙ²ûÊ ÏüV ¥Š‚öÚð#…Ë*ÿ³•¥Š
½•›ƒÀ
ÙÑŒ«>
ÙŒÇ>((3¾9á3“» úIýIþI•‹ÿIˆ€JJ²‹‚Jˆžýb]
†÷“’”õ·0 §üº\ö=ˆÈŽg’”õ·¨†»¹¿ ’”Ñ †»â
è àú
 †»  
…Ë% 
†»7>ÚðQ†»cjËú}†»‚ö©†»»ÂÉÂÄÅÛÆˆÇÈÆ\ÉÊ©Øì[49Zzƒâˆ-:†»U †»
3Â9  !
'-®» 
†»ÑØäû’”âˆà ÷» 
÷»±[
ƒd0±[÷»?EKTÞäê3Ã9û~ݼ ¥å½®—•· †»ÑŒ—Ú†»Ú ðæ†»ïúâø†»ÐÅ
†»ƒË†»%Øð.†»7 ËúC†»Lò‹U†»^  ¯“m¼˜vÝ•ˆ± Ñ ®´û’”âˆàÉ•¼ÒÛ ¶—†»àú↻êÐņ»ôƒË†»þØð†»“˜†»ò‹†»º˜†»&ó•69B÷»N\e÷»qˆ÷»¢ «÷»· Å Î÷»Ú
 è
ñ÷»ý 
 ÷» 7 ÷»<÷»
 fuûɕ˕÷»÷»¤÷»­÷»÷»¿÷»È÷»Ñ÷»Ú÷»ã÷»ì÷»õ÷»þ÷»÷»!
!Ióˆ  1Iåˆ ð ’”+ à> …ËQ Úðd Ëúw ‚öŠ  ¯“ùJùî-
}¥ž
„¾ ðùI—‰é ’”âˆà
 IÿŠ
I˜‹ŸùI•‡ƒùI؈ýÁ÷UŒYiIøˆýß[öXÚŸÓ ãWŠV›VŒ0Ú:ŽºVÄÍV˜.?#P£jR ’”âˆàùI‡ˆ)„¾„¾PinÁ†¾ ˜X$]È=„kt•—ž!IŇÚŸMóíVÁ_ …Ëk Úðw Ëúƒž‰Œ ¯“˜„¾„¾²¡†¾ ˜X$]È=„kt•ÚŸ6—žô ¦Vó›Vÿ0 Ú:ºV#Ä/ÍV;˜.G )x&Dˆ?$“?® ŘL˜?z{|}~ &-²z®úIýIþI•‹ÿIˆ€JJ²‹‚Jˆžýb]
†÷“’”ôôÇ”ö×”¦÷˜.¦ §ŠkÂDÙ0 §üº\ö=ˆÈŽg’”²¦Ž{®’”£|®¸}®…ËÍ~®Úðâ®Ëú÷®‚ö
®ÂÄÅÛÆˆÇÈÆ\ÉÊ©Øì[49ZzƒÙ×Ó „¾ á¥zÑ ’”Ù{|}~Î_gov~}}|{z<¯?ðÒÀ?ìÀ?¤À?DÌ?ƒ%õY€ƒ„¾„¾²¡†¾ ˜X$]È=„kt•«©«©å „¾«©ƒpƒ±[
„Øá¥šÚ?DÕ? Ü?ÉÐ×Þˆ%Õ=óUÏ=óQR±[ Ÿ@ä…@
½  @üé?9±[
¡
Ô™ ¤é?
B Püþ?$ ¡@
 ¢@ P |±@\Ã@W‚£1#9#0$Wß÷D$ 
`_^]\[ZYXWV <¹J ¼J  x±[ .  Ö¿ˆˆ­?Š×”˜.gd™&¶ð¸RŽ?’”²¦0
 ¿J ¤­J œØÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ꮫ¯ ÀJ  ÌJ ¯±[ <ŒÑC ® ¬çF ¯ ôÏI ³
ôðI ´äòG dòG X‚£dH T
¨’”Ù¥¯ƒËuM"*
+ +Xß÷+&+Tß÷;+±[
·ßß÷ß÷Y_”bEiä‚E dE Y‚£dE U
¨’”Ù¥¯ƒË¯,¶,Yß÷É,˜Ð,˜Uß÷å,±[­²ø˜þcEdµE Z‚£ Z# [‚£3 [\ÄEâ…Ë|òE   ÂÙTåE \ ½¨ \Ž ]‚£ž ]kâ…ËEU ^é´e ^ €F ¤—F  ü—F" d¬F `ž‰  `* ±[
’"©’”Ù¥¯ ‚öž‰|E _é´' _Å E ¸F  üÿDÍ  ËF 
d¥H a‚£ a# b‚£3 b\´Hâ…ËüïGc W c‚£g c4â…Ë E ÑH |ðH   ÂÙTãH dé´ d# eé´3 e þH ¤‘I  ü‘I" d¦I gž‰  g* ±[PAEJ© fé´¹ fˆ E ²I  ü€G  ¯$ÛJ „öJ  LöJ hé´ ±[
­Ùh, E4€KC ! TéJ ! $îJ " " ÛÙ$•K w±[ " ¢K " ÝK  DìK
%ü÷K6
&D-'¡ôÌ:ÄÍVÓô¼R(3ª>r°˜‚öt
±[
9ˆ÷Àü'Ô÷KL£L¨’”Ù¥¯Àü&DtŸL <ÊK #ÍK $ x±[ $. # ֿꮫ¯$ ÐK $¤¾K œØد# ÑK #H  ±[ ;üÄLA
)
)
( ª’”Ù¥¯ ˆ÷Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÚð ãWŠV›VŒ0Ú:ŽºVÄÍV˜.?#P£jR ’”Ù) ÈL
)ü»LK

š%ĸ1.&U¾¸1.de«M,,%ÛÚðÉM*, ÕM ,<ŸN
/dÇN
0…‡800¸¼óÉ\éN
1
i‚£
1iLŒO
2*„´O
3DÜO
4
jޣ
4jü©NÆ
/ Ç01234 îO
4
1
0ø×ÿO5ôÿO6\ÿOkåºD”P7/*±[
¢Ù«¯kB756"C”‹P
<ýM -€N . x±[ .. - ֿꮫ¯. ƒN .¤ñM œØد- „N - ëU *
% ;Eýœ ž%ã¶1œ6Uݶ1œhg <ÓURÖUSx±[S.R ֿꮫ¯S ÙUS¤ÇU œØدR ÚURÑ
/Ù *wADÝP;v±[;*LÑPlŽ£l%&#mŽ£3m; äP;L÷Poé´,Q=d—Q>åºü÷P-±[
®Ù庫¯oX=K>B<'KüQ#¹nŽ£Én;˜K<»Q?$ÒQ@w±[@”ÅQ±[
ÊÙ@B?(K# ÖQy±[@„úQADúQBpŽ£Bp/±[œB9A)I<ƒR ‰RBtéQ?—õÚð*+?—õÚðA9Aœ°RC\°Rq‚£ð)8¤ø)8¥ï)9¥qß÷*9¥ 
tsrqponmlkj?—õÚðA¸I ŒœR?—õ…ËC ÂRClêRDrš£DrüÕR"?—õËúD öRD¤žSEdžSFsž‰Fs/±[²ûF9E.I<«S³?—õ…ËC³I ±SF”‰S?—õ‚ö/0?—õ‚öE9E\ÄStåºDÛSH?üÄS ±[
£Ù«¯tFH9G1I¤ÐS?—õ‚öE°I\öSJJñªü›T6Kü©T'L¤¶TMd¶TNuóíNu/±[¦áN9M2I<ÃT ÉTNÌTOy±[O?ýœ ""A©""Aª
Aª Û¼²¦OÝÝ""B© "•’”²¦Mª
»""Aªýÿ
H""AL ’”²¦©
Æ""A© ÏTOM'K úI«¦õ¦L ÐTLüöS\±[
üX«©JƒKoI3Iü—T; ÑTKJ]ºVôCQ ããWakerÁäòð¸ È
4åêé‚lðT­ýæ•ôD«
D­Q½Ø½ØRawWakerÁ¾ØdataÁ¸¿ØvtableÁ¸Ã?+ž´D
 ÅØÅØRawWakerVTableÁÆØƒ¸ÇØwakeÁ¸ÈØ wake_by_refÁ¸ÉØã¸³èúÕ@ú+êD«­ }†–ôD¬ D¬QªÓ‹Õýæ•D«¬8PvI< E5NT]x6Glsz5ìU@Œ *
%œ 8B« ´9NÃÌ:Úáè5±[@ù ±[ < =P $ ? ß?±[?> E ±[@Õ` wBLq N *DE¤ Pü°>¼Á 6 ©U?KyKHó *A
vAJ
B&
F7
xFMH
FY
xFOäÈدìTS m—?óŠ Š œØê®ý?$ó •¢Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ˆê)?ÈXM´­«¯œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãꮊ
¤?óŠîˆöþÒÝ?ôÀ? lÐÛÙe‰ î œØد¿>
Á>óˆÈد«¯5Û>ó  Ö¿µÛ«¯ˆÕÈ>ó •¢çÚÐÛ
á>óЈØàèâÓÝ?[çÚŽ
ÉAó=ÃAóޱ[% Ž
ÝA󌫯•ïAó   Ö¿ê®«¯ŒýãAó œØد
 ËŽÓ±[>
÷=óÈد«ê®u”>ó  œØê®ýþ=%ó •¢çÚÐÛ
¢>ó_ˆgowqn lÐÛ
î
 
Èê®
îx±[
#
Y± ͱN" ¸¼ºº
ExtensionsÁ»Ø
{¡:¯·p&
@D@VŽ£V/±[œ9P<™@"6#”1# ¥1#dC ¯þ)¯¸¼óÉô ô õ ¨÷ ˆÐ  mjçítoéµÅµÅ¶ÅNonZeroU16InnerÁ·Åˆ¢  9ª»ûg¦‰k ÿÿ°  ¯ì±C ­  2&2&
2'2'Wß÷Ôø
‚‚Ç‚92'±[›ƒM2aPX2l7%Wß÷t1$U‰7$ ²ž7$U¦7$ ²»7$UÃ7$ ²Ø7$Uà7$ ²õ7$Uý7$ ²8$U8$ ²/8$U78$ ²L8$UT8$ ²i8$Uq8$ ²†8$Uy1' åw1'¯3&µ8& ²
¿2&É2$U Š
+ +}€M"*
ŽM"*7 >,˜E, 
%ü¸1.% Û¼Úð
š
 …M
&D”M *L¦M!
ܸ1.š&Û¢¿%â¸1/ / š/±[
™"ª’”Ù¥¯¿ô¿ ¿(
â¸1_%fDh
å¸1/J
šR
½
&» *D²M+%Å+ !
©·1ž6«¯5·3Ÿ 3Ÿ Ö¿µÛ«¯žÕ¯·35 •¢çÚ®‘Ÿ
È·3ŸÃžËÓœ×P6ØP85[çÚþ £q4 8n4£ ±[4 £l4¡8«¯i5¢q5¢ ֿꮫ¯¡g5 œØد¢c5¢©£± Ú
/ã *7A
ù¶16«®‘Åÿ¶25 •¢çÚ®‘žœK6üÿO95l®‘:9üùO%:$#o<8¥á78C ¥¤Þ78¤A?—õ…Ë,-¡7;¦©7;¨ 7<§¨7<¨qß÷Ôø
‚‚Ç‚Ï7<±[›ƒ¨ã7§uIî7=:¤qß÷
79i=9¤ ²4=9i<=9¤ ²Q=9iY=9¤ ²n=9iv=9¤ ²=9i“=9¤ ²¨=9i°=9¤ ²Å=9iÍ=9¤ ²â=9iê=9¤ ²ÿ=9i>9¤ ²>9i7<¦ å§
7<§E9;¨K>;¤ ²
¦U8;¦_89i
•–ôD¬ D«Æ­lU œØدý
?Õ
/Ü *ã
%ì 4ô *û
% 4B¨Efü„?èü«?Á  § ®  ùeª
ü­@¿üà@Œü×J•  ä‡K üèK„

ü Ü»M ü›NÑ
£ª±pü·Qó(+Ÿ’”Ùè(7+2+ŒYŘ.+++öX«©ú+ýß±ÜúX«©w&W+öX«©ý³&ýÉY6€ú!á¥m¥³ýˆ=®ó¤ê®«¯ã&ýè=;óý±>1óýý@–ó©ê®«¯«¯'ýÙA)óýáè$W «¯móAóýóM]§¥¯„í?Q<©<Ï@æ@#ÌA#ö@$$þ@$$ñ9&é<$æ8%Ûâ8$ýÚ7C  ¥¯DšCýÔLA" ¸ß…Ë…Ë~$ã *¬M†M"* ¬é#ýÒCS
¤¥¯LˆLý³·Þ1
ÑT¢¿Úðëç}׸1..˜
 ¥¯DËNý–¶Ä÷\®‘«¯ïýö¶!11ý¥·$11Ž©ê®«¯«¯#445«¯4ýçdHÏÙLîQÏ=©<¼RdB8Ì€B8tB99|B99o;;é=9d::Û`:9ý¡_QÍÙd¡Rý¹jTÑÙlÚRN}ÓÙlŽSýÊ
ƒ""’”²¦
ýž`""A’”²¦ Aý‰VBôÖ<èTýˆ”ô개؞؟ØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤Ãد”ç>„¾„¾²¡†¾ ˜X$]È=„kt••¥$¸>ÛñÎ>ø¿--ê®*•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜çÚÐÛÑ*’þÐ*ñªÑ*çÚöÐÛÝê®bÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÔ™* Çâ*Ô™E*Úð!Øð"…Ëî)£¶¤ä@~'½¨&û% £¶&Ö¶&d(½¨¶$F$èc$Ö¶X$دþ)ê®ÿ)ÙÝ# Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÙ#$Ü#ÙÓ# دÄ"ê®Å"¨¿ #
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ¢¿æ#ò‹`#ë¯"ö¿¸"Úð÷ õ Úðv!د ê® ³Å^!
óÉ_!ƒËH!Øð,!ƒË'!Øð"!•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜çÚ®‘!Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
®‘«¯m!±Å\!çÚ¥ ®‘f t­PÚðßE Ùtû½o²¦ÙÚð¡Øð¢…Ë$ËúŽ‚öSò‹T ²¦±ë ñª_á¥Nõ¦N’”NúâO²¦ÄåTËÒTåTدA!ê®B!ƒË—+ ƒËç* Ž£à1‚£é1‚£ò1‚£û1‚£2‚£
2é´2‚£2é´(2é´12ž‰:2‚£C2‚£L2‚£U2é´^2é´g2é´p2ž‰y2é´‚2‚£‹2Ž£”2åº2Ž£¦2Ž£¯2Ž£¸2é´Á2Ž£Ê2‚£Ó2š£Ü2ž‰å2åºî2óí÷2Þ"å"ì""«©|6óí…6庎6‚£—6Ž£ 6š£©6ž‰²6é´»6ñª'6«©ì -ô=ó•è=óê®èÐÛË«¯çÚoÐÛý5ÙA󫯨دçß÷§J#žJ$‚‚©E$Ç‚¡E'êE'¨-* ß÷ª-+г-+м-,ŠÅ-,=׸1.¢¿{. ¿i.-ö¶1®‘M1«¯Õ1çÚÄ1Á4«¯e4دT4¤4ß÷dK8[K9‚‚fF9Ç‚^F<ÃgF<"•"˜NotReadyÁ"™svcÁàŒ"CalledÁfutÁ"DoneÁ/4/añõç’”²¦AÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ²¦ÊAˆÕD‹ÕŽDýÓ-›”ôD•¥³5™åFµ‡òºthisÁï5resÁG3Ž U¹? ¿Ç
ø:á1drop_payload_headersÁ
 ±[£¶˜.+
˜."+ "è:à* %è:Ñ
*locÁN(,ØÅ((/Ž 8¹K9àŒ»$?úä/ã…Ë0/â…Ë=/â…ËÄ0æ…ˆ-â…Ë“-â…ËD¤Lß ã9Û«m4œ5‡­I3À€3…ËÝ/½¨|/ö.…Ë!.½¨}-)-»,ž½â+Ùj'ÿÃE(Úðx'Úðr&µÈý%ÆÉr%œ7%Úðä$…Ë6$²ûÚ#‚öi#ËÎ#¦áž"ˆÒi!…ËÌ'ÙÓ'…ËÚ'ê®á'…Ëè'…Ëï'Úðö'Ùý'…Ë(Úð (Ù(ê®(‚öã#…ˤ$Úð%²¦dÚð<(ÙC(ê®J(ê®Q(›ƒ"J˜OCFC­²$2­²+2‡ë¹ë
¹1›ƒVJ˜ƒCzCˆÕ«´ß ã¯,¾,¨rÀüÛ, ã÷ì,ß ã3
3æ…Ë3*3¨êƒËG3…ËP3X3]3æ…˹2Â2ã…ËÐ2ß2¨XƒËü2…Ë3
33ã…Ë%Ïb* ü±A“©’”Ù¥¯<closure_kind>Á<closure_signature>Á<upvars>Á  ãäò{ò{
| |
|
 | 
®ù|
f|o|
y|  ‰ú|
žú¤|
®|
 ¾úf|ö| ÿ| } y|  žú }  ±[D} ÿ|
 Øû^} g} Äl ã
±[üò{
ò{
Ùb*øÔ£AÙøÔ±A“ $~¾ú)~Øû>~J~ ¾úy| žúo~y| žú‰~~>~ íBÔûBâãéïõû8†Cbmm±[ ¾ú«µ¾úÊÕß! Øûñ  Û¼Àü»ÂÉÐ×4§AÛÀü´×B
±[ú<×B4æBtßB©"üû@GNý£b=*•* ãjø€“t ã5Ôb*Ôl ãò{,8DP ä|h¯ä ãf|
ªä˜
 ´ ã³º ¸ ãÎ ª ãäëé ãÿ‡Í ãT"0>Lâ ã_‚h‚Û ã}‚„‚»Õ—‚ ‚𝂏‚ÿÝÊ‚º¸ ãä‚î‚û ã>~ª ãƒª ãµ ãª ã« ãª ã–ƒžƒÈ ã°ƒ”Aèbž‰<ü@Á‰¦§Š¯ÀüÚþŠËä¾úY…®ù|Øûm…žúÿ|žú}†ŒŒ… žú|
‰úo|
¾ú©…Øû¶…>~¾úJ~¾úbÀüÜ…žúé…žúo~žúmØûÕÍVÙùheaderÁldÄAΠãtâAÉ ã„‚BǠ㌤Bö ãc† ãu† ãú
þŠS¡Žª†°Ž¶†Î ãŽÉ ãÇ ãœö ãü²A’  ãAP©‚šm„šR ã- ã( ã# ã¡UΠãTÉ ãSÇ ãRö ã
øÕÖL$üÖL#ôÖLE®¡ 
 ÂÂBytesÁõ £Ä£ÅÈÒ£ÆÚÒ£ÂÚÍàÜä E¸¡


¾«ý¸)$b ýî#)^ †ƒ
ý¶)&b 
Û)b 
À¡

 ë±[
¶vtåL $õL%íÎUçα[ „M …M V øLÕùLž¥EÓå1uÍå1±[# %òå1 Û¼Úð·¯
ƒÏ«÷»=‰Ï Û¼÷»2Ýa
§á1Û÷»Å­á1 •¢Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙµÛ÷»è[üÖL$l÷»DüL 
ö¿
Ž£)  üÊL;±[
µg T$ª™9ÖùL
œý”E=áTéLýÉR=åEÃEý«­9ôEøRýé `áUÔ­ý¸#¬bërý˜¡) ‚ šî$F ¸‚
ÿÝÊ‚
ýÞjKX Àu¥'b ý»•MX Ê}Ô'b ý»µpN ÄÁ ýà"¹^·†ƒÍNýòÍËÖ[÷»ÅÏÅÏ Utf8ErrorÁÆÏ valid_up_toÁ¯vÇÏ error_lenÁ¯vlÅooÛÜ èâ…€ÏýÂàÂ1”V÷»'ý¢á#1ýƒå1—VÚðK¨¿ÉLëƒ;¢¿ÅL•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜ °÷»ÄÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ÷»Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
÷»µ´Y †ƒf °÷»Øðö¿À<Ž£É<˜¬% †ƒ -€Ï÷»¹÷»w%êå17ç$Œ?ö¿Ž £±[ °¹<^=ý‡k Xýå•!X•­Yß±.
Ï麈%F¢·
¼Ï
_ref__thisÁ8f©X Úð±[œ/7(fX ½fXfXÁ3Ô™? Ô™JÚðØðcmœ²(g½X$,±[‚Ð>±[÷»LTZ±[‚Ðl±[÷»zgáX ÛÆ‹!'3†»Ì±[
‡dâ±[÷»ðoýgÁX gÂXÍ,2ݼ@ ŠšLå½U]ÃÅà†»è ÃÅó±__self_0Á ¯‚к‚ÐÁß¾†»EĽÒ üäY"t÷Y ÂÆ‹ÛeÒe …ZHüÞY(k$Ò[ ۼƋ|òZ ÂÆ‹,êZ$¤ZÛÆ‹T­Z ۼƋ ¶ZO €[d˜[
±[
´Æ‹%Œü´Y³”“[ ۼƋ ¤[
 æ[ç[­Pü•Z"^ÛŠš¸ ^çÄLÊY ŠšL¼YŠšâŠšâ¤•ZÆ‹;ŠštÆ‹û@˜.c㊚ôÁ+ $Ý\T×\%ÄÞ]
±[
±Œ”Æ‹¿Š4é]$ñ];?TÑ]$Ö]ÛÆ‹¤•^ ÂÆ‹,^ ¨^üÊ]r1üí[íÚ^ É^
®-ü÷]E ¥\œÃL…\ÃÅ$\ºà4š\Œð\çÄHÆ‹üŠšìI˜.L0O˜.4ÄÖÄ¤Šš
üÓ_#ÄÓ_„Ó_
±[
!.âˆ$Ó_\Ø_<ä_õû
!U€! mø’1 Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙò’1 
 õ_d†`
±[å¿` ۼ∠’`üÐ_v`f¼©`±[
¤±“∿Š4©`$»`„°` Å`È`!òÈ
Ý!k´ P   5æ + ±[ ¿1†ÝÞ"
 
òÈÛy†ÔÞ"
âÞ"
 )†ÔÞ"   ÛZ ±[d  ¿Î ×±üÞ^êýË
!!¼ýê‘Ç1³UËõ”“1ù†¯Þ6"‹àEª“1=³UL62‹à+
¿ÚLŽ_ÝÙ4õ^¢º$_òÈ!i!iSizeHintÁ!jlowerÁ!!kupperÁ!$Ø®¯mg‹Ì∣¢=ž“1÷=•“1«0¯˜.²VžÈ7å¿iËÊ<ï_ Û¼ ô_+9±Ã òÈXòÈ`g(hÿh„ó"æš. æš9BL(jŒ 

FL±[ ÷»jl±[!÷» ±[" ÷»=¦±[#÷»Zñ[$
÷»wà±[%
÷»ý±[&÷»±±['÷»Ï8±[(÷»íV±[)÷» u±[*
÷»*±[+÷»I³±[,÷»hÒ±[-÷»ñ±[.÷»¦±[/ ÷»Å/±[0÷»äP±[‚Ðcirj‘öݼžÿѧ彰÷»¹Á˱Ùä‚Ðï

Œø±[æšÌ˱[æš”¥±[暬ü±[暔ֱ[
æš¼«±[ 暤ƒ±[ 暌ޱ[
æšä®±[ æšÜ€±[æšÔÓ±[æš¼©±[æš”„±[æšÔ×±[æšÌ«±[暌‡±[æšœá±[æš±[æššÐüýæš$”,…» /ùm¥=M Üž#/†»(m²±[Ľ±[1÷»#j0 üVݼb ‚žmå½u†»¿  ÜžͪßÕœ±©³¨ß†»ĽÇ(n¹ÿ"'‚ž4ß<EO)qìMM$)Üž6ªß>GQM
 0M
sMŠIsùMªßªßˆ5¹
BLt†MŒt„M ªß&0
ùßÝ€3"" " E ß" ùߨ€9" Û¼¿ßÀßÁßLessÁÂßÃßÄß~Å߯ßÇßGreaterÁÈßåºÝÈnûê7 ß"uMŽQuˆMùߊ€"ƒáMÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÎäoªßwªßÎäŒs¡¹
®¸£„" ª„" ùßþƒ3" ß°„" v—Mv”MùßÀƒƒ"…áMÎä*ªß2ªß:µ Q¹
^h‡ÑL ‘áûÐL±[
§eùûÐLIÑL áŒÑLwM!w™Mùá¼ÐcLÐʾéM,ªß4 ¾é?ÁOº\f¸éÍñxóŒM
 ±xóŒM
®œ˜9ùxÛŒ7Mž‚ž!xìŒM,
zšëœÑ¬sŸ‚žmç
îâšëœŠ ܠꂞÖýP
XMšëœÃ H¡W‚žDlÀ
Ƚšëœü ð¸¢Ç‚ž´Ü0
8-šëœµ! `(£7‚ž$L 
¨šëœî!@И¤§‚ž¼

šëœ§"@¥‚ž,
ˆ}šëœà"°x¦‚žtœð
øíšëœ™# è§÷‚žä `
h]šëœÒ#X¨g‚žT|Ð
ØÍšëœ‹$ȩׂžÄì@
H=šëœÄ$p8ªG‚ž4\°
¸­šëœý$ ਫ·‚ž¤Ì 
(šëœ¶%@P¬'‚ž<
˜šëœï%Àˆ­‚ž¬
ýšëœ¨&0ø®‚žôùx‹’ûM
 FlagÁÐ Mf»Mfüá|"qú‚žvƒ 
—ú x…šM x“šMùx… MŒûùx’(M”úì”úô–úùxŒ’úM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM—úšêM”úùD#©x‡•M¯÷»yx¥•Mž‚ž"°÷»Ÿ‚ž:±÷»5 ‚žR²÷»M¡‚žj³÷»e¢‚ž´÷»}£‚žšµ÷»¤‚ž²÷»­¥‚žÊ·÷»Å¦‚žâ¸÷»Ý§‚žú¹÷»õ¨‚žº÷»©‚ž,»÷»(ª‚žF¼÷»B«‚ž`½÷»\¬‚žz¾÷»v­‚ž¿÷»®‚ž´”úùxõ”GM‰xõ”M
Mv‚žî¯÷»ûîž‚žûGMGÙ+°÷»8+Ÿ‚ž8ŠÙh±÷»uh ‚žuÁÇÁÙ¥²÷»²¥¡‚ž²þÿÙã³÷»ð㢂žð<C>Ù#´÷»0#£‚ž0|ƒ~Ùcµ÷»pc¤‚žp¼Ã¾Ù£÷»°£¥‚ž° üþÙã·÷»ð㦂žð
 <C> Ù#¸÷»0#§‚ž0 
|ƒ~
Ùc¹÷»pc¨‚žp  ¼Ã¾ Ù£º÷»°£©‚ž°
 üþ Ùã»÷»ð㪂žð
<C>
Ù#¼÷»0#«‚ž0|ƒ~Ùc½÷»pc¬‚žp¼Ã¾Ù£¾÷»°£­‚ž°üþÙã¿÷»ð㮂žð< —ú 
  
Ve¸”ú–ú—ú—ú—ú—úz—úu—úp—úk—úf—úa—ú\—úW—úR—úM—úH—úC—ú>—ú9, "+¯÷»'ž‚žE°÷»AŸ‚ž_±÷»[ ‚žy²÷»u¡‚ž³÷»¢‚ž­´÷»©£‚žÇµ÷»Ã¤‚žá÷»Ý¥‚žû·÷»÷¦‚ž¸÷»§‚ž/¹÷»+¨‚žIº÷»E©‚žc»÷»_ª‚ž}¼÷»y«‚ž½÷»¬‚ž±¾÷»­­‚žË¿÷»Ç®‚ž2÷»"OK"Á3 ÷» "CANCELLED"Á4÷» "UNKNOWN"Á5÷»"INVALID_ARGUMENT"Á6÷»"DEADLINE_EXCEEDED"Á7 ÷» "NOT_FOUND"Á8÷»"ALREADY_EXISTS"Á9÷»"PERMISSION_DENIED"Á:÷»"RESOURCE_EXHAUSTED"Á;÷»"FAILED_PRECONDITION"Á<÷» "ABORTED"Á= ÷»"OUT_OF_RANGE"Á>
÷»"UNIMPLEMENTED"Á?÷»
"INTERNAL"Á@ ÷»
"UNAVAILABLE"ÁA ÷» "DATA_LOSS"ÁB÷»"UNAUTHENTICATED"Á1•ã*MÜžxMšùxÀšPMù’¹•:M«ÙxçšMù–¹•:MÖ1‘ Mîß)xÈšMfù‘)MQ•¢/M ù‘/M ø ´Mx–œMùxž›xMù’­šWM®ùxá›'Mù–­šWMÙ‚žyx¿›M!x²›MÜž¹´n·±[ÿÿ‚žx™£Mœùx¤œõM«®ùxߢ,M¤Ù2‚žyx¶œMAIx£M ixˆMÙx˜M
)xÍMM
šêM!x¤ŸMùx¬Ÿ)M M|‚žŒû xÖŸM ùx¬Ÿ,M# ùx«Ÿ-M xØŸMùxûŸM yxþŸM
!xþŸM   #
*Axƒ M
My‚ž :
Qxƒ MX
 xŒ M IxÀ M   ™xÌ M
axÌ M !xÌ M )
0)xÑ M
Mx‚ž:9xÑ M\ x× M
!xÙ M
«
1xÙ M xÞ Mùx´ +M
 
 
& xß MùxŽ tM ' x‚¡M 
¸ x¡M
  1x¤¡M x©¡M* *
PùxþžËM xÈ¡M  ñŸêMšêM M|‚žŒû    þùõïëò 
êç™
â6 ßÛâØÔÛÑØ÷
ÿÐÿš È Å@
HÃÊ›P
¾º
ÑØ³¯¸=Ò«´`¨¯¥ ¡Ç  È
ï  ©¢ óŸêMšêM!£"Ÿ#¦#¯M|‚žŒûœ$£$%#¦&$%¸ &%$"#$$'(ƒ)Š)"£
«ç™)³(zÎ( w)s*z*p+l,s-i.p."
hÿš.-`¸,-].Ø
à[Ê›,è+VR,N
*+i+p*K-G'PÕj)C'Lø@(G'=/9_ /`
/8!A3#:" õŸêM!šêM0;172>2GM|‚žŒû43;3142>534P 543.123)3%678"81;
Cç™8K7f7 8 99:; <==1'
/ÿš=1<øP;<õ=p
xóÊ›;:îê;æ
9::9ã<ß6èm  8Û6ä Ø7ß6Õ>Ñ÷ >ø
>Ð0ÙË2Ò1 ÷ŸêM0šêM?Ó
@Ï
AÖ
Aß
M|‚žŒûÌ
BÓ
BÉ
CAÖ
DBCè
 DCB!Æ
@ABÁ
B½
E·
F³
Gº
G@Ó

Û
²
ç™Gã
F"ª
þ
F&# §
G£
Hª
H 
Iœ
J£
K
L 
L@¿

Ç
˜
ÿšLÉ
K$
è
JK
L 
 
ʛJ I%

J~

HI
I 
H{
Kw
E
 'š Gs
E|
( 'p
Fw
Em
Mi

 M
(
·
Mh
?q
c
Aj
@ ùŸêM?šêMNk
Og
Pn
Pw
M|‚žŒûd
Qk
Qa
RPn
SQR
 SRQ)^
OPQY
QU
TO
UK
VR
VOk

s
J
ç™V{
U*B

U.+ ?
V;
WB
W8
X4
Y;
Z1
[8
[OW

_
0
ÿš[a
Z,(

YZ%
[ 

¨
#
Ê›Y°
X-

Y

WX1
X8
W
Z
T
/2V
T
À/
U
T
\
'
 \(
0
O
\
N
û P
O ûŸêMNšêM]^ÿ__M|‚žŒûü``ùa_b`a ba`1ö^_`ñ`í cç dã eê e^
  âç™ed2Ú. d63 × eÓ fÚ fÐ gÌ hÓ iÉ jÐ j^ï
÷ Èÿšjùi4À hi½ j8
@ »Ê›hHg5² h® 
fgÉ gÐ f« i§ c°5 7Ê e£ c¬X 7  d§ c k¿ kÀ8
ç k˜]¡_š^ ýŸêM]1ÿšêMlmnžn§M|‚žŒûoopnžqop° qpo9Žmnoo
r
s{
t
tm
£
zç™t«s:rÆ
s>; o
tk
ur
uh
vd
wk
xa
yh
ym

`ÿšyx<X°
wxU
yÐ
Ø
SÊ›wàv=NJ
wF

uva
vh
uC
x?
rHÍ
?b
t;
rDð
?8
s?
r5
z1W
zX@

z0l9+n2m ÿŸêMl1šêM{3|/}6}?M|‚žŒû,~3~)}6~I ~A(|}~#~   ƒ ƒ|9
A 癃JBf FC  ƒ
        ˆ ˆ|0
8  ÿšˆ;D[  ˆ~
 Ê›Eþú ÷ 
  ø õ ÿ G ƒó ý© Gñ ù ð í H
< î{÷é}ð| ŸêM{šêMŠòïŒ÷ŒM|‚žŒûîö펌üŽ ŽIòŒðí è å í 
 çç™Já5 NK ß Ü ä Û Ø à × ß 
 Ùÿš LÓ+ Ò N
V ÑÊ›_MÎÊ Ç 
ä ì È Å ÏT Oé à Íy OÁ É À ˜½ã ˜åP
  ˜¾ŠÈºŒÂ ƒŸêMŠ1…šêMÆšÃËÕM|‚žŒûœʜÁОœå žœQÆšœÄœÁ
Ÿ¼
 ¹
¡Á
¡šÜ
ä
»ç™¡í Rµ 
 VS ³
¡°
¢¸
¢¯
£¬
¤´
¥«
¦³
¦šÔ
Ü
­ÿš¦ß¥T§ÿ
¤¥¦
¦"
*
¥Ê›¤3£U¢ž
¤

¢£¸
£À
¢œ
¥
Ÿ£(
W½
¡
Ÿ¡M
W
 
Ÿ
§·
§¹X
à
§œŽšŸêM1‡šêM¨š©ªŸª©M|‚žŒû«ž«¬ª¤­«¬¹ ­¬«Yš©ª«˜«®¯°°©°
¸ç™°Á¯Zݯ^[ °±Œ±ƒ²³ˆ´µµ©¨
°ÿšµ³´\{Ó³´zµö
þyÊ›³²]vr³o
±²Œ²±p´m®wü_°k®u!_i¯q®he `
´f¨pbªj©ŸêM¨1‰šêM·n ¸k ¹s ¹} M|‚žŒûj ºr ºi »¹x ¼º»  ¼»ºan ¸¹ºl ºi ½d ¾a ¿i ¿¸
Œ c 癿• ¾b] ± ¾fc [ ¿X À` ÀW ÁT Â\ ÃS Ä[ ĸ| 
U ÿšÄ‡ ÃdO § ÂÃN ÄÊ 
Ò M Ê›ÂÛ ÁeJ F ÂC 
ÀÁ` Áh ÀD ÃA ½K Ð!ge!¿? ½I õ!g= ¾E ½< Å9 _  Åa h
ˆ Å: ·D 6 ¹> ¸ŸêM·1‹šêMÆB#Ç?#ÈG#ÈQ#M|‚žŒû>#ÉF#É=#ÊÈL#ËÉÊa# ËÊÉiB#ÇÈÉ@#É=#Ì8#Í5#Î=#ÎÇX#
`#7#ç™Îi#Íj1#…#Ínk /#Î,#Ï4#Ï+#Ð(#Ñ0#Ò'#Ó/#ÓÇP#
X#)#ÿšÓ[#Òl##{#ÑÒ"#Óž#
¦#!#ʛѯ#Ðm##Ñ#
ÏÐ4#Ð<#Ï#Ò#Ì#¤$o9$Î#Ì#É$o#Í#Ì#Ô
#3# Ô5#p
\#Ô#Æ#
#È#ÇŸêMÆ1šêMÕ&Ö&×&×%&M|‚žŒû&Ø&Ø&Ù× &ÚØÙ5& ÚÙØq&Öר&Ø&Û &Ü &Ý&ÝÖ,&
4& &ç™Ý=&Ür&Y&Üvs &Ý&Þ&Þÿ%ßü%à&áû%â&âÖ$&
,&ý%ÿšâ/&át÷%O&àáö%âr&
z&õ%Ê›àƒ&ßuò%î%àë%
Þß&ß&Þì%áé%Ûó%x'w
'Ýç%Ûñ%'wå%Üí%Ûä%ãá%& ã &x
0&ãâ%Õì%Þ%׿%Ö ŸêMÕ1šêMäê(åç(æï(æù(M|‚žŒûæ(çî(çå(èæô(éçè ) éèçyê(åæçè(çå(êà(ëÝ(ìå(ìå)
)ß(ç™ìzÙ(-)ë~{ ×(ìÔ(íÜ(íÓ(îÐ(ïØ(ðÏ(ñ×(ñåø(
)Ñ(ÿšñ|Ë(#)ïðÊ(ñF)
N)É(Ê›ïW)î}Æ(Â(ï¿(
íîÜ(îä(íÀ(ð½(êÇ(L*á)ì»(êÅ(q*¹(ëÁ(ê¸(òµ(Û( òÝ(
)ò·(äÁ(³(æ»(å ŸêMä1‘šêMó¿+ô¼+õÄ+õÎ+M|‚žŒû»+öÃ+öº+÷õÉ+øö÷Þ+ ø÷öÀ+ôõö¾+ö»+ù¶+ú³+û»+ûôÖ+
Þ+µ+ç™ûç+ú°+,úƒ °+û­+üµ+ü¬+ý©+þ±+ÿ¨+°+ôÑ+
Ù+ª+ÿšÜ+ÿ¥+ý+þÿ¤+ ,
(,£+Ê›þ1,ý¡++þš+
üý·+ý¿+ü›+ÿ˜+ù¢+'-½,û—+ù¡+M-–+úž+ù•+’+¸+ º+ˆâ+”+óž++õ˜+ôŸêMóIx±¢M xË¢M ùxØœõMùx„ÈMùxɃMùx Ÿ©M
%+17=CIOU[agùx’¢:M^1Ë/¬/³, —úŠ/Œûˆ/l/^/e///‰÷/±.£.ß¡.ߪ.‰÷¢.Œ-5-‰÷ 0Œû0ë/Ý/ä/–//‰÷Ž/0/"/ß /ß)/‰÷!/ø÷ .²-‰÷†0Œû„0h0Z0a00
0‰÷ 0­/Ÿ/ß/ߦ/‰÷ž/ø÷†./.‰÷1Œû1å0×0Þ00Š0‰÷ˆ0*00ß0ß#0‰÷0ø÷/¬.‰÷€1Œû~1b1T1[1
11‰÷1§0™0ß—0ß 0‰÷˜0ø÷€/)/‰÷ý1Œûû1ß1Ñ1Ø1Š1„1‰÷1$11ß1ß1‰÷1ø÷ý/¦/‰÷z2Œûx2\2N2U222‰÷ÿ1¡1“1ß‘1ßš1‰÷’1ø÷z0#0‰÷÷2Œûõ2Ù2Ë2Ò2„2~2‰÷|222ß2ß2‰÷2ø÷÷0 0‰÷t3Œûr3V3H3O33û2‰÷ù2›22ß‹2ß”2‰÷Œ2ø÷t11‰÷ñ3Œûï3Ó3Å3Ì3~3x3‰÷v33
3ß3ß3‰÷ 3ø÷ñ1š1‰÷n4Œûl4P4B4I4û3õ3‰÷ó3•3‡3ß…3ߎ3‰÷†3ø÷n22‰÷ë4Œûé4Í4¿4Æ4x4r4‰÷p444ß4ß 4‰÷4ø÷ë2”2‰÷h5Œûf5J5<5C5õ4ï4‰÷í444ß4߈4‰÷€4ø÷h33‰÷å5Œûã5Ç5¹5À5r5l5‰÷j5 5þ4ßü4ß5‰÷ý4ø÷å3Ž3‰÷b6Œû`6D666=6ï5é5‰÷ç5‰5{5ßy5ß5‰÷z5ø÷b4 4‰÷ß6ŒûÝ6Á6³6º6l6f6‰÷d66ø5ßö5ßÿ5‰÷÷5ø÷ß4ˆ4‰÷\7ŒûZ7>70777é6ã6‰÷á6ƒ6u6ßs6ß|6‰÷t6ø÷\5 truncatedÁ98´8flagÁø7ø†8ø†8"ø†81ø†,8@ø†98Oø†F8 ^ø†S8
mø†`8 |ø†m8 ø†{8
𸆉8©ø†—8¸ø†¥8Çø†³8Öø†Á8åø†Ï8ô'
09â8M|‚žŒûò8M|‚žŒû9M|‚žŒû9M|‚žŒû"9M|‚žŒû29M|‚žŒûB9M|‚žŒûR9M|‚žŒûb9M|‚žŒûr9M|‚žŒû‚9M|‚žŒû’9M|‚žŒû¢9M|‚žŒû²9M|‚žŒûÂ9M|‚žŒûÒ9M|‚žŒûâ9M|‚žŒûù•×$!M±[ÜžÁMÄù’òOMù–»’8MÔÑ’MÜž!’M7Ù•Ü$M9’ÅMÚMÎù’?M ¯Mªß)’¥M9Ç< ˜MÐù’ÂVM„<Ùá’îMÜž!’×M!’ÊM´J±[Üžó’MÔsÜž!–Ó’Mbé pÔÝÜžjñÆÙ•Ï%M±[)•„&MŒ&M±[ù•â')M M|‚žŒûŒ(Mù•â',M±[' ±[ J˜?‚žÜž(MI•Ì(M á•À(M
Û(M1•þ(M±[   M|‚žŒû  
 ±[' 
±[  K
  š@
‚žÜž þú
 õð±[÷þM|‚žŒûôð±[ ±[ 6…A‚žÜžíéðæ
âÞ±[æíöM|‚žŒûãß±[ ±[ %tB ‚žÜžÜØßÕ
Ñͱ[ÕÜåM|‚žŒûÒα[ð ±[ cC#‚žÜžËÇ Î Ä
 À ¼±[Ä#Ë#ÔM|‚žŒûÁ$½%$±[ß %±[$ "#$RD&!"‚žÜžº#&½&³
&!¯&«±[³)º)ÃM|‚žŒû°*¬+*±[Î +±[* ò()*AE)'(‚žÜž©)¥ ,¬ ,¢ 
,'ž ,š ±[¢/©/²M|‚žŒûŸ010±[½ 1±[0 á./00F,-.‚žÜž˜/
2
2

2-
2
±[5˜5¡M|‚žŒûŽ6Š76±[¬ 7±[6 Ð456G/34‚žÜž5ƒ 8Š 8 
83| 8x ±[;;M|‚žŒû}<y=<±[ =±[<
¿:;<H29:‚žÜžv;r >y >o 
>9k >g ±[o Av A M|‚žŒûl Bh CB±[Š  C±[B ® @ABýH5?@‚žÜže Aa
Dh
D^

D?Z
DV
±[^
Ge
Gn
M|‚žŒû[
HW
IH±[y
 I±[H 
FGHìI8EF‚žÜžT
GP
JW
JM

JEI
JE
±[M MT M] M|‚žŒûJ NF ON±[h  O±[N
Œ LMNÛJ;KL‚žÜžC M? PF P< 
PK8 P4 ±[< SC SL M|‚žŒû9 T5 UT±[W  U±[T { RSTÊK>QR‚žÜž2 S. V5 V+ 
VQ' V# ±[+
Y2
Y;
M|‚žŒû(
Z$
[Z±[F
 [±[Z j
XYZ¹LAWX‚žÜž!
Y
\$
\

\W
\
±[_!_*M|‚žŒû`a`±[5 a±[` Y^_`¨MD]^‚žÜž_ bb 
b]b±[ eeM|‚žŒûfgf±[$ g±[f
Hdef—NGcd‚žÜžÿeûhhø
hcôhð±[y•*M «*M†”MÕHù–Ò“4Mù•»%ñMù•€&¬Mù•×M
%+17=CIOU[agù•ì)@Mýç;MMx‚ž9•(M»O«1•—(MµOÖ¯O<Mx‚ž8îO«3ãOÖÝOjMx‚žfP«aPÖ P˜Mx‚žJP«?PÖ9PÆMx‚žÂxP«½mP"ÖgP"ôMx‚žð¦P«ëP%Ö•P%"Mx‚žÖP«ÌP(ÖÆP(SMx‚žPQ«LýP+Ö÷P+Mx‚ž8Q«}.Q.Ö(Q.µMx‚ž²iQ«®_Q1ÖYQ1æMx‚žãšQ«ßQ4ÖŠQ4Mx‚žËQ«ÁQ7Ö»Q7HMx‚žEüQ«AòQ:ÖìQ:yMx‚žv-R«r#R=ÖR=ªMx‚ž§^R«£TR@ÖNR@ÛMx‚žØR«Ô…RCÖRC Mx‚ž ÀR«¶RFÖ°RFiÜž!–è“Mi•¿%MY!•Û'M‰÷ŒûL0'°5‰÷?Œû|`Wàe‰÷oŒû¬‰÷ŸŒûÜÀ·@ʼn÷ÏŒû ðçpõ‰÷ÿŒû<  %‰÷0ŒûmQHÑV‰÷aŒûžy‰÷Œûϳª3¸‰÷ÃŒûäÛdé‰÷ôŒû1 ‰÷%ŒûbF=ÆK‰÷VŒûwn÷|‰÷ŒûĨŸ(­‰÷¸ŒûõÙÐYÞ‰÷éŒû&
Љ÷ŒûW;2»׆X´±ø†]ø†j ø†wø†ø†ø†ž!ø†« 'ø†¸
-ø†Å 3ø†Ò 9ø†ß
?ø†ìEø†ùKø†Qø†Wø† ]ø†-c:¸M|‚žŒûM|‚žŒû M|‚žŒû°M|‚žŒûÀM|‚žŒûÐM|‚žŒûàM|‚žŒûðM|‚žŒûM|‚žŒûM|‚žŒû M|‚žŒû0M|‚žŒû@M|‚žŒûPM|‚žŒû`M|‚žŒûpM|‚žŒûM|‚žŒû4xèñåáêšêM³ù•â'4M Î M|‚žŒû 
  
 
(  
< 
)•(MÿšiÄ »•(Mù•â';M

!•—(MÊ›öù œ(MV ]d` g !•Ø(M
 
s
 
o
v rƒ)Mù•µ'îM¢)M ˜ŸêMšêMÏÖÔÛäM|‚žŒûÑØÔáó [
cÍÿš2 ÊÆ
ÎÂÊ›´¸ ¿"»Â+
'.*¸´½¯ šŸêMšêM- zDM|‚žŒû|ƒ Œ! ž ! ²
xÿšÝ8
/uq
ymʛ_ c
j¼ÃÊÆ"Í"f#m#Ö
"#Ò#Ù"Õc_hZ œŸêMšêM$Ø
%%&,'ï(*)1):M|‚žŒû'*.**+)7,*+I ,+*
]()*±
¹#ÿš(ˆ' ãÚ&' (
$Ê›&
% &g*n)u'q-x-..%
-.}.-
$% žŸêM$1 šêM/ƒ 0Ð1×2š 3Õ 4Ü 4å M|‚žŒûÒ 5Ù 5Õ 64â 756ô  765
!345\
dÎÿš33!2Ž12Ë3Ç
ÏÃÊ›1µ0¹À1!5!4 !2!8#!8¼9Ã90,!
89(!9/!8+!¹µ/¾°0  ŸêM/šêM:.;{<=E">€"?‡"?"M|‚žŒû}"@„"@€"A?"B@AŸ" BA@³">?@ 
 yÿš>Þ"=90 <=v>r
znÊ›<` ;dk<½"@Ä"?Ë"=Ç"CÎ"CgDnD;×"
CDÓ"DÚ"CÖ"d`:i[; ¢ŸêM:šêMEÙF&
G-
Hð#I+$J2$J;$M|‚žŒû($K/$K+$LJ8$MKLJ$ MLK^$IJK²

º
$
ÿšI‰$HäÛ
GH!
I

%

ʛG F
Gh$Ko$Jv$Hr$ Ny$ N
O
OF$ 
NO~$ O…$ N$ 

E

F ¤ŸêMEšêMPQÑ RØ S%TÖ%UÝ%Uæ%M|‚žŒûÓ%VÚ%VÖ%WUã%XVWõ% XWV &TUV] 
e Ï ÿšT4&S RSÌ TÈ 
Ð Ä Ê›R QºÁ R&V&U!&S&
Y$&
Y½
ZÄ
ZQ-&

YZ)&
Z0&
Y,&
º  P¿ ± Q ¦ŸêMPšêM[/\|
]ƒ
^F'_'`ˆ'`'M|‚žŒû~'a…'a'b`Ž'cab ' cba´'_`a
z
ÿš_ß'^:1]^w
_s

{
o
Ê›]a\el
]¾'aÅ'`Ì'^È' dÏ' dh
eo
e\Ø' 
deÔ' eÛ' d×' e
a
[j
\
\ ¨ŸêM[šêMfÚg'h.iñ(j,)k3)k<)M|‚žŒû))l0)l,)mk9)nlmK) nml_)jkl³
»%ÿšjŠ)iåÜhi"j
&Ê›h ghi)lp)kw)is) oz) o p pgƒ) 
op) p†) o)  fg ªŸêMfšêMqrÒsÙtœ*u×*vÞ*vç*M|‚žŒûÔ*wÛ*w×*xvä*ywxö* yxw
+uvw^
fÐÿšu5+t stÍuÉ
ÑÅÊ›s·r!»Âs+w+v"+t+
z%+
z¾
{Å
{r.+

z{*+
{1+
z-+
»·qÀ²r ¬ŸêMqšêM|0}}~G,ƒ,,•,M|‚žŒû‚,Š,‡,ƒ–,ƒ«, ƒ"Â,
!ÿšñ,#LC~
ŽÊ›~t}$x~Ñ,Ù,á,Ý,å,}ñ,
ï,÷,ô,~|y} ®ŸêM|šêMøˆFNŠ.N.ŒV.Œ`.M|‚žŒûM.U.R.ŽŒa.Žv. Ž%.Œä
ìVÿš¼.Š&ŠWT
\PÊ›Cˆ'HO¢.ª.Œ².Н.·.QYˆÄ.
Â.Ê.Ç.UQ[Mˆ °ŸêMšêMÎ$è/$0,060M|‚žŒû#0˜+0˜(070š˜L0 š˜(c0˜º
Â,ÿš’0•)îå-*
2&Ê›* %x0˜€0ˆ0…00'œ/œš0
œ˜0œ 00+'1# ²ŸêMšêM¤žòŸú ¾1¡ú1¢2¢ 2M|‚žŒûù1£2£þ1¤¢
2¥£¤"2 ¥¤£+92¡¢£
˜ÿš¡h2 ,Ä!»Ÿ ¡
üÊ›Ÿïž-ô!ûŸN2£V2¢^2 [2¦c2¦ý§§žp2
¦§n2§v2¦s2ýùž ´ŸêMšêM¨z©ÈªÐ«”3¬Ð3­Ø3­â3M|‚žŒûÏ3®×3®Ô3¯­ã3°®¯ø3 °¯®.4¬­®f
nØÿš¬>4«/š#ª«Ù¬Ö
ÞÒÊ›ªÅ©0Ê#Ѫ$4®,4­44«14±94±Ó²Û²©F4
±²D4²L4±I4×Ó¨ÝÏ©ŸêM¨šêM³P!´žµ¦j5·¦5¸®5¸¸5M|‚žŒû¥5¹­5¹ª5º¸¹5»¹ºÎ5 »º¹1å5·¸¹<
D®ÿš·2p%gµ¯·¬
´¨Ê›µ´3 %§µú5¹6¸
66¼6¼©½±½´6
¼½6½"6¼6­©³³¥´ ¸ŸêM³I•*M¾ ¾o' ¾™*M¾x''{'Õv'p'j'd'k'r'y'€'‡'Ž'•'œ'£'ª'±'¸'¿'Æ'Í'Ô'n'¿Üž-$($}8Ü,$ß{߉÷I8Œû†8j8b8i8ò77‡$ßÖß߉÷¤8Œûá8Å8½8Ä8M8ââ$ß1ß:‰÷ÿ8Œû<9 999¨8=í=%ߌ߉÷Z9Œû—9{9s9z99˜H˜%ßçßð‰÷µ9Œûò9Ö9Î9Õ9^9ó£ó%ßB ßK ‰÷:ŒûM:1:):0:¹9NþN&ß ß¦ ‰÷k:Œû¨:Œ:„:‹::©Y©&ßø ß!‰÷Æ:Œû;ç:ß:æ:o: ´'ßS!ß\!‰÷!;Œû^;B;:;A;Ê:_  _'ß®!ß·!‰÷|;Œû¹;;•;œ;%;º j º'ß "ß"‰÷×;Œû<ø;ð;÷;€;!Å (ßd"ßm"‰÷2<Œûo<S<K<R<Û;p! !p(ß¿"ßÈ"‰÷<ŒûÊ<®<¦<­<6<Ë!{!Ë(ß#ß##‰÷è<Œû%= ===<&"Ö!&)ßu#ß~#‰÷C=Œû€=d=\=c=ì<"1")ßÐ#ßÙ#‰÷ž=ŒûÛ=¿=·=¾=G=Ü"Œ"Ü)ß+$ß4$‰÷ù=Œû6>>>>¢=7#׆O*´¨>ø†T*ø†a*ø†n*ø†{*%ø†ˆ*0ø†•*;ø†¢* Fø†¯*
Qø†¼* \ø†É* gø†Ö*
rø†ã*}ø†ð*ˆø†þ*ø† +žø†+©ø†(+´6/´?|?M|‚žŒûŒ?M|‚žŒûœ?M|‚žŒû¬?M|‚žŒû¼?M|‚žŒûÌ?M|‚žŒûÜ?M|‚žŒûì?M|‚žŒûü?M|‚žŒû @M|‚žŒû@M|‚žŒû,@M|‚žŒû<@M|‚žŒûL@M|‚žŒû\@M|‚žŒûl@M|‚žŒû|@M|‚žŒû ó•MÖt`ªß1–Ë•M¢dÖÒ¾ªß^gúI•º+Mñ•Æ+M!•ß+M !
(祮+M
Ø5Hã+Mù•Æ+ Mæ+M‰•€,MI•€,M !•,M 7H,M Q•Ú,M!•ß,M   !  ã,M ù•¬,9M ۼܞä,Mù•ý+áMù•›--M ۼܞ8Ý-Mï-M˜M×ù–ž—rMù•¶+ºM
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÜžù–×-M)–µ—M@Üž>;ÖÓÅÜžˆ´Q׆Û¡•¹.Mi•À.MY•À.M
±[
Õ$3M Ì.MÑ•´.M Í.Mß.MÖ™MØù–û˜[MÜž!–©™M)–›™MÙÕÜžÒ´&PÌ™ð!•¹.M "%
-I•À.MÌ™GWr &-) %!ØÜž
áÒåÜžã´8cp„ „›MÙ#„Üž!–ÙšM)–ËšM´W„!•§/M ô„ «/MÙ¬„Üžƒa´Û„2÷»"OK"Á3 ÷» "CANCELLED"Á4÷» "UNKNOWN"Á5÷»"INVALID_ARGUMENT"Á6÷»"DEADLINE_EXCEEDED"Á7 ÷» "NOT_FOUND"Á8÷»"ALREADY_EXISTS"Á9÷»"PERMISSION_DENIED"Á:÷»"RESOURCE_EXHAUSTED"Á;÷»"FAILED_PRECONDITION"Á<÷» "ABORTED"Á= ÷»"OUT_OF_RANGE"Á>
÷»"UNIMPLEMENTED"Á?÷»
"INTERNAL"Á@ ÷»
"UNAVAILABLE"ÁA ÷» "DATA_LOSS"ÁB÷»"UNAUTHENTICATED"Á1•—:M ù•—:%MÙ•¡:M»:M’ŸMÝù–ΞDM!–ïžMªßù–Ì•ž MAz±•¦<Mi•¦<MY•¦<M
I•¦<MÌ™+ :1•¶<M o
»<M 1•À<M ù•¦< MÅ<M ×<Mº MÞù–úŸ@M!–™ Mªßù–Ì•È
MÜžä°8a
œ=M1•œ=M 9•¥=M @ «=M ù•œ=/MÙ•°=MÊ=Mü¡Mßù–¦¡VM!–סMªßù–Ì•ø MÜž1–Æ¡MãßË4¹
1j£
Ÿ>M1•Ÿ>M 9•¨>M @ ®>M 9•³>M Ù•Ÿ>M¹>M º£Màù–è¢RM!–—£Mªßù–Ì•¸
MÜž1–†£MñíÙ¦;¹
8q É•˜?M1•?M)•«?MçDM 
±•âDM ÷DMù•?!M°?Mê¤Máù–¦¤DMù–Ê­KMæa•¥?MͤM Üžù–Ì•òMÜž1–À¤MÜžÿûÙô<¹
9 ñ•@M1••@M)•¨@M‰•ÒEMA•ÛEM " âEM¹•ÍEM ãEMù•ˆ@&M­@Mä§Mâù– §DMù–ç°UM牕@MǧM»­ù–Ì•ìMÜž1–º§MÜžúöF¹
C ù•A(M1•AM)•¯AMÈFM  ±•ÃFM ØFMù•…A0M´AMž©Mãù–Ú¨DMù–ʲiMèÙ•šAM©M»­ù–Ì•¦MÜž1–ô¨MÜžýøÖñ<¹
9Œ
DM1•DM 9•ŠDM ? DM ±•üCM ‘DMƬMåù–í«YMÜž!–Ÿ¬MÜžù–Ì•ÀMÜž1–ެM×ÓÀ4¹
1l
 H 
 ÿåùÜžòÜžìÜžäµ² ¹
O
²1•çDM 9•ðDM í
öDM ô ð•®MæÃÜž!–õ­MÜžù–Ì•MÜž1–ä­MxÇ´5¹
2*
 ë
þî êúæ·ÜžôÜžîÜžæX§¹

V1•ÒEM l9•ÜEM t¬ Ž Š¼±Mç]Üž!–—±MÜžù–Ì•¸MÜž1–†±M4ß8Í=¹
:Ì
z$+!(«Ê ©°¬ ¨çvܞܞܞ
<çAÖG¹
EØ
1•ÈFM 9•ÑFM S ×FM Z V³³Mè)Üž!–„³MÜžù–Ì•¥MÜž1–ó²MÞÇ´5¹
2
 Q þT PúèÜžôÜžîÜžæ¾§¹
t9•ÀGM1•ÁGM %ÆGMb^Zc±[Ì™y¤ XT PLÇGMµMéù–È´GM_Øù•§G!MÜž!–ê´MÜžù–Ì•MSPÜžN:yÌ™lgcja©
°Á•§GM¸”Ï éÜžèÜžâ÷ôû:gM¨gMø
ÿ

õ
 ñ
޼gMùŽÜf`MÎ
æ¢gMÜž†gMÜžåfMÜžëfMÃ1¹
1z ÛiMÔiM
ý ùõðjŽðiMùŽ•i[MüáþæøŽ¼iM»­¥iMÜž°iMÜžìéÈ<¹
<¦lMÀlMx

 u
 q
ŽÔlMŠùŽïkeMN
èÙŽ«lMÜžlMÜžùkMÜžÿkM Ã1¹
1z ÿnMønM˜ } yupjŽ”oMŒùޏn\M|ã~èxŽànM»­ÉnMÜžÔnMÜžmiH<¹
<ÁqMÓqMœ£ T PŽçqMùŽŠq]MV噎ÆqMÜžªqMÜž”qMÜžšqM/Ã1¹
1z ùŽ…t7M¯Ÿ¶tMž¥ V RùŽýs?M Ž»tMŽËtMùŽÂs‰MòŸÖ¡tMÙùŽ…t#M噎©tMŽêsM»­ÓsMÜžÞsMÜž œtMŠ@¹
@°¿xMÏxMc_f~ ]Y UŽãxMùŽ‹xXM2牎ÄxMÜž¨xMÜž’xMÜž˜xMæÙ9¹
9Ì|MÅ|Mª¦ŽŠ© ˆ |wŽá|MùŽˆ|YMƒâ玭|M»­–|MÜž¡|MÜžqn*D¹
DMY `  ±[Ì™ª º Õ    } 1 ŽªMùŽä~FM7 éM Ø> Üžô~MÜžë~MS !~!Üž|!/7ƒÌ™¢!
¤‚M±[
ÊL¡‘¤‚M48>ùNMY_n±[
ûM¡‘ÉL𦏠œ‚M ÛܞȂM kg O
V

L 
H
D?k ïå‚M+1Žô‚MG ùŽø€üMv}«áü­æ§ Ž…‚M»­ÐM¡‘ëMáÝáÝ&Ò—/ áÝ;øÜžÍÊ©¦mûlùˆ÷ÖÜž ÿûܯÛÝáÝnáÝu˜†M+k±[ÜžĆM ¹ŽĆM±[
ÒLܞܞ¡‘AÒ†MŽˆM ŽÚ†Mí†M Ž€‡MŽMžùŽÈ„¹MùŽ”†mM½kÔ¥†MÜžÁ…M¡‘£…MÜžÛ»­þû( :økƒã¡‘à øýá8MýÀgM M‚žù·M)MM|‚žŒû±[ýÇvM M ‚ž±[
¼M‰OM¢ ù¨LáMÖ1NMͨ®ùöM.MǨÙ¬©Ö1áNM©®ùºN.Mþ¨Ù©ýàãMM‚žùúLMýÙÔMM$‚ž=M M ˈM
ÏTMMdoneÁMmlA!ßt‚žùÄL#Mªß)ºLM‚žÞÜžMM IterNamesÁMflagsÁMMidxÁMMsourceÁMM©PM+ÁüŠ“(‚ž
ŒM|‚žŒûY˜NM!˜NM #
*!NM
Ö7å ¢NMâ
êùöM!Mšëz
 £NMãYÜNM!ÜNM #
*!áNMÂê5E æNMB
JùºN!Mšëxj çNMO
WùúL'M
M‚žrM|‚žŒû뺘 úNM O¢K‡èkªßf‚ž@Àªß¾‚ž#Aªß?¤ª"M|‚žŒûù«S.MYÍSM!ÍSM #
*!ÒSMÂê51ÒSM ×SMh
où«S!MšëzŽ ØSMùïS.MYTM!TM #
*!TMÂê51TM TMh
oùïS!MšëzŽ œTMùªR†M
ùªR,M
M$‚žùìR)MM|‚žŒû}æQ ¯TM ¾TM£ùÍQñMìèùïQ(Mªß)åQM‚žãߪßÝ‚ž`\ªßZBmÃM|‚žŒû1áVM¯ ø»¸  M‚žµM|‚žŒû±[° M ‚ž±[­õVM§
ù¥VPM¼¢ÁÖ¾ˆ¯®»Ù
°Ö·¸¯®´®¯Ù°M‚ž¬§M$‚žà‡èq»VMÜž!²VM‚žGìè ÝM|‚žŒûù‘Å M±[‚žó’M©ù’»’8MótÔÑ‘Ê M‚ž!’Ó’M3ît9?
FÁ‘Ê M
Ôa° øä M±©«‚žÜž¨ÆÁ‘­
M
±‘­
MÌ™+ñ‘¨
M ø Å
M†”Mªù’Ò“4M‚ž!’è“MÜžŠ(³Üžó•M«³í²Öç²â²ß1’Ë•M1 M Üži‘ M
 !‘ MÂê? M¹«³³†³ß¤ªßµã³ù‘ï "M!Œ M "
)á‘ï M
×5I  MXù‘é (M|ù‘ç
-M Û¼‚ž
!‘Ú M ÛÜžQ‘
M!
M ! ø š
Mù‘ã 9M Û¼‚ž
M ¼M˜M¬ù’ž—rMù‘¬ pMÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ‚žù’×-M)’µ—MÒ—âÞù‘¬ 3MÜžY‚žAÜž?´I´ƒÑù‘+M!‘¬M "
)ù‘%M¸”4H°Mù‘1M ø±MÖ™M­ù’û˜[M‚ž!’©™M)’›™MÜžÀ»´I¯¶ª¶ ¦¶ ø¡¶„›M®“¶Ù·‚ž!’ÙšM)’ËšMÜž´ß¶!‘¯M 
ù‘#M
Ù8Ÿ·³MŠ· ø…·ä®‚žÏÉÜž÷· ´ã©·1‘M Üž‰‘M
 A˜M
ÝAQ‘˜M¡M’ŸM°ù’ΞDM!’ïžMßù’Ì•ž Mªß¢B1íM Üžy‘íM
 1ôM
ÞAA‘ôMûMº M±ù’úŸ@M!’™ Mßù’Ì•È
Mªß¢B1ÒM Üž9‘äM ܞёÒM
 QÙM
ß\D™‘ÙMëM ü¡M²ù’¦¡VM!’סMßù’Ì•ø M‚ž1’Æ¡MªßÖÜžÁ/¹
,e1ÀM Üž9‘ÐM ÜžÁ‘ÀM
 AÇM
à\D‰‘ÇM×M º£M³ù’è¢RM!’—£Mßù’Ì•¸
M‚ž1’†£MªßÖÜžÁ/¹
,e 9‘¼MÜžyµM=090Üž&0-0
#0 00Üž0tê¤M´ù’¦¤DM)0á§+0æ%0ͤM ‚žù’Ì•òM‚ž1’À¤MÜž!11ý0 @¹
=˜9‘¨MÜžy¡MJ0F0Üž30/060N0 -0)0 %0!0Üž!0ä§Mµù’ §DM/0âÂ10ç+0ǧMÝù’Ì•ìM‚ž1’º§MÜžF1C1"11@H¹
E 9‘MÜžyMN0I0Üž60=0 30 /0+0Üž+0tž©Mù’Ú¨DM90ã§;0è50©MÝù’Ì•¦M‚ž1’ô¨MÜž/1+1
1@¹
= á‘ìM1‘ìMÜž9‘MÜžs0z0 +0 '0ù‘ç"M øˆMƬM¸ù’í«YMT0å©‘óM‚ž!’Ÿ¬M‚žù’Ì•ÀM‚ž1’ެMÜžý:1ð>¹
;B>EÜž=DÜžy
aóM
å|ç M N øIE¸@‚ž'‚ž"‚žÜžÜžÜžP¹
N ©‘ÞM1‘ÞMÜž9‘ëMÜž…6Œ6
6 ~6Ù‘ÙM øóM•®M¹ù’Ê­KM6æq‘åM‚ž!’õ­M‚žù’Ì•M‚ž1’ä­MÜžüK7ï>¹
;A=DÜž<CÜžx
)‘åM
æŽ{çòM M øIE¹@‚ž'‚ž"‚žÜžÜžÜžP¹
N Ñ‘ÎM1‘ÎMÜž9‘àMÜž—7“7š7²7 77 ‰7ù‘É M øèM¼±Mºù’ç°UM7癑ÕM‚ž!’—±M‚žù’Ì•¸M‚ž1’†±MÜžz8w8%H¹
EgcjÜžbiÜžž
¦Q‘ÕM
ç´¡ñçM X øSOºJ‚ž1‚ž,‚ž%Üž8Üž6Üž&Z¹
X§ ù‘Í$M1‘ÍMÜž9‘éMÜž¦8­8 £8 Ÿ8ù‘È*M øñM³³M»ù’ʲiM£8èé‘ÔM‚ž!’„³M‚žù’Ì•¥M‚ž1’ó²MÜžþm9ð>¹
;C>EÜž=DÜžz
¡‘ÔM
è|ç ðM N øIE»@‚ž'‚ž"‚žÜžÜžÜžP¹
N™‘ÅM1‘ÅMÜžä1ë1GGGG±[Ì™5G EG`G GG  GG¼1É‘ÀM øØMµM¼ù’È´GMè1éa‘ÌMNGØï1‚ž!’ê´M‚žù’Ì•MÜžI3?H<HÜž:HgCÌ™`HžÜžº
ÂQ‘ÌM
éÐØ×M8 ø40¼+‚ž‚žýÜž>Üž<g !“gMÜž)“¨gMܞà @@
@  @  ø¼gMÇù“Üf`M ¹a“¢gM@悞!“†gM‚ž!“åfM‚ž)“ëfMÜžŠ
Ú@ ø;¹
; )“ÛiMÜž4mAiAÜžVA]A
SA OAKAÜžKA¤ðiMÉù“•i[M;´i“ÔiMkAáéoAæiA¼iMÝI“¥iM‚ž)“°iMÜž]BZB9B(<¹
<¤ !“¦lMÜž)“ÀlMÜžú?@ ÷? ó?T øOÔlMÌù“ïkeMU»Ù“«lMÿ?è\‚ž!“lM‚ž!“ùkM‚ž)“ÿkMÜžRÂ@ ø;¹
; )“ÿnMÜž VAQAÜž>AEA ;A 7A3AÜž3A|”oMÎù“¸n\Mi“ønMSAãÁWAèQAànMÝI“ÉnM‚ž)“ÔnMÜžFBBB!B(<¹
<¤ !“ÁqMÜž)“ÓqMÜžI†AA >A :A øçqMÑù“Šq]M¸™“ÆqMoA傞!“ªqM‚ž!“”qM‚ž)“šqMÜžNB ø;¹
; ù“…t7MÏÒÜž)“¶tMÜžÏBÖB ‡B ƒB\ øWù“ýs?M»tMËtMÓù“Âs‰M«1“¡tMÖ§Ò®ù“…t#M¡ÒÙ¸™“©tMCåÉêsMÝI“ÓsM‚ž)“ÞsM‚žfY“œtMÜžÒDiI¹
Ié !“¿xMÜž)“ÏxMÜžúFöFýFG ôFðF ìFc ø^ãxMÖù“‹xXMdº‰“ÄxMøFçk‚ž!“¨xM‚ž!“’xM‚ž)“˜xMÜž{ÝGÚG,D¹
D)“Ì|MÜž3yHuHÜžbH^HeH}H \HXH THPHÜžPH¾á|MØù“ˆ|YM:µi“Å|MpHâtHçnH­|MÝI“–|M‚ž)“¡|MÜž„II`I]IKD¹
D¬!“MÜž
T?[?ŽTŠT†TT±[Ì™¥T µTÐT „T€T |TxT,?p
 øl
ªMÛù“ä~FMr
¼a“Ma?éy
ÄTØe?‚ž!“ô~M‚ž!“ë~MÜž»ƒ@±U®UÜž¬Up@œÌ™ÒU
¤‚M±[ûÜA“¤‚M.28ùñ˜‚NMSYh±[ÛÝzƒ¥ !“œ‚M Û‚žÜžO ˆM„M ÜžqM
xM

nM 
jM
fMÜžfM¿ ñå‚M+1ô‚MG ù“ø€üMÝt{´a“È‚MçMáeëMæåM …‚MÝI“ÐM¡‘A“ëMáÝ+áÝ4Ãþ=–áF ÜžOOäNÄjûiù÷ô‚žÜž ûÜÀÛÝÇáÝáÝŽQ“˜†M{*±[‚ž1“ĆM ¹“ĆM±[
ÒL‚ž‚ž¡‘AA“Ò†MˆMÚ†M1“í†M€‡MMàù“È„¹Mù“”†mM+©i“¥†M Ô+‚ž!“Á…M¡‘A“£…M‚ž#ëÝû) KÄË-¡‘ÔŽÜ=4 :4
 M‚žù”·M)MM|‚žŒû±[74 M ‚ž±[44 ‰OMä ù”¨LáMÀÝ«1”NMºÝÖ´ÝÝ®ù”öM.M ÝÙ˜ÝÞ«1”áNMÞÖûÝ®ù”ºN.MÙßÝR4M‚žù”úLMN4 M$‚ž‡5 ‡èù”ÄL#Mß)”ºLM‚ž­ìè¶5 vM|‚žŒûèY”˜NM!”˜NM #
*!”NMÊ›5Y¢NMF
Nù”öM!Mšëxn£NM7Y”ÜNM!”ÜNM #
*!”áNMÊ›5©æNM
žù”ºN!Mšëx¾çNM§
¯ù”úL'MÌìÜM|‚žŒûìJ ëúNM ¾äº‡èûßö‚žŸ¹ß·‚žr<ß:4ŒM|‚žŒûù”«S.MY”ÍSM!”ÍSM #
*!”ÒSMÊ›51”ÒSM×SMh
où”«S!MšëzŽØSMù”ïS.MY”TM!”TM #
*!”TMÊ›51”TMTMh
où”ïS!MšëzŽœTMù”ªR†M
ù”ªR,Møðù”ìR)MM|‚žŒûxáL¯TM ¾TMåù”ÍQñMìèù”ïQ(Mß)”åQM‚žÞÚߨ‚ž[WßUBmÃM|‚žŒû7:
4:  M‚žúM|‚žŒû±[,:
M ‚ž±[):
õVMé ù”¥VPMä1”áVMÇ㫾ãÖ¸ãã® ãÙ˜ãä«þãÖøã®ýÙØãK:M‚žùB:
M$‚ž{;
‡èq”»VM‚ž!”²VMìè¡;
ù`M|‚žŒûð•à1
‚ž".†»(•«1±[ô±[C÷»$±[D
÷»sx?¯1
°1ígݼs •¤~彆»Ï ßÚß⪱·ÁéÞ†»ôÕ(–²1·1ï$çÿÿð–à1ùÿ•¤JÎÞR[eüÑ3@±[•¤ß2Öü¯20ü²3eØ\Î2•¤$¿2*œó3ž‚žt±[•¤—4Øi•¤$Â3~\ž‚žœâ
±[­­»w¯Ûw1RýѪ•¤£<Úü¾;eûØ\<üƒx
¸•¤üû;"â´Ú;>ž‚žüÌ>9¨Ý¸¼‚ö”ò>‚ž5±[
élã>/X\üÆ>?ƒü¯Bb  ðü ¶¥ë¤ ‘C 
4Ú@†tÆü‘A# ô•A

ö% Ö¿¶¥
³A
ü÷@> ¶¥ë¤ ´A  ÂA4¨@ Ö¿¶¥±[üŽ@! ¶¥ë¤ ®@
 ¯C°CÞü·=ùü½@†Áü¤Æ‹Lç> ¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV¶¥ë¤ü‚>9•¤$Ø= ˆˆ­?Š×”˜.gd™&¶ð¸RÆ‹æ=¦µò‹u‚ž¦Ì”?Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶¥ÀÆ\‚éM¶¥Më¤Åõ÷»Ì:œžíãŒÅD
±[
˜6,ÅD\ËDü­D* ö ÖDÝDàü¶C§¶¥”ßC•¤$ËC Ûê,ÑCúHúHßûHÁ‘4Ý­f‰úM÷ÀJerrorÁOÕêïð—ØE
‚ž".†»(— E±[ô±[E÷»$±[D
÷»sx?¤E
¥Eógݼs ë¤~彆»ÏéÞ×ßß§±´¾éÞ†» ôÒ§E˜¬Eõ$ˆÿð˜ØEë¤LòíT]gŒ®L
±[Õê,®L\´Lü–L* ö ¿LÆLåüŸK§¶¥”ÈKë¤$´KÅë,ºKÒë”ë!OÕê(™‡M#0™…O
½?Òë"( 4 †»p±[Ľ±[F÷»l ™‡N
ŸsÆ"(4†»è±[Ľú±[G÷»mM
'ŒMþ]cj
ݼx ¶¥å½ Ɔ»  ©ô Ò놻¢ Êô®á±ï‰¾]‰¾âßô†»ùĽ)¾ô†»Ľ: ßW)1±[‚ÐC±[H ÷»QY_±[‚Ðq±[I÷»±[‚П±[J÷»­µµX
†tÆ"(4†»±[Ľ±[K
÷»"o07±[‚ÐJ±[L÷»Yb¡ãW
¡äWŒšݼ¨ ¦´å½½Å©ô†»¾ô'ê±ø‰¾N‚ЂÐ"‚Ð)¾ô†»zĽ:‚ÐAæW 1? P ^±[sz±[ %¥8E †tƆtÆ) †tÆý×%E 
®8E -³8E   †tÆ<
 
½8E 
¢îW ¢ïW[ rxý¡žU"ŒÆÆµXýø7LE
åО"ýéx E·
-ª8E·
-¹8EúšàÍ¥8E
‚ù‚ù (07©ô˜©ô U¥8EÆÄ]³8EÆ{t~¹
Œ __self_discrÁ¦ __arg1_discrÁ¾‰¾#__arg1_0Á7è£óW£ñW ‚ù&0î
é§±[
Ùé§6> ¤ü
ï§±[
Ùï§6?¹ é§ï§¤½
¤¾Qš_¯§k ¯§vé§ é§ï§Ö ï§á§± @Ø é§¦Üã é§ï§øü¬X¯§é§ï§ ËžA±Füš! ±[‰Ó š±[M÷»Œ©üœD駆»üšJ±[ Ô±[÷»WÜÉ% ãüý/ ø¦þ. Ô‘
Qi
Qi­&ï§÷»÷»Ðâ 
øâþ.âŒ
ù—æÇ$ù—"$| ®| § ïíe¼îËè¿*ù—šì$Ã!$±[
Åc÷» ÷»  c cˆ¢cµ
 `£c†½ `àB¤GS
ݼ¹—Û$ ±‡  c cˆ¢cµ
 `£c†½ `àB¤GS
ݼW òDZ[ûFu\»Ÿ ¬ $ ù—»
ý$ ‚È· $õü ‚È‚ÈArgumentÁ„È´ÀbökÏ®ÝWj´â«aűù 
 ±[N § ïíe¼îËè¿*¥Ñù 
 § ïíe¼îËè¿*õŠ ý›ùL äÈ
æù 

 Ÿ 
†»üš±[ Ô±[÷»ø ßüò; ¬ üš©±[ïÔ\ È
 Éü
ü×ò2j«&ï§[ýé t$Æb÷»1ù—°Ö$P ÷»Ù—$h¯÷»1—µ$ª÷»˜ýÅ÷ª«cÃݼ\„á‚ å½ åéÕéÕéÕ
ëÕ†»Îõ‚ ׆»m äÈäÈ ArgumentsÁæÈtemplateÁ `çÈÀ `üöMõô]TdƇ‘ ÆëÖ÷»ÍõŠ ­õŠ « ù‘ ÂòÇôÇ PlaceholderÁõÇ»ÀböÇ formatterÁÀb÷Ç _lifetimeÁÀbøÇùÇCountÁúLjÀb©¡â] å.Ê4±‡ 0þˆ ㈠´$ ÷»Œ…þ‹  ÄŒ À ñÇÀ·ëÖëÖ ÀÎÙQi­&ï§÷»÷»‰Óõ‚ †»¿ Ô…‘ †»] Ô±ïÔr„ˆ 
üÑ ! ±[é§6±[
Ãé§Ή6î ´Ü  ñ püË '±[d…  Öxé§Â   ï§š 
½– ï§ ë  üþ 4 ±FªuÏTì±ì'úÞڵ܇c½– ï§
 ¿ 4
ÈÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
é§Á´À

 ±[ï§

%üŒ
UöŒ

 Ï Ð ü¼ ï§5 u{
Õ
ü¦
1 š—  —  Ö


¯ؘ ¹
% 4±[
™"ï§ؘ HW `-˜ Ö¿š— ±[
Ï 
½
 Ö¿š— 
¾  ƒuü
Vüå
Ûü¨ ˜z ø½– ï§ü *ýð‹àç[ؘ š— ï§u¥«¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúVš—  — ü‡ 9¯§ ˆˆ­?Š×”˜.gd™&¶ð¸RΉë¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúVؘ ½– 1é§ü
!‡˜ ëÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
š— Õï§Ö½– ! — œ¬ ï§œ-ؘ )š— ï§±› +y÷@ ǾD mapped_classify_eosÁ
Ò• gï§7§› žï§
±[ï§üÒ
*üÛ

é§#±[
Åé§ðÆ6
¾
 ú
f s±[ˆ±[§› ÅŸ¨ û
üÖ ¬,<2š— ”ÿ ¯§  ðÆ ï§V±› 4ؘ 4é§4¡B”ëC¢û¢ o§› ï§Ú
ü!±[Té§6±[
Ìé§2´› °±[ï§ÖÓü° Æï§_e ÀÇM©é§Ë­ ª
±
Ç Î Þ±[
™"ï§Ѝ 
ó   
® Ö¿š— ±[«¨ ¯
¦ Ö¿š—  £ ¬ŒXkç[Ѝ š— 罹fc 㟠ô篧ۼݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙò‹Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ѝ  é§ùï§²TЍ ¼š— ¬ï§«ܨ ¾ùtrailersÁ¿µ–¦ ï§»Ò¨  ï§{±[ï§üÉ*üÒ é§#±[
Íé§ðÆ6¬Ý ñf s±[ˆ±[Ò¨ ÅŸ¨ òùüͬ,<2š— ”ö¯§Þ¤ ï§Sܨ 1Ѝ 1é§1ž?”ëCŸÝ­ lÒ¨ |ï§×Ч§

½£½£¾¿£¹À£þÁ£ exhaustedÁ1¥œMu7·Pr~†»ï ±[ô±[O÷»$±[P÷»ÃÈ?§ó 
§ô ¡gݼs ¨¨~彆»  Ò° .Ú² 7°±½Çز †»eôÛШ§

Ò° ±[
ÙÒ° 6>ö ž¨ú ¨û £6¨¨B¼² JÒ° Ú² œcmÔ³ ¹v) ­¨¨  œü¹g 9)¸¨¨Üÿ ­­»w¯Ûw1RýѪ¨¨´Þ ¨¨  püå+  Ò° ¬ú ‡à ¸¼óÉäh ´ù ý“…0x±[
¨#Ò° %¸…x%¾…x8
  ‡à¸¼óÉü«3  ¤ Ý T†   Ö¿ó¨üì%  ó¨ÒÒòKÔ’LÕ¤LíjöUç&Žó¨   üâø Þä 

Ö¿ó¨±[ü¯! ó¨À¸ 
Ï 
j Ù à ù üÍ üŸ|  Æ‹ ý„>áD‡ y·
ýøƒÑx#üð  Æ‹ ¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúVó¨À¸ üž9 ¨¨ –èü þÚ² þ ½øó¨ óÉ~Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ó¨š̼ ä ¸÷¼classÁ¡¼· rŒƒ 
±[Õê \‰ üâ3 ¤   ¢üæµ ó¨ ¨¨ Åë, Òë”ë!OÕêß #Ø 
½?Òë"( 4 †»p±[Ľ±[F÷»lé 
úvóÉ"(4†»è±[Ľú±[Q
÷»m²ã 
'²ä ¬]cj
ݼx ó¨å½ óɆ»  ØÂ Êô†»Ÿßô¨Û±é‰¾W‰¾Üßô†»óĽ#í †»ŒĽ4Œ

é§".†»Ø
±[ô±[R÷»$±[S
÷»sx?·Ü

·Ý
²gݼs Í©~彆»Ï õ‚ Úõ‚ ⪱·ÁÑÅ †»ôÕŒ

é§±[ 08(¸ß
­é§¸ã
¸ä
µ:Í©F¶Å Né§õ‚ šgq ·è2 ­é§û
¸£2Í©
é§
Ûw Ð2|“
é§¼“
±[ 0
 ©
°
¾üÅk
é§„ø
¶Å 
õ·
õ‚ ˆ _reqÁ$T šE# ç·ï§øB
Çü«AÍ
M#øç·ï§ìÕB
ªuÏTì±ì'úÞڵ܇cç·ï§ÄÜA
ç·$ÍA
ï§ ÓA
±œ#$ ç·ï§àJ
Ïü“IÍ
+$øç·ï§ì½J
âÊ ÄÄI
ç·$µI
ï§ »I
±^“K
#“M

Öxêª"( 4 †»p±[Ľ±[T ÷»lÀ¹šL

ÈÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
äªsy†»9±[ĽL±[U÷»[Ài¹—K

'¹˜K
°½
ݼË œª×å½àè ÈÎ S†»\ öÐ h êªì†»õ —Ñ 4±B‰¾°‰¾5g¬Ñ †»LĽ|‹Ñ †»åĽù¼÷D#±[
àW±[V(÷»ù¼*#0ÙüÁPË
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¡‘ôùP
÷ª$ÑP
½ª L×P
¹±[÷ª _trailersÁ.­µÒ óù¿÷D#±[µÒ ±[V(÷»ù¿*#.Úü’Râ
¡‘”¼R
÷ª$§R
ˆØ4­R
f±[÷ª_errorÁ+YµÒ üìT"
 ±[‰Ó ìT
±[W÷»”ûT
üîT
DüìT+
±[ïÔhDU
 U
 œU
U
Þü©Tt
ݼ\ÖT
÷ª,°T
å½ ·T
éÕÈëÕÐ%±(X‰ÓúïÔ­À×V
ÆÒV
Ç« Ç«$.
ÙW
W

!-†»ÙV
±[ô±[X÷»$±[Y÷»rw?ÁÝV

ÁÞV
Ègݼsÿ× {彃†»Ë žŠ ÖžŠ Þ§±´¾†Ú †» ôÒÂçV
ÊàV
/™‹ê’W
Ç«#*§X
àüóW4
SÊ|X
/™‹êYÇ«$ƒX
7¹Z
áüÔYe
`à\§Z
ºÊg/™‹ê¿Ö<¸Ç«ü‘Z"
­­»w¯Ûw1RýѪǫ´ðY
ˆôü\
‡à
¸¼óÉ䌉]
e¡0 ß0 
m 0 ýÆ0x±[
¨#££¹ƒ£¹„£þ-'ºˆÉ¬gŒ0è ŒÞ xx
üÃ]7
üÇ]2
dì]
‡à¸¼óÉ( Ë ø]
M Ö¿¬ ù]
ü©]R
¬ÒÒòKÔ’LÕ¤LíjöUç&ެ ú]
üù\Ë
4³^
 Ö¿¬±[ü™^!
¬€à  ¹^
^ Ã^
Ê^

³0 5åüê[à
 Æ‹D€]
ýÜ/XèS32·
-¨0ý«Ñxï"½—0 Æ‹Dð]
¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV¬€à üµ\9
Ç«$\
–è™\
0Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¬²¬²óɲ×ã  jŠädü\
¬±[Ç«÷·†Þ ŸŒç_

±[Õê,ç_
\í_
üÇ_2
Ë ø_
ÿ_
çüÐ^¯
¬”ù^
Ç«$å^
Åë,ë^
Òë±[Ç«”ë(VÕê½Â`
#ºb

½?Òë"( 4 †»p±[Ľ±[F÷»lËa

úvóÉ"(4†»è±[Ľú±[Q
÷»mÃÆ`

'ÃÇ`
Ó]cj
ݼx ¬å½ØÂ ý†»í Êô†»˜ßô¡Ô±â‰¾P‰¾Õßô†»ìĽí †»Ľ-…NÉŠNà$÷¬0 ÷¬;DNŒN
-3±[Z÷»ÊNT±[[÷»!q±[\÷»>ޱ[]÷»[­±[‚пÄÌÊ‘Nâêݼö×ë þå½÷»!±/:‚ÐE¬“X ½¾%Ô™1Úð9@$ÜX ÂÆ‹Å)Šš5Æ‹=Dùl‰[M øù(‚ž4Üž<CùpÅ"M (Üž4;B$N öø%¶¥1Æ9@,ÿN öû%¶¥1Òë9@TªX ÿƒ%¦1Æ9@ ¤¦%ó¨1óÉ9@ ¤©%ó¨1Òë9@,”L
äªêª º-œª9ÈÎ AH\‡M
äªêª ½-œª9êªAHTÀa
ËÍ%¬1óÉ9@,´b
ËÐ%¬1Òë9@  
      
                   
   
       ëìÔÀü¥Pü:7 `async fn(HttpRequest) -> Result<HttpResponse, Error>`Á;út? # OverviewÁNúüR`] tower-http is a library that provides HTTP-specific middleware and utilities built on top ofÁ [tower].ÁÀúüÄ^[ All middleware uses the [http] and [http-body] crates as the HTTP abstractions. That meansÁü£YV they're compatible with any library or framework that also uses those crates, such asÁüý! [hyper], [tonic], and [warp].ÁŸú¤£ # Example serverÁ¸úü¼^[ This example shows how to apply middleware from `tower-http` to a [`Service`] and then runÁü›0- that service using [hyper] and [hyper-util].ÁÌú”Ð ```rust,no_runÁ¬ã use tower_http::{Áüù&# compression::CompressionLayer,ÁÔ  trace::TraceLayer,Á };ÁüÂ63 use tower::{ServiceBuilder, service_fn, BoxError};Áüù" use http::{Request, Response};Áüœ)& use std::net::{SocketAddr, Ipv6Addr};Á¬Æ use bytes::Bytes;ÁìÜ use http_body_util::Full;Áüú1. use hyper_util::rt::{TokioIo, TokioExecutor};Áü¬1. use hyper_util::service::TowerToHyperService;ÁÞúüâfc # async fn handler(_: Request<hyper::body::Incoming>) -> Result<Response<Full<Bytes>>, BoxError> {ÁüÉ<9 # Ok(Response::new(Full::new(Bytes::from("hello"))))Á<†  # }ÁŽ ú”’  #[tokio::main]Áü¥ -* async fn main() -> Result<(), BoxError> {ÁüÓ A> let addr = SocketAddr::from((Ipv6Addr::LOCALHOST, 8000));Áü•
B? let listener = tokio::net::TcpListener::bind(addr).await?;矯
1. println!("Listening on http://{}", addr);ÁŠ ú loop {Áü 74 let (socket, _) = listener.accept().await?;ÁÕ úüÙ %" tokio::spawn(async move {Áüÿ 2/ let socket = TokioIo::new(socket);Á² úü¶ -* // Build our middleware stackÁüä 30 let service = ServiceBuilder::new()Áü˜
63 .layer(TraceLayer::new_for_http())ÁüÏ
30 .layer(CompressionLayer::new())Áüƒ)& .service_fn(handler);Á­úü±$! // Wrap it for hyperÁüÖFC let hyper_service = TowerToHyperService::new(service);Áúü¡da if let Err(err) = hyper_util::server::conn::auto::Builder::new(TokioExecutor::new())Áü†<9 .serve_connection(socket, hyper_service)ÁÔà .awaitÁŒÞüðEB eprintln!("failed to serve connection: {err:#}");ÁŒ¶ });Á ```ÁðúüôSP Keep in mind that while this example uses [hyper], tower-http supports any HTTPÁüÈMJ client/server implementation that uses the [http] and [http-body] crates.Áú¤š # Example clientÁ¯úü³>; tower-http middleware can also be applied to HTTP clients:Áòú”öËÿ ¬‰æÿ üŸ*' decompression::DecompressionLayer,ÁüÊ*' set_header::SetRequestHeaderLayer,ÁÔõ´€
ü*' classify::StatusInRangeAsFailures,Á×€
üÂ52 use tower::{ServiceBuilder, Service, ServiceExt};Áüø@= use hyper_util::{rt::TokioExecutor, client::legacy::Client};Áì¹£‚
¬×…‚
üí96 use http::{Request, HeaderValue, header::USER_AGENT};Á§ú”«
¬¾ async fn main() {ÁüÔDA let client = Client::builder(TokioExecutor::new()).build_http();Áü™.+ let mut client = ServiceBuilder::new()ÁüÈ@= // Add tracing and consider server errors and clientÁü‰" // errors as failures.Áü¬# .layer(TraceLayer::new(ÁüÐNK StatusInRangeAsFailures::new(400..=599).into_make_classifier()Á ))Áü®96 // Set a `User-Agent` header on all requests.Áüè52 .layer(SetRequestHeaderLayer::overriding(ÁÜž USER_AGENT,Áüº;8 HeaderValue::from_static("tower-http demo")Á»™
ü…)& // Decompress response bodiesÁü¯-* .layer(DecompressionLayer::new())ÁüÝ74 // Wrap a `Client` in our middleware stack.Áü•;8 // This is possible because `Client` implementsÁüÑ  // `tower::Service`.Áìò .service(client);ÁúÌ” // Make a requestÁü®(% let request = Request::builder()Áü×&# .uri("http://example.com")Áüþ+( .body(Full::<Bytes>::default())Á´ª .unwrap();ÁÁúìÅ let response = clientÁ¤ã .ready()Á”ø .awaitÁ¬‹  .unwrap()ÁÔ¡  .call(request)Á”¼ ½ 
´Ï ÏŸ
æ
ô
ô úœø  # Feature FlagsÁŒ!úü!UR All middleware are disabled by default and can be enabled using [cargo features].Áæ!úüê!TQ For example, to enable the [`Trace`] middleware, add the "trace" feature flag inÁ´¿" your `Cargo.toml`:ÁÖ"ú\Ú" ```tomlÁüæ":7 tower-http = { version = "0.1", features = ["trace"] }Á<¡#ô
©#úü­#.+ You can use `"full"` to enable everything:ÁÜ#ú\à#õ£
üì#96 tower-http = { version = "0.1", features = ["full"] }Á<¦$ô
®$ú”²$ # Getting HelpÁÅ$úüÉ$a^ If you're new to tower its [guides] might help. In the tower-http repo we also have a [numberÁü«%`] of examples][examples] showing how to put everything together. You're also welcome to ask inÁüŒ&OL the [`#tower` Discord channel][chat] or open an [issue] with your question.ÁÜ&úüà&+( [tower]: https://crates.io/crates/towerÁüŒ')& [http]: https://crates.io/crates/httpÁü¶'30 [http-body]: https://crates.io/crates/http-bodyÁüê'+( [hyper]: https://crates.io/crates/hyperÁü–(52 [hyper-util]: https://crates.io/crates/hyper-utilÁüÌ(B? [guides]: https://github.com/tower-rs/tower/tree/master/guidesÁü)+( [tonic]: https://crates.io/crates/tonicÁü»))& [warp]: https://crates.io/crates/warpÁüå)MJ [cargo features]: https://doc.rust-lang.org/cargo/reference/features.htmlÁü³*85 [`AddExtension`]: crate::add_extension::AddExtensionÁüì*FC [`Service`]: https://docs.rs/tower/latest/tower/trait.Service.htmlÁü³+$! [chat]: https://discord.gg/tokioÁüØ+>; [issue]: https://github.com/tower-rs/tower-http/issues/newÁü—," [`Trace`]: crate::trace::TraceÁüº,KH [examples]: https://github.com/tower-rs/tower-http/tree/master/examplesÁëìÔÀLZ]`¬ˆ64—6ü+ô% D ö J K*M P ó<, Gets a reference to the underlying service.ÁüZ/88 8°U<™   ¦ ¡8(¨ «8¤ ¬ ® Ð ¼8 Á8ÏT<4 Gets a mutable reference to the underlying service.ÁüÛ788 Ÿ8¿U © ³ ª8«8(µ ¸8¹8¤ ½ ¿ å Í8Î8 Ö8ÏT,×<3 Consumes `self`, returning the underlying service.Áüð68¯8 ³8ÎU À Å8(Ç8¤ Ê Ì í8 Þ8ÏT% ôÄ‘ ª ž ° â, ± ² ½+ ³ ´ ¼, µ8¸ & ·8û$¸
¾8À8!, É8Ð & Î8¼ Õ, ×8actualÁ& Þ8´ß% á*ä ç À8Å/ ü þ º
, Œ  + Ž  , 8¸ 
88!, Ÿ8Ð  ¤ ¥ §, ©8“·
% °% Á È , É Ê Õ+ Ë Ì Ô, Í8¸ Î& Ï8û
Ö8Ø8!, á8Ð & æ8¼ ì, í î û, ï8paramÁ& õ8¼$ ü
ý þ , 8“·
& 8´Š% Œ*  )8Ö
„œ'¬8 pin_projectÁ ¹ » Ö, É Ê Ð+ Ë Ì Ï, Í8¸ Î
Ñ8ß8, ê8Ð  ï, ð ñ ø, ò8Ǻ
$ ù
ú û ý Ì+   8ÿ
8¦ © ¯88ÏT& , ¸8“·
8 å, æ ç î, è8Ǻ
$ ï
ð ñ, ó8Ð  ø, ù ú , û8Ǻ
$ 
ƒ   õ8  8,˜8 Ÿ8æ ¢ ¥ ´8ÏT& «, ­8“·
(8 ¾ ë8 Õ Ý8ÏT,×8$€  ,   , 8Ǻ
,ˆ $ Ž 
 8Ð L ' 8BodyÁ$ 8
¢ , ¦ 8Ð  « , ¬  ­  ´ , ® 8Ǻ
$ µ 
 ·  ¹  M8!8DataÁ Ñ  Ó , Ô 8“·
8Ü 8Ð 'è 8ÓÁ
 î 'ï 8ØÂ
% õ 8!
8½?,ˆ
 Ž

,
8“·
4
8
8Ð
'¥
8ÓÁ
 «
'¬
8½?
% ³
+ Â
 Ã
 Ê
8Ý
8 Ø
8
poll_frameÁ
 å
 Ô 8
& û
8Àý
' 8ÿ
 ' 8²¡  Š  8Œ 8$  $ 8‡ò§ & ©  « 8¬ 8À° '³ 8taskÁ '¹ 8k   :8à  Å $ Æ (Ö 8ÀÙ 'Ü 8ÁÆ
'â 8·  è 8¬  ï 8Í  ö 8Ð ' 8FrameÁ,  8$ˆ 'Œ 8ØÂ
 $ 8$• ' 8½?,    ¢  ¤  æ  8  º 8ÐY  Â  Ã  Ä 8ÏT  Ê 8øÄ
 Õ  Ø 8‡òÖ + õ  ö  ý 8Ý 8 
8
is_end_streamÁ

 ¡
 œ
8$
(£
8º
 «
 õ
8Ð
'Æ
8ÓÁ
'Ì
8ýÉ
 Û
 ç
 Ü
8
 á
8ÏT
+   Œ8Ý4†8 š8 size_hintÁL ¦ ¬ §8(®8Ð 'º8—Î Å 8Ð L×'à8ÓÁ
'æ8ÜË
 ñ ý ò8 ÷8ÏT% œÔ¹ Ô Ë Ú Ÿ, Û Ü ç+ Ý Þ æ, ß8¸ à& á8û
è8ê8!, ó8Ð & ø8¼ þ, ÿ  , 8Ǻ
,& 8¼,ˆ$ Ž   , 8“·
4•& 8´œ% ž*¡ ¤ ÉK8Ö
„®'¾8×»
 Ë Í Ý, Û Ü â+ Ý Þ á, ß8¸ à
ã8ñ8, ü8Ð  ,  ƒ Š, 8Ǻ
,…$  Œ   Ó+ ¡ ¢ ¦8ÿ
£8ÏT,¸& ½, ¿8“·
8 ì, í î õ, ï8Ǻ
$ ö ÷ ø, ú8Ð  ÿ,   ˆ, 8Ǻ
$  Š    8 ž ¤88 ¦8æ © ¬ »8ÏT,­& ², ´8“·
(½8 Å 8 Ü ˆ8ÏT8 ¯, ° ± ¸, ²8Ǻ
$ ¹ º »8À½'À8×Â'Å8p8
Í, Ñ8Ð  Ö, × Ø ß, Ù8Ǻ
$ à á â ä £
8 ò8×õ ø Ÿ ù8$ þ8± &  ƒ88Àˆ'8×'8ˆL :8œ ž(¡8À¤'§8ש'¬8Í µ 
8± Ç È8 debug_tupleÁ Ô æ8Ô Þ ß å, à8Ð  ç8Â í  î8ë ú û 7...Á ƒ8finishÁ4„ Š 8 ², ³ ´ », µ8Ǻ
$ ¼ ½ ¾8ÀÀ'Ã8V'Ë8Ê?8
Ô, Ø8Ð  Ý, Þ ß æ, à8Ǻ
$ ç è é8$, 8“·
4†& Œ8ÀŽ'8V4“'8Ê?4$ ¡ « Ã!8!8° Å Ç, È8“·
8Ð8ÀÓ'Ö8V'Þ8Ê? æ'ç8°% ï+ ý þ 8Ý4ÿ8 8Š $– š Ú8$& Ÿ8À¡'¤8ÿ
¦'©8²¡« ® ¯8°8 ¸$ ¹8‡ò»& ½ ¿8À8ÀÄ'Ç8ÁÆ
'Í8k Ö:8× Ù(Ü8Àß'â8ÁÆ
'è8· î8'ó8° û ý ¹ 8$ 8ÐY<”  œ 8ÏT £8Š  ¨ «8‡ò©¼°Eü*' Middleware for following redirections.Á+út/Æú >úüB`] The [`FollowRedirect`] middleware retries requests with the inner [`Service`] to follow HTTPÁŒ£ redirections.Áµúü¹\Y The middleware tries to clone the original [`Request`] when making a redirected request.Áü–]Z However, since [`Extensions`][http::Extensions] are `!Clone`, any extensions set by outerÁüôZW middleware will be discarded. Also, the request body cannot always be cloned. When theÁüÏ\Y original body is known to be empty by [`Body::size_hint`], the middleware uses `Default`Áü¬b_ implementation of the body type to create a new request body. If you know that the body can beÁü\Y cloned in some way, you can tell the middleware to clone it by configuring a [`policy`].Áìú # ExamplesÁÿú”ƒ ## Basic usageÁúô
ü¢"§
¬Å…‚
ìÛ£‚
üù52 use tower::{Service, ServiceBuilder, ServiceExt};Áü¯GD use tower_http::follow_redirect::{FollowRedirectLayer, RequestUri};Á÷ú¤û # #[tokio::main]Áü?< # async fn main() -> Result<(), std::convert::Infallible> {ÁüÐHE # let http_client = tower::service_fn(|req: Request<_>| async move {Áü™ 2/ # let dest = "https://www.rust-lang.org/";ÁüÌ 2/ # let mut res = http::Response::builder();Áüÿ  # if req.uri() != dest {Á¼ 
 # res = resÁü¸
>; # .status(http::StatusCode::MOVED_PERMANENTLY)Áü÷
85 # .header(http::header::LOCATION, dest);Á  # }Áü¼ XU # Ok::<_, std::convert::Infallible>(res.body(Full::<Bytes>::default()).unwrap())ÁL•  # });ÁüŸ *' let mut client = ServiceBuilder::new()ÁüÊ *' .layer(FollowRedirectLayer::new())Áôõ  .service(http_client);Á
úü˜
$! let request = Request::builder()Áü½
&# .uri("https://rust-lang.org/")Áüä
'$ .body(Full::<Bytes>::default())Á”Œ .unwrap();ÁŸúü£>; let response = client.ready().await?.call(request).await?;Áüâ! // Get the final request URI.Áü„c` assert_eq!(response.extensions().get::<RequestUri>().unwrap().0, "https://www.rust-lang.org/");Á # Ok(())Á
ô
úü‰ ## Customizing the `Policy`Á©úü­XU You can use a [`Policy`] value to customize how the middleware handles redirections.Áúô
ü’"§
ìµ£‚
¬Ó…‚
üé5Çé
üŸ&# use tower_http::follow_redirect::{ÁüÆ" policy::{self, PolicyExt},Áäé FollowRedirectLayer,Á4†×€
ú¤‘ #[derive(Debug)]Á”¦ enum MyError {Á̹ TooManyRedirects,ÁüÓ Other(tower::BoxError),Áæ
ùú¤ýâê
ü’.+ # async fn main() -> Result<(), MyError> {Á¼Á # let http_client =ÁüÙmj # tower::service_fn(|_: Request<Full<Bytes>>| async { Ok(Response::new(Full::<Bytes>::default())) });ÁüÇZW let policy = policy::Limited::new(10) // Set the maximum number of redirections to 10.Áü¢63 // Return an error when the limit was reached.ÁüÙPM .or::<_, (), _>(policy::redirect_fn(|_| Err(MyError::TooManyRedirects)))Áüª_\ // Do not follow cross-origin redirections, and return the redirection responses as-is.ÁüŠ41 .and::<_, (), _>(policy::SameOrigin::new());Á¿úüÃ*ïï
üî85 .layer(FollowRedirectLayer::with_policy(policy))Áü§  .map_err(MyError::Other)ÁôÈÖð
çú // ...ÁüöDA # let _ = client.ready().await?.call(Request::default()).await?;ÁŸô

ô
»follow-redirectÁÜ’EüŒE#|¸E±µÊØëü½¾ÂçR4ý¿â³:<…Çãë74ŽŸä¤:D–ÆåEitherÁ4»úIæCONTENT_ENCODINGÁ„Û ÇèCONTENT_LENGTHÁtõ Éé CONTENT_TYPEÁd ÎêLOCATIONÁD£ ßëTRANSFER_ENCODINGÁŒ¹ öìŒõæ
í’öºî“Ê¥ïÇ”ôð­?DõˆñúvTÿòäï¸óÙù<”óôÓÁ
!)õ×»
öíðøÊ?4…‚Øùíëú²¡Ÿ„¾ûɨ™3üreadyÁ,¸¥‚þk<¿Ìÿ·œØ§üLayerÁ,ýŽ><—0ƒUrlÁ©3…üa^ Tools for customizing the behavior of a [`FollowRedirect`][super::FollowRedirect] middleware.Á 0KXm~Ÿ³ÆÇà¿èMè펟1l -ùN\»OŒ¶šP<ÖÙPçØ5\ý {éQTНªRT¨·˜SchemeÁ4Èš“ʥǔôœúvTáäïí¸ž<cgíçR4 ¿  ³:<Ç  ë74Ÿ 
Ç”<0ô ,IK;=-/l*!¤ Íì܈ ¥Íì∠¨¤ˆü»jÉ܈∤ˆÂ0ÍìÂ0ÍÍìðÆ ÑŸ܈ ðƟ∠ðÆl—
܈∠ðƬf`­p`giceüÊ_Â0ÍìÔ‰ÏÍìÚ‰ ÓÍìȉ ÖÍìΉ ÙŸȉÔ‰Ú‰l…ŸΉÔ‰Ú‰l›¢£¤ˆ~z|ü°Bãäå ã äÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖ埒 ¼
Ô‰Ú‰ȉΉØÅbüƒ3T†æç æ çÉ 
Ô‰Ú‰ȉΉ$–„ÉNdüŒ-Tèé è éÔ‰åË š
Ô‰Ú‰ȉΉÒg˜.pfäɘݘö˜õÌŒllp-çR4 ¿ ³:< Ç!ë74 Ÿ"×/ ¤,#, HJ:<,.D* !üÚ% %%Í씊 ß ç‰&Àc&ü†8  êëì êç‰ ë c cˆ¢cµ
 `£c†½ `àB¤GS
ìݼ$  $
&”Š ±cjü»O ()**()픊 í∘"¿ÚL€ ñ‹ à Í쿊 Æ í"”Šä— œö Á• À ç‰+,¢¤,+Y[UWü‘< D” îïð îç‰ ïÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖð¤Ø'  '
+”Šâˆ¿Š lüö+  ñò ñç‰ ò∿Ú'  '
,”Šâˆ¿Š$… ˜.müÒT üÄP M Create a new redirection [`Policy`] from a closure `F: Fn(&B) -> Option<B>`.Á úü™_ \ [`clone_body`][Policy::clone_body] method of the returned `Policy` delegates to the wrappedÁüùX U closure and [`redirect`][Policy::redirect] method always returns [`Action::Follow`].ÁlÙ ”Šç‰././Á• ç ñ‹ ê ó"”Š ó∜’ ó”Šéž ˜"¿Ú
-”Šâˆ±¨m`beg´”ƒ;‰®<L  à02çR4¿03³:<Ç04ë74(Ÿ05ä¦$J08ªâTPë09Ç”<aô0:,rtdfVX$5”5M4A@B13ô÷0 ä´ïÌŠ=>?@ABC¤†üŒ_\ Create a new [`FilterCredentials`] that removes blocklisted request headers in cross-originÁŒð¬ã
ÌŠ<<
=ü¼9üóDA Configure `self` to mark cross-origin redirections as "blocked".Á”ÃÌŠÌŠ<<
>ýõsüû"üº<9 Configure `self` to mark every redirection as "blocked".ÁL ÌŠÌŠ<<
?$ ü–
#ü× :7 Configure `self` to mark no redirections as "blocked".ÁT
ÌŠÌŠ<<
@
üó 9üŽ MJ Configure `self` to remove blocklisted headers in "blocked" redirections.Áà úüè 1. The blocklist includes the following headers:Áž ú¬¦  - `Authorization`Á  - `Cookie`ÁÜÓ  - `Proxy-Authorization`Á”ú ÌŠÌŠ<<
A$
ýuü»#üñ
EB Configure `self` to remove all headers in "blocked" redirections.ÁTÂÌŠÌŠ<<
Büâ$ü™DA Configure `self` to remove no headers in "blocked" redirections.Á\éÌŠÌŠ<<
CüÚ"ÌŠE´E¤ƒ<†ÌŠDD
Eü·-GHHGÍìÆ‹ ¼ÜŽ ¿ÌŠIJ¢£JI"$')üëBôõö ôÌŠ õÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖöŸ’F ÷F
IƋډØÅwyüÜ2÷ø ÷ÌŠ øЈF êF
JƋډ„É„\—<›çR4 ¿KM³:<ÇKNë74ŸKO,68(*׋Qô›üÖ@= Create a new [`Limited`] with a limit of `max` redirections.Á¢׋PP
Q…ˆÄè׋S´S¤Òü‡FC Returns the default [`Limited`] with a limit of `20` redirections.Á<Õ׋RR
Sü#UVVUØ« ÜŽ ˜׋W¢W üº<ùúû ù׋ úÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖûŸ’T ÆT
WƋډ@Š4¤¨çR4 ¿XZ³:<ÇX[ë74ŸX\Ç”<0ôX],IK;=-/l*_``_à‹ ¢ñ‹ ¥ÊŒaü·jÅ܈âˆÊŒ^Â0bcbc^øŒ É Íœ ´ l“
a܈âˆ ðÆ¬­>@CEüÅ^Â0efghgehfËŽ ÊÜŽ ÎíŽ ÑþŽ Ô lÿ§ l•²ijk¢£¤ikjKMPRUWZ\üªBD­üýþ ü² ýÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖþŸ’d d
iÔ‰Ú‰ȉΉØÅü„3T‡ÿ ÿ² Éd d
jÔ‰Ú‰ȉΉ$—„Éh‘ü-T    ² ‚ Ô‰åËd d
kÔ‰Ú‰ȉΉl”˜.åkɘlݘlö˜llk¤¦çR4
¿mo³:<
Çmpë74
Ÿmq×/
¤,mr,
HJ:<,.D*
!ü×$
ttÁ• Ü
ŽuÀcuü‚8

ƒ  ƒ Ž  c cˆ¢cµ
 `£c†½ `àB¤GS
ݼs 
s
u”Š
±Ë–ü¶c
wxyxywüŽ Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖ˜"Ÿ’Œ‡
ÜŽ ¾
ÍìüŽ Á
“"üŽ¿À üð(
Ø« »
ÏŽz¢zVXRTü B

ˆ Š  ˆ ÏŽ Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖŠ Ÿ’v ¬
v
zƋډüŽ
ØÅ ˜üßf
üˆ6
3 Create a new redirection [`Policy`] from a closureÁü¿2
/ `F: FnMut(&Attempt<'_>) -> Result<Action, E>`.Áò
úüöO
L [`redirect`][Policy::redirect] method of the returned `Policy` delegates toÁÄÆ
 the wrapped closure.Á\æ
”ŠŽ|}|}Á• ò
ÜŽ õ
 Œ “"”Š Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖŒ üœ(
Œ ”ŠýÆ ˜"Ÿ’Œ³
{”ŠÚ‰±š˜ÉËÎз®<L  à~çR4¿~³:<Ç~ë74(Ÿ~ƒ×:¤,~,_aPRAC24D5&|ͤˆüã  Create a new [`SameOrigin`].Á
ôÀˆÀcˆüå8è Ž     Ž  c cˆ¢cµ
 `£c†½ `àB¤GS
 ݼ ì
ˆ± óü×&ŠŠØ« ÜÜŽ ߌ¢Œ "ü„BD‡     Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖŸ’ 
ŒÆ‹Ú‰$•ØÅíš$×#ü×'# #û"þ"ü¢%ô"„Íé"4ãÞ"ü×£Õ"Ø"Ê"Í"¼›Â"$¼µ"£"¦"”"—"†"‰"w"z"´§
üô;8 Trait for the policy on handling redirection responses.Á°ú
# ExampleÁÂúüÆ# Detecting a cyclic redirection:Áêúô
üö%" use http::{Method, Request, Uri};Áüœ" use std::collections::HashSet;Áü¿GD use tower_http::follow_redirect::policy::{Action, Attempt, Policy};Áú¤‹ #[derive(Clone)]Áä  pub struct DetectCycle {Áü½%" uris: HashSet<(Method, Uri)>,Áæ
éúüí-* impl<B, E> Policy<B, E> for DetectCycle {Áü›LI fn redirect(&mut self, attempt: &Attempt<'_>) -> Result<Action, E> {Áüè\Y if self.uris.contains(&(attempt.method().clone(), attempt.location().clone())) {ÁüÅ  Ok(Action::Stop)Á¤æ } else {Áüûb_ self.uris.insert((attempt.previous_method().clone(), attempt.previous().clone()));ÁüÞ " Ok(Action::Follow)Ál

L
Ô
,™
æ

ô
Ÿ ¡Ÿ ¡Îìç·ü§
øñ‹ ¸
‡˜ »
Ÿ„Ø *„Ø £¤¢£¤¢£¤DFIKüž CüÄ
XU Invoked when the service received a response with a redirection status code (`3xx`).Á¡ úü© WT This method returns an [`Action`] which indicates whether the service should followÁ¤…  the redirection.ÁD¡  “ ç· Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂß֤؟ ª Ÿ
¢ç·âˆ¿Š ØÅ ü™3üç \Y Invoked right before the service makes a request, regardless of whether it is redirectedÁ
 or not.ÁØ
úüà
MJ This can for example be used to remove sensitive headers from the requestÁü²)& or prepare the request in other ways.Áàúüè,) The default implementation does nothing.ÁTœ – ç· — õ·Ÿ §Ÿ
£ç·âˆ¿ŠÌ·¶›üÜ,üÕNK Try to clone a request body before the service makes a redirected request.Á¨úü°85 If the request body cannot be cloned, return `None`.ÁíúüõWT This is not invoked when [`B::size_hint`][http_body::Body::size_hint] returns zero,ÁüÑKH in which case `B::default()` will be used to create a new request body.Á¡úü©.+ The default implementation returns `None`.ÁTߘ  ˜ ç· ™ ∿ڟ êŸ
¤ç·âˆ¿ŠÕ¸?œü¡I8𠦧¡¨¨§š ¦ñ‹ ¦‡˜ ©Îì ¬Ÿâˆ¿Š©ª«¢£¤«©ªZ\_a[]üñB œ   › „ œ Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖ ¤Ø¥ ý¥
©8∿Š$‚ØÅ÷œüä2ž Ÿ  ž „ Ÿ õ·¥ ò¥
ª8âˆ¿Š„É²üÉ+  ¡    „ ¡ ∿ڥ ×¥
«8âˆ¿Š˜.Œžü¢I­®¡¯®­¯Ø« §ÜŽ ªÎìà ­ŸàƋډŸ°±²¢£¤±²°Z\_a[]üòB¢ £ ¤  ¢ Ÿ £ Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖ¤ Ÿ’¬ þ¬
°Æ‹Ú‰àØÅûŸüå2¥ ¦  ¥ Ÿ ¦ Ј¬ ó¬
±Æ‹Ú‰à„Éÿ üÊ+§ ¨  § Ÿ ¨ Æ‹çĬ ج
²Æ‹Ú‰à˜.J¢œêü£FC An extension trait for `Policy` that provides additional adapters.Á³³„Ø üê¡
³„Ø „Ø  ´¸´¸¸´ü´ vü„[X Create a new `Policy` that returns [`Action::Follow`] only if `self` and `other` returnÁ¬ä `Action::Follow`.Áþúü†^[ [`clone_body`][Policy::clone_body] method of the returned `Policy` tries to clone the bodyÁ¼é with both policies.Áúl™Ï Ÿúô
¬³…‚
ìÍ£‚
üïWT use tower_http::follow_redirect::policy::{self, clone_body_fn, Limited, PolicyExt};ÁËúŒÓ enum MyBody {Á¬é Bytes(Bytes),ÁÔƒ Full(Full<Bytes>),Áæ
¬úü´JG let policy = Limited::default().and::<_, _, ()>(clone_body_fn(|body| {Áüƒ*' if let MyBody::Bytes(buf) = body {Áü²,) Some(MyBody::Bytes(buf.clone()))Á„ã
} else {Á„ø
NoneÁL Ô
D  }));Áô
· ç·Œ”ííèMð¬ ñ­ lóòË·K'9ç·Œ”³¡µ·µ·³Í쌔 » Íì˜ ¾  Á Íìç·,‹!Ÿç·˜ðÆŸŒ”˜ðÆd!
´ç·Œ”˜ðƹ
~ƒü•&tü°!]Z Create a new `Policy` that returns [`Action::Follow`] if either `self` or `other` returnsÁ¬’"³ð ¬"úü´"^Þð ¼—#Åñ ³#úl»#™Ï Í#ú<Õ#ô
üá#PM use tower_http::follow_redirect::policy::{self, Action, Limited, PolicyExt};Á¶$ú¤¾$¹Ñ ”×$÷÷
Ìî$’ø
tŒ% // ...Á,Ÿ%æ
©%úü±%SP let policy = Limited::default().or::<_, (), _>(Err(MyError::TooManyRedirects));Á<‰&ô
˜&ç·Œ”ÙPž¬XŸ­XåV¯Êß½<ç·Œ”³¡¹º»¹º»³Åø &Öø ž& ¡&ïø ,ê&€ù dÛ&˜ù dü&
¸ç·Œ”˜ðÆ$¤&¹
,ª&PRUWZ\ü',¥½½Îì¡‘ ’'¡‘¾Â´¸Â¾ üÀ'vÃ'¡‘Œ”ýƼ¡¿ÀÁÁ¿À¼Åø Ç'Öø Ê' Í'Íì¡‘,—(Ÿ¡‘˜ðÆdˆ(˜ù d©(
¾¡‘Œ”˜ðƹ
gilnqsüæ(té(¡‘Œ”ßȼ¡ÃÄÅÅÃļŸ ì(Öø ï( ò(è ,»)ù d¬)˜ù dÍ)
¡‘Œ”˜ðƹ
NPSUXZŒÿ+ü‡*HE A redirection [`Policy`] with a reasonable set of standard behavior.ÁÐ*úüÔ*JG This policy limits the number of successive redirections ([`Limited`])ÁüŸ+_\ and removes credentials from requests in cross-origin redirections ([`FilterCredentials`]).ÁDˆ,òæ´ñ,üµ,;8 A type that holds information on a redirection attempt.Á<ü,Â:ÈÈÇdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖÂ:Ë¡/ejÂßÖÉÊËÌÍ„-ìŽ-4™-ÇÇóÉì±-4¼-ÇÇ Â:…ËäÔ-Dß-ÇÇ Â:Úðüö-&|.ÇÇ ä¢.D­.ÇDZ‰ ¤Ã.Â:ÏÏÙ‡ ÐÑÒÓÔÈ.üˆ/"üÞ.%" Returns the redirection response.Á4/©  © Ù‡ óÉÎ –/Î
ÐÂ:$—/ü‡0"üÌ/63 Returns the destination method of the redirection.Á4Ž0ª  ª Ù‡ Î •0Î
ÑÂ:$0üƒ1!üË030 Returns the destination URI of the redirection.ÁDŠ1«  « Ù‡ ±‰ Î “1Î
ÒÂ:$”1ü‘2+üÈ1DA Returns the method for the previous request, before redirection.Á|˜2¬  ¬ Ù‡ Î ¨2Î
ÓÂ:$©2ü˜3!üç2,) Returns the URI of the original request.ÁDŸ3­  ­ Ù‡ ±‰ Î ¨3Î
ÔÂ:$©3\´6®‘Ö×ü‚7üÆ674 Returns `true` if the `Action` is a `Follow` value.ÁL‰7®  ® ®‘Õ “7Õ
Ö$”7ìÎ8ü”852 Returns `true` if the `Action` is a `Stop` value.Á<Õ8¯  ¯ ®‘Õ Ý8Õ
×$Þ8üÚ9"ÙÚÚÙØ« ß9ÜŽ â9®‘Û¢Û "üƒ:<D†:° ± ²  ° ®‘ ± Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖ² Ÿ’Ø :Ø
ÛÆ‹Ú‰$”:¡©üÝ:AÝÞÝÞØ« â:ÜŽ å:ØÚ‰,˜;Ÿ’ߢß+-02ü¥;<D¨;³ ´ µ  ³ Ÿ’ ´ Çdz:ÉÌ:ÊÚ:Ëè:Ìø:Í;Ë¡/ejÂßÖµ Ÿ’Ü ±;Ü
߯‹Ú‰$¶;n«üÎ<*LÑ<·  ¶ Úð · Úð à<áñÛ<rhsÁæ<‰KŒK{K~KmKpK_KbKä¥OK$ÇÄÓ6K´íK¤…K„›êJ̱ËJ¸J»J©J¬JšJJJŽJ}J€JoJrJ`JcJQJTJ|¤FJì¹9JÜ„ç0Jtý#JJJDšJôI÷IüÜYæIéI×IÚIÈIËI¤Ö¼I”ðªI´ˆID¤ŽIÄ¥!ƒê¤™"üÄ!PM Create a new [`FollowRedirectLayer`] with a [`Standard`] redirection policy.Á "ƒêÖéôÑ"¡ˆˆÍ챓 Ö"„“ 
üÊ#%üö"OL Create a new [`FollowRedirectLayer`] with the given redirection [`Policy`].Á\Ñ#±“„“
±“0|®ü¢$P¤¡ŒŒÍì’” §$Åø ª$Ø’”,Þ$ØŒ”,ì$ß“ŽŽBDGIdù$<þ$ŠŠŸ”ü£%*,¦%¸  ¸ ß“’”ß“’”Š ¬%Š
Ž’”Œ”$­%ÏT¢¯Ì“(¤í ˜(¹èäƒ)ü³(KH Create a new [`FollowRedirect`] with a [`Standard`] redirection policy.ÁŠ)’”¹è
’”ÏT´üé*%üã)SP Returns a new [`Layer`] that wraps services with a `FollowRedirect` middleware.Á»*úüÃ*! [`Layer`]: tower_layer::LayerÁ,ð*ƒê
’”ü½+3¤¡í Â+Åø Å+–ž ,ê+Ÿ”èéê'),.üÆ,/ü÷+JG Create a n
0 0 0
 ¡ÙÛÕ×ÑÓlí1Dò1˜˜ø§ T”2,™2˜˜ºñ\¯24´2˜˜Õˆüá2OTä2¹ º »  ¹ û” º ÌÌkÎòð¸Ï…ñ¸Ðžñ¸Ñúˆ¸Ò¾ñ¸f'EwÚ]¾å» œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
û”½•0
˜ ï2˜
 ‚–³¨ ³•$ô2‡òå¸üà3=$ã3¼  ¼ û”½•û”½•0 ˜ è3˜
¡‚–³¨ ³•$í3àŒ÷3üŸ<Ò¤£ÿ>¤Ž?¥¡¦£¥¦¤
’”²¦0 ê®äŒ=ÍìÙ<§<Í쥯<°<ߨ ¹<0’”²¦üò<7í ¤<†ž ,¬=!)Ù$À=³Ù<Ç=ŸÙ«¯Ì×=ا¨ƒØ„ب[]Ÿž \ø=4ý=¢¢دü°>I$³>¾ ¿ À „¾„¾²¡†¾ ˜X$]È=„kt• ¾ Ř ¿ ÌÌkÎòð¸Ï…ñ¸Ðžñ¸Ñúˆ¸Ò¾ñ¸f'EwÚ]¾åÀ œØžØŸØÈ Øˆ¡Ø¢Ø´‰‰Nµý¤ÃŘƒØ¢ Â>¢
¨’”Ù¥¯ÿ‡ò!ÿÌû@¨ɘ©ݘ©ö˜©©¨©’”Ù¥¯½  ½ ‚ö,ÄL¨ɘªݘªö˜ªª¨ëüýX0¬¬Ø« ‚Y!)Æ‹$žY³Æ‹<¥YŠš­®-/ü´Y$·YÁ  Á ŠšçÄ« ¼Y«
­Æ‹$ÁYüí[[tð[ à Ä  Â Šš à Ƌ Ä Œ”«¡¯°¯° …\«Åø ÿ[‡˜ ‚\ŸŒ”Æ‹¿Šd»\
®Æ‹Œ”¿Š$Š\˜.ì"0ö"LNQSüÞ^kTá^Å Æ  Å ±“ Æ âˆ¿Ú¡²³´³´² ý^û› ì^ñ‹ ï^‡˜ ò^Ÿ±“∿Šd¥_!)âˆ$º_³âˆ<Á_
±±“∿Š0ï&˜.ù&lnqsvxü“a9\aÇ È  Ç  È Ú𨿠¬aß±relativeÁD¢abaseÁ$²a„ŒIüA
> Tools for classifying responses as either success or failure.ÁD”IÀì°ÀÊÒ­ÃËŒõLN
æ
¸Ç”<Y
ô¹­?Db
ˆºúvTl
»
InfallibleÁTŒ
ˆê½×˜
¤,¾û
¿û¿ù\DÉ
ΨÆr¼Ó
ð©ûq¤ì
ꪇs„‚
ö«ªu|²
¬“v¼â
ž®ÙvÌû
¤¯$G
03!$}
œƒ
ôàâœ
Òü´&
¼Ã
éÎðêö÷øùÿ—x” ÀÂßC\ ÊÀÃÒJ„-ÀÀÄ»w„?­ÀÅ¡D`ÀÆŒõLuæ
ÀÈ­?D€ˆÀÉפ,ÀË
NonZeroI32ÁTŸÌ—ÀÌ,ÄÆ´¤¦–”V‡$nvxfhY[|šBl  æšÎü´ 3 æš‚žÍÍ
Î ÜÛü×;8 Converts an `i32` gRPC status code into a [`GrpcCode`].Áúü—C@ Unrecognized codes (outside 0-16) map to [`GrpcCode::Unknown`].ÁæšÐëÐÜý$€æšÏÏ
л@.üž"æšÒëÒüÇ"ÆæšÑÑ
Ò»¤Æ&‚žÔüá&*dä&ÀÃþÓÓ
ÔcodeÁ$ñ&üƒ2%•¤Ö´Ö¤¯2<²2•¤ÕÕ
ÖÌã2•¤ØÙÚ¤²3üƒ3*' Create a new [`GrpcErrorsAsFailures`].Á¹3•¤××
Øüÿ85ü430 Change which gRPC codes are considered success.ÁÕ4úüÝ41. Defaults to only considering `Ok` as success.Á“5úü›5-* `Ok` will always be considered a success.ÁÍ5úlÕ5™Ï ç5úüï5ZW Servers might not want to consider `Invalid Argument` or `Not Found` as failures sinceÁüÎ6# thats likely the clients fault:Áö6ú\þ6 ```rustÁüŽ7?< use tower_http::classify::{GrpcErrorsAsFailures, GrpcCode};ÁÒ7úüÚ70- let classifier = GrpcErrorsAsFailures::new()Áü80- .with_success(GrpcCode::InvalidArgument)ÁüÄ8*' .with_success(GrpcCode::NotFound);Á<ó8ô
d†9•¤æš•¤××
Ù$—9ñÅ $9ü¾;2ü‚:]Z Returns a [`MakeClassifier`](super::MakeClassifier) that produces `GrpcErrorsAsFailures`.Áä:úüì:MJ This is a convenience function that simply calls `SharedClassifier::new`.Á|Å;â××
Úü§<.•¤ÜÝÞàÁÂÃÅÞàŒÜ<dá<ÛÛ¶¥„†=\‹=ÛÛë¤ü·=„Œº=É •¤ É ˜è¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV•¤Á•¤ÂÛßß ë=ÛØ« Ì=
ÞÆ‹÷ü¶Cht¹CÊ •¤ Ê Ûê¶Ò Ûáá ØCÛÍìÛê ÈCÄcÛêd‡DÛê<D
àÛê”ë68üûE,ë¤ãäåËÌÍä匮Fd³Fââ¶¥üÙFUdÜFË ë¤Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Ë ‚öÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ë¤Ëâ €Gâ
ä$éF»« DïFüŸKht¢KÌ ë¤ Ì ÛêÛÖ âææ ÁKâøÓ ±K‰Ô dðK™Ô <ÿK
åÛêÊó”ëÈó+-ü‘O&¶¥èÅcèü¾O4ÁOÍ Î Ï  Í ¶¥ Î  c cˆ¢cµ
 `£c†½ `àB¤GS
Ï ݼç ÅOç
è$ÆO± ÌOü›Qx´©QÐ  Ð ‚ö‚ž¦ ÎQíãÍV<ÅQ—rlÞQ¤šR<§R ¯R ûS ¹R ÒR , ºR8$»R& ¿R8$ÀR$ ÄR, ÆR8¹
,ÇR& ÌR8¼,ÍR*ÔR ×R ôS
8åR8èR8Û$ìR ðR öR8»,ñR øR, úR8$ûR €S ¤S8»,S8$¦S «S êS84½S8Ús„ÄS'ÔS, ÖS8¹
,×S% ÜS% õS4˜Véɘëݘëö˜ëëéë ‚žß¬Ü
Έ
—x” ìîßC\ ÊìïÒJ„-ÀìðŒõLKæ
ìò­?DVˆìó×j¤,ìô,y{ikY[$DKM;=De.ü… ö÷ö÷Íìé§ ŠÍìï§ ¯§øü¬,ºé§ï§¯§õõ
øé§ï§žA±RîüˆHúûûúØß éß ¿c駯§üÀcü+-02ü×8ÚÑ Ò Ó  Ñ ¯§ Ò  c cˆ¢cµ
 `£c†½ `àB¤GS
Ó ݼù Þù
üé§ï§±béüÍŠþÿ±Fþÿï§±› ˜"š— DÎéß ÕÍìš— Àé§„š–"ï§±› ü³#Øß Ò¯§ƒÁÂÃŃ,.wysuŒÞýýš— „€\…ýý — ü¼Œ¿Ô ¯§ Ô ¬ž ¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV¯§Á¯§Âý ðýþŽ Ñ
ƒé§ï§š— Ή÷')üÖ m Õ ¯§ Õ ðÆÃæ ý ø ý è ÄcðÆŒ§
ðÆ

é§ï§š— ðÆöá”ëñáBDü†ˆ±FŠŠˆï§ܨ ˜"š— Dýéß Ž‚ä D‘Êé§–"ï§ܨ üâ#Øß ¯§ŒËÌÍŒ%'gilnŒd’š— ü°UÖ ¯§Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ Ö ‚öÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¯§Ë ×
Œé§ï§š— »« ÛàüÍm× ¯§ × ðÆ¦ì ŽŽ ï ßœè Œž¬è 
é§ï§š— ðÆ”ë79äó
Ä÷
ž¤—x” ÒJ„ ÀòK„2 Ò»w„D ­úvTa ×w ¤,¾t ½£˜, Ž~np^`„[ Qq BDœ| 5äÆ
¨¨šœü¯
. üé
, ) Creates a new `StatusInRangeAsFailures`.Áš ú # PanicsÁ³ úü» T Q Panics if the start or end of `range` aren't valid status codes as determined byÁì”  [`StatusCode::from_u16`].Á úü¾ l i [`StatusCode::from_u16`]: https://docs.rs/http/latest/http/status/struct.StatusCode.html#method.from_u16Á
Ò° ¨¨
š²v,º
üÙ1 ü“Z W Creates a new `StatusInRangeAsFailures` that classifies client and server responses asÁ
failures.Á úüŒH E This is a convenience for `StatusInRangeAsFailures::new(400..=599)`.Áüà ¨¨
ü¹; üµE B Convert this `StatusInRangeAsFailures` into a [`MakeClassifier`].Áÿ úü‡- * [`MakeClassifier`]: super::MakeClassifierÁ¤À ¨¨ºµ 
œ€àü¤1 ¨¨žŸ ¢ÁÂÃÅ¢ ŒÜ ó¨ \” ÒÒòKÔ’LÕ¤LíjöUç&ލ¨ÁüÍŠ ŒÐ Ø ¨¨ Ø ˜è¹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV›ø ¨¨Â¡¡  Ø« â
 Æ‹ãÞ÷áÞüæm té Ù ¨¨ Ù Ûê›ø ££ ˆ øÓ ø ‰Ô Œ· ™Ô 
¢Ûê
Þ”ë Þ+-üä/ ó¨¥Åc¥üš8  Ú Û Ü  Ú ó¨ Û  c cˆ¢cµ
 `£c†½ `àB¤GS
Ü ݼ¤ ¡ ¤
¥ ± ¨
üš#
È˼¿°³¤§üŸ"
üšÅ
ˆÄä
ü›<
9 Trait for producing response classifiers from a request.ÁØ
úüÜ^
[ This is useful when a classifier depends on data from the request. For example, this couldÁü»#
include the URI or HTTP method.Áß
úüã]
Z This trait is generic over the [`Error` type] of the `Service`s used with the classifier.ÁüÁ?
< This is necessary for [`ClassifyResponse::classify_error`].Á
úü…^
[ [`Error` type]: https://docs.rs/tower/latest/tower/trait.Service.html#associatedtype.ErrorÁ
°°„Ø üäÙ
°„Ø „Ø  ±²³´±²³´Íìç·±ü­}
Àž‚
ü¾k
ž‚
Áç·²üØ!
ž‚
Âç·³üƒ 
–‚
P¯‚
EÀ‚
0Û‚
ÍìË‚
”ž
ƒ
Íìæ‚
üú A
Êæ‚
üŒ .
æ‚
ËË‚
ü˜ !
§ƒ
.¹ƒ
#ʃ
´ü­|
üƒ%
" The response classifier produced.ÁT²
°°Œž
ü° (
% The type of failure classifications.ÁÝ
úüå F
C This might include additional information about the error, such asÁü°
H
E whether it was a client or server error, or whether or not it shouldÁäý
 be considered retryable.Ád£
°°üú @
ü¶ ?
< The type used to classify the response end of stream (EOS).Á\ÿ
°°üø C
üÁ 2
/ Returns a response classifier for this requestÁ|û
Ý Þ  Ý ç· Þ õ·ž‚
°µµ Ž
°ñ‹
´ç·âˆ$
àŒ
!#Üž
··Øß £
Í©¸ 
üƒP
üÀ>
; Create a new `SharedClassifier` from the given classifier.ÁŠ
é§Í©“ä „º
Øé§
¸é§ÛwLáüÿU
ººØß 
“ä „»
ÔŠ

Í©»¼½¾²³±´¾8:ŒÛ

¹¹ؘ „„
\‰
¹¹½– |«

¹¹é§üÅC

ß à  ß Í© à õ·Í©±¹¿¿ Û
¹ñ‹ Ø
¾é§âˆ
æÈ ôá "Ô½%
ü´`
] Trait for classifying responses as either success or failure. Designed to support both unaryÁü• S
P requests (single request for a single response) as well as streaming responses.Áé
úüí N
K Response classifiers are used in cases where middleware needs to determineÁü¼!N
K whether a response completed successfully or failed. For example, they mayÁü‹"K
H be used by logging or metrics middleware to record failures differentlyÁœ×"
 from successes.Áë"
úüï"I
F Furthermore, when a response fails, a response classifier may provideÁü¹#O
L additional information about the failure. This can, for example, be used toÁü‰$O
L build [retry policies] by indicating whether or not a particular failure isÁtÙ$
retryable.Áè$
úüì$P
M [retry policies]: https://docs.rs/tower/latest/tower/retry/trait.Policy.htmlÁ„Ç%
ÀÀ„Ø ü½%½
À„Ø „Ø  ÁÂÃÅÇÁÂÃÅÇÍìç·Á”ø'
«•
Íìç·ÂüÔ(A
ÊÒ•
üæ(.
Ò•
˳•
üò(!
Ê•
.ã•
#ô•
ÇÅÃŒø'
üÞ%A
> The type returned when a response is classified as a failure.Á¤&
úü¬&B
? Depending on the classifier, this may simply indicate that theÁüó&C
@ request failed, or it may contain additional information aboutÁü»'8
5 the failure, such as whether or not it is retryable.Ádý'
ÀÀüÔ(@
ü(?
è…
\Ù(
ÀÀü¡1…
ü›)4
1 Attempt to classify the beginning of a response.ÁÔ)
úüÜ)F
C In some cases, the response can be classified immediately, withoutÁü§*5
2 waiting for a body to complete. This may include:Áá*
úüé*1
. - When the response has an error status code.ÁüŸ+@
= - When a successful response does not have a streaming body.Áüä+?
< - When the classifier does not care about streaming bodies.Á¨,
úü°,H
E When the response can be classified immediately, `classify_response`Áüý,G
D returns a [`ClassifiedResponse::Ready`] which indicates whether the矃-!
 response succeeded or failed.Áï-
úü÷-F
C In other cases, however, the classifier may need to wait until theÁüÂ.G
D response body stream completes before it can classify the response.ÁüŽ/D
A For example, gRPC indicates RPC failures using the `grpc-status`Áü×/8
5 trailer. In this case, `classify_response` returns aÁü”0D
A [`ClassifiedResponse::RequiresEos`] containing a type which willÁüÝ0?
< be used to classify the response when the body stream ends.ÁŒ¤1
á ç· á ˆˆ­?Š×”˜.gd™&¶ð¸R∹ºÈ»ˆ¼½Öx¾ˆñÕúèvúV³•
Ò•
ÀÄÄ Õ1
Àñ‹ ¶1
Ãç·âˆ$Â1
÷Ð1
!#üƒ4h
´¬2
 Classify an error.ÁÇ2
úüÏ2_
\ Errors are always errors (doh) but sometimes it might be useful to have multiple classes ofÁü³3K
H errors. A retry policy might allow retrying some errors and not others.Át†4
â ç· â Ú‰³•
ÀÆÆ ¥4
ÀÜŽ •4
ÄcÚ‰dÔ4
Ú‰<ã4
Åç·Ú‰$˜4
”ë,ž4
<>ü«A
üñ4:
7 Transform the failure classification using a function.Á°5
úl¸5
™Ï Ê5
ú<Ò5
ô
üÞ5
 use tower_http::classify::{Áü‚69
6 ServerErrorsAsFailures, ServerErrorsFailureClass,ÁüÀ6,