B “äî\T ã@s2ddlZddlmZd dd„Zdd„Zdd„ZdS) éN)Ú merge_dictscCsV| |i¡}t||ƒdt | di¡¡i}t||ƒt||ƒ|dk rRt||ƒ|S)NÚ __default__)ÚgetÚresolve_referencesÚcopyÚdeepcopyrÚ_merge_client_retry_config)Zendpoint_prefixZ retry_modelÚ definitionsÚclient_retry_configZservice_configZfinal_retry_config©r ú6/tmp/pip-build-uw_ogi45/botocore/botocore/translate.pyÚbuild_retry_configs     r cCs&| d¡}|dk r"|d|dd<dS)NZ max_attemptsér)r)Z retry_configr Zmax_retry_attempts_overrider r r r)s  rcCshxb| ¡D]V\}}t|tƒr t|ƒdkrVt| ¡ƒddkrV|t| ¡ƒd||<q t||ƒq WdS)aJRecursively replace $ref keys. To cut down on duplication, common definitions can be declared (and passed in via the ``definitions`` attribute) and then references as {"$ref": "name"}, when this happens the reference dict is placed with the value from the ``definition`` dict. This is recursively done. rrz$refN)ÚitemsÚ isinstanceÚdictÚlenÚlistÚkeysÚvaluesr)Úconfigr ÚkeyÚvaluer r r r;s   r)N)rZbotocore.utilsrr rrr r r r Ús