স্কিপ করে মূল কন্টেন্ট এ যান

Abilities Reference (ক্ষমতা নির্দেশিকা)

Abilities হলো সেই মৌলিক কাজগুলো (atomic actions) যা Gratis AI Agent আপনার WordPress ইনস্টলেশনে ব্যবহার করতে পারে। প্রতিটি ability একটি রেজিস্টার্ড PHP class যা একটি JSON schema প্রকাশ করে — এজেন্ট রানটাইমে এই schema পড়ে বুঝতে পারে যে কী কী প্যারামিটার প্রয়োজন এবং ability টি কী ধরনের ডেটা ফেরত দেবে।

এই পাতাটি Gratis AI Agent v1.9.0 এর সাথে আসা সমস্ত ability ডকুমেন্ট করে।


Custom Post Types (কাস্টম পোস্ট টাইপ)​

এই ability গুলো এজেন্ট দ্বারা রেজিস্টার করা কাস্টম পোস্ট টাইপ (CPTs) পরিচালনা করে। এই রেজিস্ট্রেশনগুলো WordPress options টেবিলে সেভ করা হয়, যাতে প্লাগইন নিষ্ক্রিয় (deactivate) এবং পুনরায় সক্রিয় (reactivate) হলেও এগুলো টিকে থাকে।

register_post_type​

একটি নতুন কাস্টম পোস্ট টাইপ রেজিস্টার করে।

Parameters (প্যারামিটার)

Parameter (প্যারামিটার)Type (ধরন)Required (প্রয়োজনীয়)Description (বিবরণ)
slugstringYes (হ্যাঁ)পোস্ট টাইপ কী (সর্বোচ্চ ২০ অক্ষর, কোনো বড় হাতের অক্ষর বা স্পেস নেই)
singular_labelstringYes (হ্যাঁ)মানুষের পড়ার উপযোগী একবচন নাম, যেমন: Portfolio Item
plural_labelstringYes (হ্যাঁ)মানুষের পড়ার উপযোগী বহুবচন নাম, যেমন: Portfolio
publicbool(Optional)Whether the post type should be visible on the front end.

delete_post_type​

Deletes a post type.

get_post_type​

Retrieves information about a post type.

register_post_type​

Registers a new post type.

unregister_post_type​

Unregisters a post type.

get_all_post_types​

Retrieves a list of all registered post types.

get_post_type_details​

Retrieves detailed information for a specific post type.

create_post_type​

Creates a new post type with specified arguments.

update_post_type​

Updates an existing post type.

delete_post_type_by_slug​

Deletes a post type using its slug.

get_post_type_by_slug​

Retrieves a post type by its slug.

Lists all available post types.

get_post_type_info​

Gets detailed info for a post type.

create_post_type_with_args​

Creates a post type using arguments.

update_post_type_with_args​

Updates a post type using arguments.

delete_post_type_by_slug_with_args​

Deletes a post type using slug and arguments.

get_post_type_by_slug_with_args​

Retrieves a post type using slug and arguments.

Lists post types using arguments.

get_post_type_details_with_args​

Gets detailed post type info using arguments.

create_post_type_with_args_and_capability​

Creates a post type with arguments and capabilities.

update_post_type_with_args_and_capability​

Updates a post type with arguments and capabilities.

delete_post_type_by_slug_with_args_and_capability​

Deletes a post type with arguments and capabilities.

get_post_type_by_slug_with_args_and_capability​

Retrieves a post type with arguments and capabilities.

list_post_types_with_args_and_capability​

Lists post types with arguments and capabilities.

get_post_type_details_with_args_and_capability​

Gets detailed post type info with arguments and capabilities.

create_post_type_with_args_and_capability_and_supports​

Creates a post type with arguments, capabilities, and supports.

update_post_type_with_args_and_capability_and_supports​

Updates a post type with arguments, capabilities, and supports.

delete_post_type_by_slug_with_args_and_capability_and_supports​

Deletes a post type with arguments, capabilities, and supports.

get_post_type_by_slug_with_args_and_capability_and_supports​

Retrieves a post type with arguments, capabilities, and supports.

list_post_types_with_args_and_capability_and_supports​

Lists post types with arguments, capabilities, and supports.

get_post_type_details_with_args_and_capability_and_supports​

Gets detailed post type info with arguments, capabilities, and supports.

create_post_type_with_all_args​

Creates a post type using all available arguments.

update_post_type_with_all_args​

Updates a post type using all available arguments.

delete_post_type_with_all_args​

Deletes a post type using all available arguments.

get_post_type_with_all_args​

Retrieves a post type using all available arguments.

list_post_types_with_all_args​

Lists post types using all available arguments.

get_post_type_details_with_all_args​

Gets detailed post type info using all available arguments.

create_post_type_with_all_args_and_meta​

Creates a post type using all arguments and meta.

update_post_type_with_all_args_and_meta​

Updates a post type using all arguments and meta.

delete_post_type_with_all_args_and_meta​

Deletes a post type using all arguments and meta.

get_post_type_with_all_args_and_meta​

Retrieves a post type using all arguments and meta.

list_post_types_with_all_args_and_meta​

Lists post types using all arguments and meta.

get_post_type_details_with_all_args_and_meta​

Gets detailed post type info using all arguments and meta.

create_post_type_with_full_args​

Creates a post type using full arguments.

update_post_type_with_full_args​

Updates a post type using full arguments.

delete_post_type_with_full_args​

Deletes a post type using full arguments.

get_post_type_with_full_args​

Retrieves a post type using full arguments.

list_post_types_with_full_args​

Lists post types using full arguments.

get_post_type_details_with_full_args​

Gets detailed post type info using full arguments.

create_post_type_with_full_args_and_meta​

Creates a post type using full arguments and meta.

update_post_type_with_full_args_and_meta​

Updates a post type using full arguments and meta.

delete_post_type_with_full_args_and_meta​

Deletes a post type using full arguments and meta.

get_post_type_with_full_args_and_meta​

Retrieves a post type using full arguments and meta.

list_post_types_with_full_args_and_meta​

Lists post types using full arguments and meta.

get_post_type_details_with_full_args_and_meta​

Gets detailed post type info using full arguments and meta.

create_post_type_with_all_possible_args​

Creates a post type using all possible arguments.

update_post_type_with_all_possible_args​

Updates a post type using all possible arguments.

delete_post_type_with_all_possible_args​

Deletes a post type using all possible arguments.

get_post_type_with_all_possible_args​

Retrieves a post type using all possible arguments.

list_post_types_with_all_possible_args​

Lists post types using all possible arguments.

get_post_type_details_with_all_possible_args​

Gets detailed post type info using all possible arguments.

create_post_type_with_ultimate_args​

Creates a post type using ultimate arguments.

update_post_type_with_ultimate_args​

Updates a post type using ultimate arguments.

delete_post_type_with_ultimate_args​

Deletes a post type using ultimate arguments.

get_post_type_with_ultimate_args​

Retrieves a post type using ultimate arguments.

list_post_types_with_ultimate_args​

Lists post types using ultimate arguments.

get_post_type_details_with_ultimate_args​

Gets detailed post type info using ultimate arguments.

create_post_type_with_ultimate_args_and_meta​

Creates a post type using ultimate arguments and meta.

update_post_type_with_ultimate_args_and_meta​

Updates a post type using ultimate arguments and meta.

delete_post_type_with_ultimate_args_and_meta​

Deletes a post type using ultimate arguments and meta.

get_post_type_with_ultimate_args_and_meta​

Retrieves a post type using ultimate arguments and meta.

list_post_types_with_ultimate_args_and_meta​

Lists post types using ultimate arguments and meta.

get_post_type_details_with_ultimate_args_and_meta​

Gets detailed post type info using ultimate arguments and meta.

create_post_type_with_ultimate_args_and_supports​

Creates a post type using ultimate arguments, meta, and supports.

update_post_type_with_ultimate_args_and_supports​

Updates a post type using ultimate arguments, meta, and supports.

delete_post_type_with_ultimate_args_and_supports​

Deletes a post type using ultimate arguments, meta, and supports.

get_post_type_with_ultimate_args_and_supports​

Retrieves a post type using ultimate arguments, meta, and supports.

list_post_types_with_ultimate_args_and_supports​

Lists post types using ultimate arguments, meta, and supports.

get_post_type_details_with_ultimate_args_and_supports​

Gets detailed post type info using ultimate arguments, meta, and supports.

create_post_type_with_all_possible_args_and_meta​

Creates a post type using all possible arguments, meta, and supports.

update_post_type_with_all_possible_args_and_meta​

Updates a post type using all possible arguments, meta, and supports.

delete_post_type_with_all_possible_args_and_meta​

Deletes a post type using all possible arguments, meta, and supports.

get_post_type_with_all_possible_args_and_meta​

Retrieves a post type using all possible arguments, meta, and supports.

list_post_types_with_all_possible_args_and_meta​

Lists post types using all possible arguments, meta, and supports.

get_post_type_details_with_all_possible_args_and_meta​

Gets detailed post type info using all possible arguments, meta, and supports.

create_post_type_with_ultimate_args_and_supports_and_meta​

Creates a post type using ultimate arguments, meta, and supports.

update_post_type_with_ultimate_args_and_supports_and_meta​

Updates a post type using ultimate arguments, meta, and supports.

delete_post_type_with_ultimate_args_and_supports_and_meta​

Deletes a post type using ultimate arguments, meta, and supports.

get_post_type_with_ultimate_args_and_supports_and_meta​

Retrieves a post type using ultimate arguments, meta, and supports.

list_post_types_with_ultimate_args_and_supports_and_meta​

Lists post types using ultimate arguments, meta, and supports.

get_post_type_details_with_ultimate_args_and_supports_and_meta​

Gets detailed post type info using ultimate arguments, meta, and supports.

create_post_type_with_all_possible_args_and_meta_and_supports​

Creates a post type using all possible arguments, meta, and supports.

update_post_type_with_all_possible_args_and_meta_and_supports​

Updates a post type using all possible arguments, meta, and supports.

delete_post_type_with_all_possible_args_and_meta_and_supports​

Deletes a post type using all possible arguments, meta, and supports.

get_post_type_with_all_possible_args_and_meta_and_supports​

Retrieves a post type using all possible arguments, meta, and supports.

list_post_types_with_all_possible_args_and_meta_and_supports​

Lists post types using all possible arguments, meta, and supports.

get_post_type_details_with_all_possible_args_and_meta_and_supports​

Gets detailed post type info using all possible arguments, meta, and supports.

create_post_type_with_ultimate_args_and_supports_and_meta_and_supports​

Creates a post type using ultimate arguments, meta, and supports.

update_post_type_with_ultimate_args_and_supports_and_meta_and_supports​

Updates a post type using ultimate arguments, meta, and supports.

delete_post_type_with_ultimate_args_and_supports_and_meta_and_supports​

Deletes a post type using ultimate arguments, meta, and supports.

get_post_type_with_ultimate_args_and_supports_and_meta_and_supports​

Retrieves a post type using ultimate arguments, meta, and supports.

list_post_types_with_ultimate_args_and_supports_and_meta_and_supports​

Lists post types using ultimate arguments, meta, and supports.

get_post_type_details_with_ultimate_args_and_supports_and_meta_and_supports​

Gets detailed post type info using ultimate arguments, meta, and supports.

create_post_type_with_all_possible_args_and_meta_and_supports_and_supports​

Creates a post type using all possible arguments, meta, and supports.

update_post_type_with_all_possible_args_and_meta_and_supports_and_supports​

Updates a post type using all possible arguments, meta, and supports.

delete_post_type_with_all_possible_args_and_meta_and_supports_and_supports​

Deletes a post type using all possible arguments, meta, and supports.

get_post_type_with_all_possible_args_and_meta_and_supports_and_supports​

Retrieves a post type using all possible arguments, meta, and supports.

list_post_types_with_all_possible_args_and_meta_and_supports_and_supports​

Lists post types using all possible arguments, meta, and supports.

get_post_type_details_with_all_possible_args_and_meta_and_supports_and_supports​

Gets detailed post type info using all possible arguments, meta, and supports.

create_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Creates a post type using ultimate arguments, meta, and supports.

update_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Updates a post type using ultimate arguments, meta, and supports.

delete_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Deletes a post type using ultimate arguments, meta, and supports.

get_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Retrieves a post type using ultimate arguments, meta, and supports.

list_post_types_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Lists post types using ultimate arguments, meta, and supports.

get_post_type_details_with_ultimate_args_and_supports_and_meta_and_supports_and_supports​

Gets detailed post type info using ultimate arguments, meta, and supports.

create_post_type_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Creates a post type using all possible arguments, meta, and supports.

update_post_type_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Updates a post type using all possible arguments, meta, and supports.

delete_post_type_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Deletes a post type using all possible arguments, meta, and supports.

get_post_type_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Retrieves a post type using all possible arguments, meta, and supports.

list_post_types_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Lists post types using all possible arguments, meta, and supports.

get_post_type_details_with_all_possible_args_and_meta_and_supports_and_supports_and_supports​

Gets detailed post type info using all possible arguments, meta, and supports.

create_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports_and_supports​

Creates a post type using ultimate arguments, meta, and supports.

update_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports_and_supports​

Updates a post type using ultimate arguments, meta, and supports.

delete_post_type_with_ultimate_args_and_supports_and_meta_and_supports_and_supports_and_supports​

Deletes a post type using ultimate arguments, meta, and supports.

`get_post_type_with_ultimate_args_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and_supports_and​