Tryag File Manager
Home
-
Turbo Force
Current Path :
/
usr
/
share
/
rhsm
/
subscription_manager
/
Upload File :
New :
File
Dir
//usr/share/rhsm/subscription_manager/productid.pyc
mò x^Sc�����������@���st��d��k��Z��d�k�l�Z�d��k�Z�d��k�Z�d��k�Z�d��k�Z�d��k�Z�d�k�l �Z �d�k �l�Z�d�k�l �Z �l�Z�d�k�l�Z�d��k�i�Z�d�k�l�Z�e��i��Z�e�i�d�e�ƒ�Z�d�e�f�d �„��ƒ��YZ�d �f��d�„��ƒ��YZ�d�e�f�d �„��ƒ��YZ�d�e�f�d�„��ƒ��YZ�d�e�f�d�„��ƒ��YZ�d�e�f�d�„��ƒ��YZ �d�f��d�„��ƒ��YZ!�e�d�j�o�e!�ƒ��Z"�e"�i#�d�e$�ƒ�n�d��S(���N(���s���GzipFile(���s���create_from_pem(���s ���Directory(���s���PLUGIN_MANAGERs���require(���s���rhelproduct(���s���ourjsons ���rhsm-app.t���DatabaseDirectoryc�����������B���s���t��Z�d�Z�d�„��Z�RS(���Ns���var/lib/rhsmc���������C���s'���t��t�|��ƒ�i�|��i�ƒ�|��i�ƒ��d��S(���N(���t���superR����t���selft���__init__t���PATHt���create(���R���(����(����t1���/usr/share/rhsm/subscription_manager/productid.pyR���+���s����(���t���__name__t ���__module__R���R���(����(����(����R���R����'���s���t���ProductDatabasec�����������B���sP���t��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z �RS( ���Nc���������C���s#���t��ƒ��|��_�h��|��_�|��i�ƒ��d��S(���N(���R����R���t���dirt���contentR���(���R���(����(����R���R���2���s���� c���������C���sn���|�|��i�j�o�g��|��i�|�<n�t�|��i�|�t�i�ƒ�o�|��i�|�g�|��i�|�<n�|��i�|�i�|�ƒ�d��S(���N(���t���productR���R���t ���isinstancet���typest ���StringTypet���appendt���repo(���R���R���R���(����(����R���t���add7���s ����c���������C���s(���y�|��i�|�=Wn�t�j �o�n�Xd��S(���N(���R���R���R���t ���Exception(���R���R���(����(����R���t���delete?���s����c���������C���sI���|��i�i�|�ƒ�}�t�|�t�i�ƒ�o�|�Sn�|�d��j�o�d��Sn�|�g�S(���N( ���R���R���t���getR���t ���repo_valueR ���R���t���ListTypet���None(���R���R���R���(����(����R���t ���find_reposG���s���� c���������C���s+���t��i�i�|��i�ƒ��ƒ�p�|��i�ƒ��n�d��S(���N(���t���ost���patht���existsR���t���_ProductDatabase__fnt���write(���R���(����(����R���R���Q���s����c���������C���sR���t��|��i�ƒ��ƒ�}�y�t�i�|�ƒ�}�|�|��_�Wn�t�j �o�n�X|�i �ƒ��d��S(���N( ���t���openR���R���t���ft���jsont���loadt���dR���R���t���close(���R���R#���R ���(����(����R���t���readU���s���� c���������C���sV���t��|��i�ƒ��d�ƒ�}�y�t�i�|��i�|�d�d�ƒWn�t�j �o�n�X|�i�ƒ��d��S(���Nt���wt���indenti���( ���R���R���R���R ���R!���t���dumpR���R���R$���(���R���R ���(����(����R���R���^���s����c���������C���s���|��i�i�d�ƒ�S(���Ns���productid.js(���R���R ���t���abspath(���R���(����(����R���t���__fnf���s����( ���R���R���R���R���R���R���R���R%���R���R���(����(����(����R���R ���0���s��� t���ComparableMixinc�����������B���sM���t��Z�d��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z �RS(���s%���Needs compare_keys to be implemented.c���������C���s$���|�o�|�|�d�|�d�ƒ�Sn�t�S(���Ni����i���(���t���keyst���methodt���NotImplemented(���R���R,���R-���(����(����R���t���_comparel���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j�S(���N(���t���st���o(���R0���R1���(����(����R���t���<lambda>r���s����(���R���R/���t���compare_keyst���other(���R���R4���(����(����R���t���__eq__q���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j�S(���N(���R0���R1���(���R0���R1���(����(����R���R2���u���s����(���R���R/���R3���R4���(���R���R4���(����(����R���t���__ne__t���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j��S(���N(���R0���R1���(���R0���R1���(����(����R���R2���x���s����(���R���R/���R3���R4���(���R���R4���(����(����R���t���__lt__w���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j�S(���N(���R0���R1���(���R0���R1���(����(����R���R2���{���s����(���R���R/���R3���R4���(���R���R4���(����(����R���t���__gt__z���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j�S(���N(���R0���R1���(���R0���R1���(����(����R���R2���~���s����(���R���R/���R3���R4���(���R���R4���(����(����R���t���__le__}���s����c���������C���s���|��i�|��i�|�ƒ�d�„��ƒ�S(���Nc���������C���s ���|��|�j�S(���N(���R0���R1���(���R0���R1���(����(����R���R2������s����(���R���R/���R3���R4���(���R���R4���(����(����R���t���__ge__€���s����( ���R���R���t���__doc__R/���R5���R6���R7���R8���R9���R:���(����(����(����R���R+���j���s���� t ���RpmVersionc�����������B���sw���t��Z�d��Z�d�d�g�Z�d�d�d�d�„�Z�e�d�„��ƒ�Z�e�d�„��ƒ�Z�d�„��Z�d �„��Z �d �„��Z �d�„��Z�d�„��Z�RS( ���s$��Represent the epoch, version, release of a rpm style version. This includes the rich comparison methods to support >,<,==,!- using rpm's labelCompare. See http://fedoraproject.org/wiki/Archive:Tools/RPM/VersionComparison for more details of the actual comparison rules. t���alphat���betat���0t���1c���������C���s���|�|��_��|�|��_�|�|��_�d��S(���N(���t���epochR���t���versiont���release(���R���RA���RB���RC���(����(����R���R���‘���s���� c���������C���s���|��i�|��i�|��i�f�S(���N(���R���RA���RB���RC���(���R���(����(����R���t���evr–���s����c������������s(���‡��d�†��}�ˆ��i�|�ˆ��i�ƒ�ˆ��i�f�S(���Nc������������sQ���xJ�ˆ��i�D]?�}�|��o2�|��i�ƒ��i�|�ƒ�o�|��t�|�ƒ� i�d�ƒ�Sq �q �W|��S(���Ns���- (���R���t���suffixest���suffR0���t���lowert���endswitht���lent���strip(���R0���RF���(���R���(����R���t���no_suffœ���s ���� � (���RK���R���RA���RB���RC���(���R���RK���(����(���R���R���t ���evr_nosuffš���s����c������������s|���‡��d�†��}�t�i�ˆ��i�|�i�ƒ�}�t�i�ˆ��i�|�i�ƒ�}�|�|�j�o/�|�ˆ��i �ƒ�|�|�i �ƒ�j��o�d�Sn�d�Sn�|�S(���Nc������������sK���x;�t��ˆ��i�ƒ�D]*�\�}�}�|��i�ƒ��i�|�ƒ�o�|�Sq�q�Wt�ˆ��i�ƒ�S(���N( ���t ���enumerateR���RE���t���idxRF���R0���RG���RH���RI���(���R0���RF���RN���(���R���(����R���t���ends_with_which¤���s �����iÿÿÿÿi���( ���RO���t���rpmt���labelCompareR���RD���R4���t���raw_compareRL���t���non_beta_compareRB���(���R���R4���RO���RR���RS���(����(���R���R���t���compare£���s���� c���������C���s(���|��i�|�ƒ�}�|�d�j�o�t�Sn�t�S(���Niÿÿÿÿ(���R���RT���R4���t���lct���Truet���False(���R���R4���RU���(����(����R���R7���³���s���� c���������C���s(���|��i�|�ƒ�}�|�d�j�o�t�Sn�t�S(���Ni����(���R���RT���R4���RU���RW���RV���(���R���R4���RU���(����(����R���R9���¹���s���� c���������C���s(���|��i�|�ƒ�}�|�d�j�o�t�Sn�t�S(���Ni����(���R���RT���R4���RU���RV���RW���(���R���R4���RU���(����(����R���R5���¿���s���� c���������C���s(���|��i�|�ƒ�}�|�d�j�o�t�Sn�t�S(���Ni����(���R���RT���R4���RU���RV���RW���(���R���R4���RU���(����(����R���R6���Å���s���� ( ���R���R���R;���RE���R���t���propertyRD���RL���RT���R7���R9���R5���R6���(����(����(����R���R<���„���s���� t���ComparableProductc�����������B���s)���t��Z�d��Z�d�„��Z�d�„��Z�d�„��Z�RS(���sa��A comparable version from a Product. For comparing and sorting Product objects. Products are never equals if they do not have the same product id. lt and gt for different products are also always false. NOTE: This object doesn't make sense to compare Products with different Product ID. The results are kind of nonsense for that case. This could be extended to compare, either with a more complicated version compare, or using other attributes. Awesomeos-1.1 > Awesomeos-1.0 Awesomeos-1.1 != Awesomeos-1.0 Awesomeos-1.0 < Awesomeos-1.0 The algorithm used for comparisions is the rpm version compare, as used by rpm, yum, etc. Also known as "rpmvercmp" or "labelCompare". There aren't any standard product version comparison rules, but the rpm rules are pretty flexible, documented, and well understood. c���������C���s ���|�|��_��d��S(���N(���R���R���(���R���R���(����(����R���R���â���s����c���������C���sI���|��i�i�|�i�i�j�o,�t�d�|��i�i�ƒ�t�d�|�i�i�ƒ�f�Sn�d�S(���s=��Create a a tuple of RpmVersion objects. Create a RpmVersion using the product's version attribute as the 'version' attribute for a rpm label tuple. We let the epoch default to 0, and the release to 1 for each, so we are only comparing the difference in the version attribute. RB���N(���R���R���t���idR4���R<���RB���R���(���R���R4���(����(����R���R3���å���s�����,c���������C���s)���d�|��i�i�|��i�i�|��i�i�|��i�f�S(���Ns7���<ComparableProduct id=%s version=%s name=%s product=%s>(���R���R���RZ���RB���t���name(���R���(����(����R���t���__str__ò���s����(���R���R���R;���R���R3���R\���(����(����(����R���RY���Ì���s���� t���ComparableProductCertc�����������B���s ���t��Z�d��Z�d�„��Z�d�„��Z�RS(���sç���Compareable version of ProductCert. Used to determine the "newer" of two ProductCerts. Initially just based on a comparison of a ComparableProduct built from the Product, which compares using the Product.version field.c���������C���s2���|�|��_��|��i��i�d�|��_�t�|��i�ƒ�|��_�d��S(���Ni����(���t���product_certR���t���productsR���RY���t���comp_product(���R���R^���(����(����R���R���þ���s���� c���������C���s���|��i�i�|�i�ƒ�S(���N(���R���R`���R3���R4���(���R���R4���(����(����R���R3�����s����(���R���R���R;���R���R3���(����(����(����R���R]���÷���s���� t���ProductManagerc�����������B���s°���t��Z�d��Z�d�Z�d�Z�e�e�d�„�Z�d�„��Z�d�„��Z�d�„��Z �d�„��Z �d�„��Z�d �„��Z�d �„��Z �d�„��Z�d�„��Z�d �„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�d�„��Z�RS(���sÉ��Manager product certs, detecting when they need to be installed, or deleted. Note that this class has no knowledge of when it runs, and no nothing of the rpm transaction that may have causes it to run. So it only looks at the state of installed packages, yum repo states, installed product certs, and the product id->repo id mapping db productid.js. It finds yum repo's which are enabled. It finds repo's which are active. "active" in this case means one or more installed packages were installed from that repo. It does this my checking the 'repoid' field yum reports for each installed package. It removes certs that are no longer needed. If no packages are installed from a product (and more specifically, the repo's created from that product), it is considered unneeded and removed. Args: product_dir: a ProductDirectory class (optional) product_db: A ProductDatabase class (optional) t ���from_repot ���productidc���������C���sr���|�|��_�|�p�t�i�t�i�ƒ�|��_�n�|�|��_�|�p�t�ƒ��|��_�n�|��i�i �ƒ��g��|��_ �t�t�ƒ�|��_�d��S(���N( ���t���product_dirR���t���pdirt���injt���requiret���PROD_DIRt ���product_dbt���dbR ���R%���t���meta_data_errorst���PLUGIN_MANAGERt���plugin_manager(���R���Rd���Ri���(����(����R���R���"��s���� c���������C���s���|�d��j�o�t�i�ƒ��}�n�|��i�|�ƒ�}�|��i�|�ƒ�}�|��i �ƒ��o#�|�o�|�o�|��i �|�ƒ�qk�n�|��i�|�|�ƒ�d��S(���N(���t���ybR���t���yumt���YumBaseR���t���get_enabledt���enabledt ���get_activet���activet���_check_yum_version_tracks_repost���update_removedt���update_installed(���R���Rn���Rr���Rt���(����(����R���t���update1��s���� c���������C���sE���t��i�\�}�}�}�|�d�j�o"�|�d�j�o�|�d�j�o�t�Sn�t�S(���Ni���i���i���(���Ro���t���__version_info__t���majort���minort���microRV���RW���(���R���Rz���R|���R{���(����(����R���Ru���J��s����'c���������C���s@���|�i�d�j�o,�d�|�i�j�o�|�i�d�d�j�o�t�Sn�t�S(���Ns$���Red Hat Enterprise Linux Workstations���rhel-5-client-workstationi����t���5(���R^���R[���t ���provided_tagsRB���RV���RW���(���R���R^���(����(����R���t���_is_workstationP��s����4c���������C���s@���|�i�d�j�o,�d�|�i�j�o�|�i�d�d�j�o�t�Sn�t�S(���Ns ���Red Hat Enterprise Linux Desktops ���rhel-5-clienti����R}���(���R^���R[���R~���RB���RV���RW���(���R���R^���(����(����R���t���_is_desktopW��s����4c���������C���s%��t��i�d�ƒ�g��} �g��}�g��}�g��}�x=|�D]5\�}�}�t��i�d�|�i �d�i �|�f�ƒ�|�|�j�o�q,�n�|�i �d�}�|�i �}�|��i�|�ƒ�o‹�xˆ�|��i�i�ƒ��D]s�}�|��i�|�i �d�ƒ�oV�t��i�d�|�i�ƒ�|�i�ƒ��|��i�i�ƒ��|��i�i�|�i �d�i �ƒ�|��i�i�ƒ��q£�q£�Wn�|��i�|�ƒ�o%�|��i�ƒ��o�t��i�d�ƒ�q,�qSn�|��i�i�|�ƒ�p�| �i�|�|�f�ƒ�n¢�|��i�i�|�ƒ�}�|�i �d�} �t�|�ƒ�}�t�|�ƒ�} �|�| �j�o@�t��i�d�| �i"�| �i#�|�i"�|�i#�f�ƒ�|�i�|�|�f�ƒ�n�t��i�d�|�i"�|�i#�f�ƒ�|��i�i$�|�ƒ�}�|�d �j�p �|�|�j�o�|�i�|�|�f�ƒ�q,�q,�W|��i'�| �ƒ�} �|��i'�|�ƒ�}�|��i'�|�ƒ�}�t(�}�xJ�|�D]B�\�}�}�t��i�d�|�i �|�f�ƒ�|��i�i+�|�i �|�ƒ�t,�}�qŸW|�o�|��i�i�ƒ��n�|��i-�| �ƒ�}�|��i.�|�ƒ�}�|�|�f�S( ���s��Install product certs for products with enabled and active repos If we find a new product cert, we install it to /etc/pki/product and update the productid database to show what repo it came from. If we already have the product cert, but it now maps to a new or different repo, then update productid database with that info. It is possible for a single product cert to map to multiple repos. If multiple repo's all have the same product cert id metadata, we can get into this scenario. The anaconda install is an example of this, since the 'anaconda' repo the installer uses has the product cert metadata, but so does the corresponding rhel repo we get from autosubscribing. In those cases, we track both. Args: enabled: list of tuples of (product_cert, repo_id) The repo's that are enabled=1 and have product id metadata active: a set of names of repos that installed packages were installed from. Returns: list of product certs that were installed Side Effects: can delete certs for some odd rhel5 scenarios, where we have to obsolete some deprecated certs s3���Checking for product id certs to install or update.s���product cert: %s repo: %si����s"���Removing obsolete Desktop cert: %ss���Skipping obsolete Desktop certs2���Updating installed product cert for %s %s to %s %ssI���Latest version of product cert for %s %s is already install, not updatings!���Updating product db with %s -> %sN(0���t���logt���debugt���products_to_installt���products_to_update_dbt���products_installedt���products_to_updateRr���t���certR���R_���RZ���Rt���t���pt ���prod_hashR���R���Re���t���listt���pcR€���t���infoR���R���t���refreshRj���R���t���_workstation_cert_existst���find_by_productR���t���installed_product_certt���installed_productR]���t���cmp_product_certt���cmp_installed_product_certR[���RB���R���t���known_reposR���t���_desktop_workstation_cleanupRW���t ���db_updatedR���R���RV���t���install_product_certst���update_product_certst���products_updated(���R���Rr���Rt���R���R‰���R”���R–���R’���R‹���R‘���Rƒ���R†���R���R“���R„���R…���R���Rˆ���R‡���R™���(����(����R���Rw���^��sj����� �! � )� c���������C���sL���|��i�i�d�d�|�ƒ|��i�|�ƒ�}�t�i�d�ƒ�|��i�i�d�d�|�ƒ|�S(���Nt���pre_product_id_installt���product_lists$���about to run post_product_id_installt���post_product_id_install(���R���Rm���t���runt ���product_certst���write_product_certsR…���R���R‚���(���R���Rž���R…���(����(����R���R—���è��s ���� c���������C���sL���|��i�i�d�d�|�ƒ|��i�|�ƒ�}�t�i�d�ƒ�|��i�i�d�d�|�ƒ|�S(���Nt���pre_product_id_updateR›���s#���about to run post_product_id_updatet���post_product_id_update(���R���Rm���R���Rž���RŸ���R™���R���R‚���(���R���Rž���R™���(����(����R���R˜���ö��s ���� c���������C���sŠ���g��}�x}�|�D]u�\�}�}�d�|�i�}�|��i�i�|�ƒ�}�|�i �|�ƒ�|��i�i�ƒ��t�i �d�|�i�|�i�|�i �f�ƒ�|�i�|�ƒ�q �W|�S(���Ns���%s.pems ���Installed product cert %s: %s %s(���R…���Rž���R���R‡���RZ���t���fnR���Re���R)���R���R���R���R���RŒ���R[���R���(���R���Rž���R���R…���R‡���R���R¢���(����(����R���RŸ�����s����� #c���������C���s=���x6�|��i�i�ƒ��D]%�}�|��i�|�i�d�ƒ�o�t�Sq�q�Wt�S(���Ni����(���R���Re���RŠ���R‹���R���R_���RV���RW���(���R���R‹���(����(����R���RŽ�����s �����c���������C���sd���|��i�|�ƒ�p�|�Sn�t�i�d�ƒ�g��}�|�D]-�\�}�}�|��i�|�ƒ�p�|�|�|�f�q0�q0�~�S(���sP���Remove desktop product if desktop and workstations are marked for install/updatesV���Workstation and Desktop product certs found, removing Desktop cert from list to updateN( ���R���t&���_list_has_workstation_and_desktop_certt���product_cert_listR���R‚���t���_[1]R���R‡���R€���(���R���R¤���R���R¥���R‡���(����(����R���R•�����s ����� c���������C���sb���t��}�t��}�xH�|�D]@�\�}�}�|��i�|�ƒ�o �t�}�n�|��i �|�ƒ�o �t�}�q�q�W|�o�|�S(���s@���determine if product cert list has desktop and workstation certsN( ���RW���t���has_workstationt���has_desktopR¤���R���R^���R���R���RV���R€���(���R���R¤���R���R§���R¦���R^���(����(����R���R£�����s������ c���������C���s��g��}�x |��i�i�ƒ��D]ø�}�|�i�d�}�|�i�} �|��i �i �| �ƒ�} �t�}�t�i�|�ƒ�}�|�i�ƒ��o �t�}�n�| �d�j�p �| �g��j�o �t�}�q�n�xV�| �D]N�}�|�|��i�j�o!�t�i�d�|�| �f�ƒ�t�}�n�|�|�j�o �t�}�qž�qž�W|�o�|�i�|�|�f�ƒ�q�q�Wxh�|�D]`�\�}�}�t�i�d�|�i�|�i�f�ƒ�|�i�ƒ��|��i�i�ƒ��|��i �i�|�i�ƒ�|��i �i�ƒ��qWd�S(���s��remove product certs for inactive products For each installed product cert, check to see if we still have packages installed from the repo the product cert was installed from. If not, delete the product cert. With a few exceptions: 1) if the productid db does not know about the product cert, do not delete it 2) if the productid db doesn't know what repo that cert came from, do not delete it. 3) If there were errors reading the repo metadata for any of the repos that provide that cert, do not delete it. 4) If the product cert has providedtags for 'rhel*' Args: active: a set of repo name strings of the repos that installed packages were installed from Side effects: deletes certs that need to be deleted i����s7���%s has meta-data errors. Not deleting product cert %s.s'���product cert %s for %s is being deletedN(���t���certs_to_deleteR���Re���RŠ���R‡���R_���Rˆ���RZ���R‰���Rj���R���t���reposRV���t���delete_product_certt���rhelproductt���RHELProductMatchert���rhel_matchert���is_rhelRW���R���R���Rk���R���RŒ���Rt���R���R���R���R���R���(���R���Rt���Rª���R���R���R���Rˆ���R‡���R¨���R‰���R©���(����(����R���Rv���)��s<������ � � c���������C���s‰���t��g��ƒ�}�|�i�i�ƒ��}�xg�|�D]_�}�|�i�}�|�i �i �d�|�i�d�|�i�ƒ�}�|�p�q"�n�|�d�j�o�q"�n�|�i�|�ƒ�q"�W|�S(���s+���find yum repos that have packages installedR[���t���archt ���installedN(���NR°���(���t���setRt���Rn���t���pkgSackt���returnPackagest���packagesRˆ���t���repoidR���t���rpmdbt���searchNevraR[���R¯���t���db_pkgR���R���(���R���Rn���R���Rˆ���R¸���Rt���R´���(����(����R���Rs���ˆ��s������ ! c���������C���s���g��}�|�i�i�ƒ��}�xä�|�D]Ü�}�yO�|�i�|��i�ƒ�}�|��i �|�ƒ�}�|�d�j�o�w�n�|�i �|�|�i�f�ƒ�Wq�t�i�i�j �o-�}�t�i�d�|�ƒ�|��i�i �|�i�ƒ�q�t�j �o:�}�t�i�d�|�ƒ�t�i�|�ƒ�|��i�i �|�i�ƒ�q�Xq�W|�S(���s���find yum repos that are enableds(���Error loading productid metadata for %s.N(���t���lstRn���R©���t���listEnabledRr���R���t ���retrieveMDR���t ���PRODUCTIDR¢���t ���_get_certR‡���R���R���RZ���Ro���t���Errorst���RepoMDErrort���eR���t���warnRk���R���t ���exception(���R���Rn���RÀ���Rr���R‡���R���R¹���R¢���(����(����R���Rq��� ��s&������ c���������C���sX���|�i�d�ƒ�o�t�|�ƒ�}�n �t�|�ƒ�}�z�|�i�ƒ��}�t�|�ƒ�SWd��|�i�ƒ��Xd��S(���Ns���.gz( ���R¢���RH���t���GzipFileR ���R���R%���t���pemt���create_from_pemR$���(���R���R¢���R ���RÄ���(����(����R���R½���¶��s�����(���R���R���R;���t���REPOR¼���R���R���Rx���Ru���R���R€���Rw���R—���R˜���RŸ���RŽ���R•���R£���Rv���Rs���Rq���R½���(����(����(����R���Ra��� ��s&���� Š _ t���__main__Rn���(%���t���gettextt���gzipRÃ���t���loggingR���R���Ro���RP���t���rhsm.certificateRÅ���t"���subscription_manager.certdirectoryt ���Directoryt���subscription_manager.injectionRl���Rg���t���subscription_managerR«���t ���injectionRf���t���rhsmt���ourjsonR!���t���_t ���getLoggerR���R���R����R ���t���objectR+���R<���RY���R]���Ra���t���pmRx���R���(���R����R+���Rf���Rl���RP���R���RY���RÈ���R<���R ���R!���R���R«���RÅ���RÍ���R]���Ra���RÓ���RÊ���Rg���Ro���RÖ���R���RÃ���(����(����R���t���?���s2��� :H+ÿ�¹