Team Ai
Apppublic

2008robocode-crypto/code-generation-system

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
pipeline.cpython-314.pyc154 linesDownload Raw Back to __pycache__
1+
2A��i�L����Rt^RIt^RIt^RIHtHtHtHtHt^RI	H	t	^RI3t4^RItRt^RIHt^RIHt!RR	4t!R5R4t!RR
4t!RR4t!RR4tR# ]
dRtLKi;i)zp6Multi-stage generation pipeline orchestrator.7Implements the 4-stage compiler-like system for code generation.8N)�Any�Dict�List�Optional�Tuple)�datetimeTF)�	Validator)�RepairEnginec��a�]tRt^toRtRV3RlRlltV3RlRltV3RlRltV3RlR	ltV3R9lRlt	V3RlR
lt10V3RlRltV3RlRltV3RlRlt
V3RlRltRtVtR#)�IntentExtractorz9Stage 1: Extract structured intent from natural language.c� <�V^8�dQhRS[/#���use_llm��bool)�format�
__classdict__s"��:C:\Users\purav\Downloads\ai intern project\src\pipeline.py�__annotate__�IntentExtractor.__annotate__����1�1��1�c�0�T;'d\VnR#�N��
HAS_ANTHROPICr��selfrs&&r�__init__�IntentExtractor.__init__����0�0�=��rc�<<�V^8�dQhRS[RS[S[S[3,/#�r�user_prompt�return��strrr)rrs"�rrrs#���<�<�3�<�4��S��>�<rc�j�VP'dVPV4#VPV4#)z+Extract structured intent from user prompt.)r�_extract_with_llm�_extract_pattern_based)rr$s&&r�extract�IntentExtractor.extracts-���<�<�<��)�)�+�6�6��.�.�{�;�;rc�<<�V^8�dQhRS[RS[S[S[3,/#�r�promptr%r&)rrs"�rrr$s#�����S��T�#�s�(�^�rc���RVPV4RVR,RVPV4RVPV4RVPV4RVP	V4RVPV4/pV#)	z+Pattern-based intent extraction (fallback).�app_name�app_description:N��N�key_features�11user_roles�
core_entities�business_requirements�constraints)�_extract_app_name�_extract_features�_extract_roles�_extract_entities�_extract_requirements�_extract_constraints)rr/�intents&& rr*�&IntentExtractor._extract_pattern_based$s{��
��.�.�v�6��v�d�|��D�2�2�6�:��$�-�-�f�5��T�3�3�F�;�#�T�%?�%?��%G��4�4�4�V�<�12���
rc�&<�V^8�dQhRS[RS[/#r.)r')rrs"�rrr1s��������rc��\P!RV4pV'd0VP^4P4P	RR4#R#)zExtract app name from prompt.zU(?:Build|Create|Make|Generate)\s+(?:a\s+)?([A-Z][a-zA-Z\s]+?)(?:\s+with|\s+that|\.|$)� ��GeneratedApp)�re�search�group�strip�replace)rr/�matchs&& rr9�!IntentExtractor._extract_app_name1s@���	�	�r�tz�{����;�;�q�>�'�'�)�1�1�#�r�:�:�rc�6<�V^8�dQhRS[RS[S[,/#r.�r'r)rrs"�rrr9s���*�*��*��S�	�*rc��.p.ROpVF9pVP4VP49gK(VPV4K;	T;'gR.#)zExtract key features.�13basic_crud)�login�authentication�contacts�	dashboard�	analytics�admin�paymentsz14role-based�access�premium�plan�reports�export�import�
notificationsrG��lower�append)rr/�features�feature_keywords�keywords&&   rr:�!IntentExtractor._extract_features9sM����15��(�G��}�}��&�,�,�.�0�����(�(��)�)�L�>�)rc�6<�V^8�dQhRS[RS[S[,/#r.rN)rrs"�rrrJs���	!�	!�S�	!�T�#�Y�	!rc���.pRRRRRRRR/pVP4F;wrEVP4VP49gK*VPV4K=	T;'gR.#)zExtract user roles.rV�user�guest�customer��itemsr`ra)rr/�roles�
role_keywordsrd�roles&&    rr;�IntentExtractor._extract_rolesJse���� �'�6�6�7�G�Z�Y_�`�
�*�0�0�2�M�G��}�}��&�,�,�.�0����T�"�3�� � ��� rc�6<�V^8�dQhRS[RS[S[,/#r.rN)rrs"�rrrUs���$�$��$��S�	�$rc���.pRRRRRRRRR	R16RRR
R/pVP4F;wrEVP4VP49gK*VPV4K=	T;'gR.#)zExtract core data entities.�contact�Contactrh�User�product�Product�order�Order�payment�Payment�report�ReportrT�	Dashboard�Itemrk)rr/�entities�entity_keywordsrd�entitys&&    rr<�!IntentExtractor._extract_entitiesUs|����
�y��F��y��W��y��h���17�� /�4�4�6�O�G��}�}��&�,�,�.�0�����'� 7��#�#�F�8�#rc�6<�V^8�dQhRS[RS[S[,/#r.rN)rrs"�rrris���18�19�C�20�D��I�21rc�22�.RO#)zExtract business requirements.)z%User authentication and authorizationzRole-based access controlzData persistencez!API endpoints for CRUD operations�)rr/s&&rr=�%IntentExtractor._extract_requirementsis��23�	24rc�6<�V^8�dQhRS[RS[S[,/#r.rN)rrs"�rrrrs���	�	�3�	�4��9�	rc��.pRVP49dVPR4RVP49dVPR4V#)zExtract constraints.rYzPayment processing requiredz	real-timez Real-time synchronization neededr_)rr/r8s&& rr>�$IntentExtractor._extract_constraintsrsG���������&����<�=��&�,�,�.�(����A�B��rc�<<�V^8�dQhRS[RS[S[S[3,/#r.r&)rrs"�rrr}s#���7�7��7��S�#�X��7rc��\P!\PP	R4R7pRVR2pVP25P
RRRRR	V/.R267pVP^,Pp\P!V4# \d+p\RTR24TPT4uR
p?#R
p?ii;i)z#Extract intent using Anthropic API.�ANTHROPIC_API_KEY��api_keyz3Extract structured intent from this user prompt:27 28"a�"29 30Return a JSON with these fields:31- app_name: string (extract or generate a name)32- app_description: string (2-3 sentences)33- key_features: list[string] (extracted features)34- user_roles: list[string] (roles mentioned)35- core_entities: list[string] (data models)36- business_requirements: list[string] (business rules)37- constraints: list[string] (any constraints mentioned)38 39Return ONLY valid JSON, no markdown formatting.�claude-3-5-sonnet-20241022irorh�content��model�40max_tokens�messageszLLM extraction failed: z, falling back to pattern-basedN)�	anthropic�	Anthropic�os�environ�getr��creater��text�json�loads�	Exception�printr*)rr/�client�extraction_prompt�message�
response_text�es&&     rr)�!IntentExtractor._extract_with_llm}s���	7��(�(������@S�1T�U�F�%���410�
!3���o�o�,�,�2��!�6�9�6G�H�I�-��G�$�O�O�A�.�3�3�M��:�:�m�,�,���	7��+�A�3�.M�N�O��.�.�v�6�6��	7�s�BB�C�C�<C�C�rN�T)�__name__�42__module__�__qualname__�__firstlineno__�__doc__rr+r*r9r:r;r<r=r>r)�__static_attributes__�__classdictcell__�rs@rrrsl����C�1�1�<�<�����*�*�"	!�	!�$�$�(43�44�	�	�7�7rrc�a�]tRt^�toRtRV3RlRlltV3RlRltV3RlRltV3RlR	ltV3R45lRlt	V3RlR
lt46V3RlRltV3RlRltRt
VtR#)�SystemDesignLayerz)Stage 2: Convert intent to system design.c� <�V^8�dQhRS[/#r
r)rrs"�rr�SystemDesignLayer.__annotate__�rrc�0�T;'d\VnR#rrrs&&rr�SystemDesignLayer.__init__�r!rc�R<�V^8�dQhRS[S[S[3,RS[S[S[3,/#�rr?r%�rr'r)rrs"�rrr��s+���3�3�T�#�s�(�^�3��S�#�X��3rc�j�VP'dVPV4#VPV4#)z#Generate system design from intent.)r�_design_with_llm�_design_rule_based)rr?s&&r�design�SystemDesignLayer.design�s-���<�<�<��(�(��0�0��*�*�6�2�2rc�R<�V^8�dQhRS[S[S[3,RS[S[S[3,/#r�r�)rrs"�rrr��s+���47�48��c�3�h��49�D��c��N�50rc��RVPV4RVPV4RVPV4RVR,RR.RVPV4/pV#)	zRule-based system design.r��51user_flows�roles_and_permissions�data_modelsr6�api_patterns�REST�ui_structure)�_generate_entities�_generate_flows�_generate_rbac�_generate_ui_structure)rr?r�s&& rr��$SystemDesignLayer._design_rule_based�sc��
��/�/��7��$�.�.�v�6�#�T�%8�%8��%@��6�/�2��V�H��D�7�7��?�
52���
rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[,3,/#r��rr'rr)rrs"�rrr��s0������c�3�h���D��d�3�i��<P�rc��/pVR,F}pVP4R8Xd	.ROW#&K VP4R8Xd	.ROW#&K=VP4R8Xd	.ROW#&KZVP4R8Xd	.R	OW#&Kw.R53OW#&K	V#)zGenerate entity definitions.r6rhrsrvrx)�id�name�emailro�54created_at)r�r�r��phone�owner_id)r�r��price�description)r��user_id�total�statusr�)r�r�r�)r`)rr?r�r�s&&  rr��$SystemDesignLayer._generate_entities�s������_�-�-�F��|�|�~��'�#P�� �����9�,�#O�� �����9�,�#I�� �����7�*�#U�� �#?�� �.��rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[3,,/#r�r�)rrs"�rrr��s0���55�56�d�3��8�n�57��d�3��8�n�9M�58rc�p�RRR.RO/RRR.R	O/.pRVR,9dVPRRR.R59O/4V#)zGenerate user flows.r��Authentication�stepszCRUD OperationsrVr5zAdmin Panel)�Login�VerifyzRedirect to Dashboard)�View�Create�Update�Delete)zView AnalyticszManage UserszView Reports)ra)rr?�flowss&& rr��!SystemDesignLayer._generate_flows�sQ���%�w�0\�]�
�&��1W�X�60��61�f�\�*�*��L�L�&�-��:l�m�n��rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[,3,/#r�r�)rrs"�rrr��s0�����T�#�s�(�^���S�$�s�)�^�8L�rc�p�/pVR,F&pVR8Xd	.ROW#&KVR8Xd	.ROW#&K!R.W#&K(	V#)z#Generate role-based access control.r5rVrh�read_public)�read_all�	write_all�62delete_all�manage_users)�read_own�	write_own�63delete_ownr�)rr?�rbacros&&  rr�� SystemDesignLayer._generate_rbac�sE�����<�(�(�D��w��T��64����D��65�+�_��66�
)��rc�L<�V^8�dQhRS[S[S[3,RS[S[,/#r�r�)rrs"�rrr��s'�����T�#�s�(�^���S�	�rc�$�.R	OpR\VR,4P49dVPR4RVR,9dVPR4R\VR,4P49dVPR4V#)67zGenerate UI page structure.rSr4z	/contactsrVr5z/adminrUz68/analytics)z/loginz69/dashboardz/profile)r'r`ra)rr?�pagess&& rr��(SystemDesignLayer._generate_ui_structure�ss��4����V�N�3�4�:�:�<�<��L�L��%��f�\�*�*��L�L��"��#�f�^�4�5�;�;�=�=��L�L��&��rc�R<�V^8�dQhRS[S[S[3,RS[S[S[3,/#r�r�)rrs"�rrr��s+���3�3�t�C��H�~�3�$�s�C�x�.�3rc���\P!\PP	R4R7pR\70P!V^R7R2pVPPRRRR	R71V/.R7pVP^,Pp\72P!V4# \d+p\RTR
24TPT4uRp?#Rp?ii;i)z!Generate system design using LLM.r�r�z4Design a system architecture based on this intent:73 74��indenta^75 76Return a JSON with these fields:77- entities: dict mapping entity names to attribute lists78- user_flows: list of flow objects with name and steps79- roles_and_permissions: dict mapping roles to permissions80- data_models: list of entity names81- api_patterns: list (e.g., ["REST", "GraphQL"])82- ui_structure: list of page paths83 84Return ONLY valid JSON.r�irorhr�r�zLLM design failed: �, using rule-basedN)r�r�r�r�r�r��dumpsr�r�r�r�r�r�r�r�)rr?r��
design_promptr�r�r�s&&     rr��"SystemDesignLayer._design_with_llm�s���	3��(�(������@S�1T�U�F�!����F�1���85��M��o�o�,�,�2��!�6�9�m�D�E�-��G�$�O�O�A�.�3�3�M��:�:�m�,�,���	3��'��s�*<�=�>��*�*�6�2�2��	3�s�B%B(�(C�3C�C�Cr�Nr�)r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�s@rr�r��sX����3�1�1�3�3�86�87���$88�89�����3�3rr�c��a�]tRtRtoRtRV3RlRlltV3RlRltV3RlRltV3R	lR90ltV3RlRlt	V3R
lRlt91V3RlRltV3RlRltV3RlRlt
V3RlRltRtVtR#)�SchemaGeneratoriz7Stage 3: Generate complete schemas (DB, API, UI, Auth).c� <�V^8�dQhRS[/#r
r)rrs"�rr�SchemaGenerator.__annotate__rrc�0�T;'d\VnR#rrrs&&rr�SchemaGenerator.__init__r!rc�n<�V^8�dQhRS[S[S[3,RS[S[S[3,RS[S[S[3,/#�rr�r?r%r�)rrs"�rrrs;���=�=�t�C��H�~�=�t�C��H�~�=�$�s�TW�x�.�=rc�j�VP'dVPW4#VPW4#)z%Generate complete schema from design.)r�_generate_with_llm�_generate_rule_based)rr�r?s&&&r�generate�SchemaGenerator.generates-���<�<�<��*�*�6�:�:��,�,�V�<�<rc�n<�V^8�dQhRS[S[S[3,RS[S[S[3,RS[S[S[3,/#rr�)rrs"�rrrs?�����4��S��>��4��S��>��VZ�[^�`c�[c�Vd�rc���RVR,RVR,RVPV4RVPV4RVPV4RVPV4RVP	V4RVPV4/pV#)	zRule-based schema generation.r1r2�database_schema�92api_schema�	ui_schema�auth_configrm�business_logic)�_generate_db_schema�_generate_api_schema�_generate_ui_schema�_generate_auth_config�_generate_roles�_generate_business_logic)rr�r?�schemas&&& rr	�$SchemaGenerator._generate_rule_baseds���
��z�*��v�&7�8��t�7�7��?��$�3�3�F�;���1�1�&�9��4�5�5�f�=��T�)�)�&�1��d�;�;�F�C�	93���
rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[3,,/#�rr�r%r�)rrs"�rrr+s0�����$�s�C�x�.��T�$�s�C�x�.�=Q�rc� �.pVPR/4P4Fbwr4RVP4R,RRRRRRR	/.VUu.uFqUR8wgKRVRRRR	/NK	up,R94RRR./pVPV4Kd	V#uupi)zGenerate database schema.r�r��s�fieldsr��type�string�requiredT�primary_key�indexes)r�rlr`ra)rr��tablesr��95attributes�attr�tables&&     rr�#SchemaGenerator._generate_db_schema+s�����"(�*�*�Z��"<�"B�"B�"D��F�������,���T�6�8�Z��F��!+�� *��d�l�G�V�T�6�8�Z��F� *����t��D�6�96�E�
�M�M�%� �#E��
��s�B�Bc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[3,,/#rr�)rrs"�rrr?s0�����4��S��>��d�4��S��>�>R�rc���.pVPR.4FdpRVP4R2pVPRVRRRRVR2/RVR	2RRRR97V2/RVRRRRV2/RVR	2RR
RRV2/RVR	2RRRRV2/.4Kf	V#)zGenerate API schema.r�z/api/r�path�method�GETr�zList z/{id}zGet �POSTzCreate �PUTzUpdate �DELETEzDelete )r�r`�extend)rr��	endpointsr��	base_paths&&   rr�$SchemaGenerator._generate_api_schema?s����	��j�j���3�F������/�q�1�I������H�e�]�e�F�8�ST�DU�V��I�;�g�.��%��RV�W]�V^�P_�`���H�f�m�w�v�h�EW�X��I�;�g�.��%��RY�Z`�Ya�Pb�c��I�;�g�.��(�M�U\�]c�\d�Se�f��
�4��rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[3,,/#rr�)rrs"�rrrPs0�����$�s�C�x�.��T�$�s�C�x�.�=Q�rc���.pVPR.4FIpRVRVPRR4P4RRRR	R/RR98R	R/RRR	R/./pVPV4KK	V#)
zGenerate UI schema.r�r,�title�/rC�99componentsr��headerr r��	container�footer)r�rJr8ra)rr�r�r,�pages&&   rr�#SchemaGenerator._generate_ui_schemaPs������J�J�~�r�2�D�������c�3�/�5�5�7���X�v�x�8��Y���<��X�v�x�8���D�
�L�L���3��rc�R<�V^8�dQhRS[S[S[3,RS[S[S[3,/#rr�)rrs"�rrrbs+���100�101�D��c��N�102�t�C��H�~�103rc��RRRRRRRR/#)	zGenerate authentication config.r �jwt�104secret_keyzgenerated-secret�expiryi�refresh_token_expiryi�Qr�)rr�s&&rr�%SchemaGenerator._generate_auth_configbs#��
�E��,��d�"�E�	105�	106rc�b<�V^8�dQhRS[S[S[3,RS[S[S[S[3,,/#rr�)rrs"�rrrks0�����d�3��8�n���d�3��8�n�9M�rc107��.pVPR/4P4Fwr4VPRVRVRRV2/4K!	V#)zGenerate roles from RBAC.r�r��permissionsr�zRole: )r�rlra)rr�rm�	role_namerIs&&   rr�SchemaGenerator._generate_rolesksX����&,�j�j�1H�"�&M�&S�&S�&U�"�I��L�L��	��{���	�{�3��
�'V��rc�R<�V^8�dQhRS[S[S[3,RS[S[S[3,/#r�r�)rrs"�rrrxs+���108�109�t�C��H�~�110�$�s�C�x�.�111rc	�N�RRR.RRRR\V4P49/pV#)zGenerate business logic rules.�validation_ruleszEmail must be valid formatz&Password must be at least 8 characters�access_controlz!Role-based access control enabled�premium_featuresrY)r'r`)rr?�logics&& rr�(SchemaGenerator._generate_business_logicxs?��
�,�8�!�
�A��	�S��[�->�->�-@� @�
112���rc�n<�V^8�dQhRS[S[S[3,RS[S[S[3,RS[S[S[3,/#rr�)rrs"�rrr�s?���$=�$=��c�3�h��$=��c�3�h��$=�TX�Y\�^a�Ya�Tb�$=rc���\P!\PP	R4R7pR\113P!V^R7R\114P!V^R7R2pVPPRRR	R115RV/.R7pVP^,Pp\116P!V4# \d+p\R
TR24TPY4uRp?#Rp?ii;i)zGenerate schemas using LLM.r�r�z@Generate complete schemas from this design and intent:117 118Design: r�z	119Intent: aw120 121Return a JSON with these fields:122- app_name: string123- app_description: string124- database_schema: list of tables (each with name, fields, primary_key)125- api_schema: list of endpoints (path, method, description)126- ui_schema: list of pages (path, title, components)127- auth_config: object with type, expiry, etc.128- roles: list of role objects (name, permissions, description)129- business_logic: object with business rules130 131All table fields must be objects with: name, type, required132Valid types: string, number, boolean, date, email, enum133All API endpoints must have valid HTTP methods: GET, POST, PUT, DELETE134 135Return ONLY valid JSON.r�irorhr�r�zLLM schema generation failed: r�N)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	)rr�r?r��
schema_promptr�r�r�s&&&     rr�"SchemaGenerator._generate_with_llm�s���"	=��(�(������@S�1T�U�F�!	�	
���F�1�	%�&�'	�	
���F�1�	%�&�'��M�*�o�o�,�,�2��!�6�9�m�D�E�-��G�$�O�O�A�.�3�3�M��:�:�m�,�,���	=��2�1�#�5G�H�I��,�,�V�<�<��	=�s�B>C�C6�C1�+C6�1C6r�Nr�)r�r�r�r�r�rr136r	rrrrrrrr�r�r�s@rrrsl����A�1�1�=�=�����(��"��$137�138���139�140�$=�$=rrc�@a�]tRtRtoRtRtRV3RlRlltRtVtR#)	�RefinementLayeri�z7Stage 4: Refine and validate schemas across all layers.c�B�\4Vn\4VnR#r)r�	validatorr	�
repair_engine)rs&rr�RefinementLayer.__init__�s��"����)�^��rc141�<�V^8�dQhRS[S[S[3,RS[RS[S[S[S[3,S[S[S[3,3,/#)rr�max_iterationsr%)rr'r�intr)rrs"�rr�RefinementLayer.__annotate__�sL��� � �T�#�s�(�^� �S� ��t�TW�Y\�T\�~�_c�dg�il�dl�_m�Om�In� rc���R^R.R.RR/p\V4F�pV^,VR&VPPV4pVR,PVP	44VP142'dRVR&W3u#VPPV4wrVR,PV4K�	VR,R	,R,'dRMRVR&W3#)143z'Validate and repair schema iteratively.�144iterations�validation_results�repairs�final_status�unknown�valid�errors�repaired_with_warnings�����)	�rangerZ�validate_completera�to_dict�is_validr[�
repair_configr2)rrr^�metadata�i�resultrds&&&    r�refine�RefinementLayer.refine�s���
�!� �"��r��I�	145���~�&�A�%&��U�H�\�"��^�^�5�5�f�=�F��)�*�1�1�&�.�.�2B�C�����+2���(��'�'�#�0�0�>�>�v�F�O�F��Y��&�&�w�/�'�@H�H\�?]�^`�?a�bj�?k�?k�#;�qx��� ���r)r[rZN)�)	r�r�r�r�r�rrsr�r�r�s@rrXrX�s����A�,� � � rrXc�La�]tRtRtoRtR	V3RlRlltV3RlRltRtVtR#)146�Pipelinei�z+Main orchestrator for the 4-stage pipeline.c� <�V^8�dQhRS[/#r
r)rrs"�rr�Pipeline.__annotate__�s������rc��\VR7Vn\VR7Vn\	VR7Vn\
4VnWnR#)r�N)	r�intent_extractorr��
system_designr�schema_generatorrX�147refinementrrs&&rr�Pipeline.__init__�s8�� /�� @���.�w�?��� /�� @���)�+����rc�h<�V^8�dQhRS[RS[S[S[S[3,S[S[S[3,3,/#r#)r'rrr)rrs"�rrry�s5���%�%�C�%�E�$�s�C�x�.�$�s�C�x�.�2P�,Q�%rc��R\P!4P4RVR,R//pVPP	V4pRR/VR,R&VP148P
V4pRR/VR,R&VPPWC4pRR/VR,R	&VPPV4wrgWrR,R149&RVR&Wb3# \d"pR
TR&\T4TR
&/T3uRp?#Rp?ii;i)u)Run complete pipeline: prompt → config.�	timestampr$:Ni�N�stagesr��	completed�intent_extractionr|�schema_generationr~�successre�errorN)
r�now�	isoformatr{r+r|r�r}r150r~rsr�r')	rr$�
execution_logr?r�r�refined_schema�refinement_metadatar�s	&&       rr151�Pipeline.generate�s#��
�����1�1�3��;�t�,��b�152�
�	%��*�*�2�2�;�?�F�<D�k�;R�M�(�#�$7�8��'�'�.�.�v�6�F�8@�+�7N�M�(�#�O�4��*�*�3�3�F�C�F�<D�k�;R�M�(�#�$7�8�37�/�/�2H�2H��2P�/�N�4G�(�#�L�1�,5�M�.�)�!�0�0���	%�,3�M�.�)�%(��V�M�'�"��}�$�$��	%�s�B*C�D	�(D�>D	�D	)r{r~r}r|rNr�)	r�r�r�r�r�rr153r�r�r�s@rrwrw�s����5���%�%rrw)r�r�r��typingrrrrrrrFr�r�ImportErrorrZrr[r	rr�rrXrwr�rr�<module>r�s����154�	�3�3��	����M� �&�D7�D7�No3�o3�dX=�X=�v  �  �F)%�)%��}
���M��s�A*�*	A6�5A6