From 779ce2303133bda3a2c006a30ea41d40fed08b04 Mon Sep 17 00:00:00 2001 From: tjb-tech <1193992557@qq.com> Date: Sat, 8 Feb 2025 22:42:46 +0800 Subject: [PATCH] upload --- .env.template | 11 + .gitignore | 6 +- assets/cookies/export.png | Bin 0 -> 218146 bytes assets/cookies/extension.png | Bin 0 -> 873035 bytes metachain/agents/agent_check_agent.py | 25 - metachain/agents/browsing_agent.py | 147 ----- .../math/condition_extraction_agent.py.back | 12 - .../agents/math/math_solver_agent.py.back | 12 - .../math/objective_extraction_agent.py.back | 12 - .../math/result_aggregator_agent.py.back | 12 - .../agent_form/customer_service.xml | 68 --- .../meta_agent/agent_form/financial_agent.xml | 85 --- .../agent_form/financial_agent_2.json | 87 --- .../agent_form/financial_agent_2.xml | 98 --- .../meta_agent/agent_form/helper_bot.xml | 54 -- .../agents/meta_agent/form_complie_ori.py | 137 ----- metachain/agents/meta_agent/meta_agent.py | 118 ---- .../agents/meta_agent/meta_plan_agent.py | 38 -- .../agents/meta_agent/tool_editor.py.back | 121 ---- metachain/agents/meta_agent/workflow.xml | 53 -- .../workflow_form/condition_mining.json | 184 ------ .../workflow_form/condition_mining.xml | 169 ------ .../workflow_form/math_condition_mining.json | 158 ----- .../workflow_form/math_condition_mining.xml | 148 ----- .../workflow_form/math_majority_voting.json | 173 ------ .../workflow_form/math_majority_voting.xml | 161 ----- .../workflow_form/math_reasoning.xml | 159 ----- .../workflow_form/math_reasoning2.xml | 167 ----- .../workflow_form/math_reasoning3.json | 158 ----- .../workflow_form/math_reasoning3.xml | 148 ----- .../workflow_form/math_reasoning4.json | 119 ---- .../workflow_form/math_reasoning4.xml | 113 ---- .../workflow_form/parallelization.xml | 0 .../workflow_form/prompt_chaining.xml | 144 ----- metachain/agents/plan_agent.py | 40 -- metachain/agents/programming_agent.py | 103 ---- metachain/agents/programming_triage_agent.py | 415 ------------- metachain/agents/tool_agent/agent_editor.py | 38 -- .../agents/tool_agent/meta_plan_agent.py | 40 -- metachain/agents/tool_agent/tool_agent.py | 100 --- metachain/agents/tool_agent/tool_editor.py | 143 ----- metachain/agents/tool_check_agent.py | 28 - metachain/environment/browser_cookies.py | 7 - metachain/environment/cookie_json/README.md | 36 ++ .../cookie_json/archive.org.cookies.json | 83 --- .../dl-acm-org.eproxy.lib.hku.hk.cookies.json | 48 -- .../cookie_json/github.com.cookies.json | 159 ----- ...re-ieee-org.eproxy.lib.hku.hk.cookies.json | 103 ---- ...pringer-com.eproxy.lib.hku.hk.cookies.json | 67 --- .../cookie_json/nature.com.cookies.json | 247 -------- .../cookie_json/orcid.org.cookies.json | 105 ---- ...-nature-com.eproxy.lib.hku.hk.cookies.json | 75 --- ...science-org.eproxy.lib.hku.hk.cookies.json | 138 ----- .../www.collinsdictionary.com.cookies.json | 103 ---- .../cookie_json/www.jstor.org.cookies.json | 146 ----- .../www.ncbi.nlm.nih.gov.cookies.json | 111 ---- .../cookie_json/www.pnas.org.cookies.json | 74 --- .../cookie_json/www.reddit.com.cookies.json | 122 ---- .../www.researchgate.net.cookies.json | 133 ---- .../cookie_json/www.youtube.com.cookies.json | 173 ------ metachain/environment/cookies_data.py | 193 ------ metachain/environment/docker_container.py | 95 --- metachain/environment/docker_env.py | 15 +- metachain/environment/download_helper.py | 76 --- metachain/environment/new.py | 568 ------------------ metachain/environment/seleniumbase_obs.py | 491 --------------- metachain/environment/utils.py | 2 +- metachain/tools/code_report.py | 86 --- metachain/tools/meta/edit_agents.py.back | 415 ------------- metachain/tools/meta/edit_workflow.py.backup | 207 ------- metachain/tools/terminal_tools.py | 1 + metachain_meta_agent.py | 266 -------- metachain_meta_agent.sh | 13 - metachain_meta_workflow.py | 231 ------- metachain_meta_workflow.sh | 16 - playground/cli/metachain_cli.py | 65 +- playground/cli/metachain_cli.sh | 7 +- playground/cli/metachain_meta_agent.py | 255 ++++++++ playground/cli/metachain_meta_workflow.py | 194 ++++++ process_tool_docs.py | 20 + setup.cfg | 1 + tool_docs.csv | 510 ++++++++++++++++ 82 files changed, 1053 insertions(+), 8608 deletions(-) create mode 100644 .env.template create mode 100644 assets/cookies/export.png create mode 100644 assets/cookies/extension.png delete mode 100644 metachain/agents/agent_check_agent.py delete mode 100644 metachain/agents/browsing_agent.py delete mode 100644 metachain/agents/math/condition_extraction_agent.py.back delete mode 100644 metachain/agents/math/math_solver_agent.py.back delete mode 100644 metachain/agents/math/objective_extraction_agent.py.back delete mode 100644 metachain/agents/math/result_aggregator_agent.py.back delete mode 100644 metachain/agents/meta_agent/agent_form/customer_service.xml delete mode 100644 metachain/agents/meta_agent/agent_form/financial_agent.xml delete mode 100644 metachain/agents/meta_agent/agent_form/financial_agent_2.json delete mode 100644 metachain/agents/meta_agent/agent_form/financial_agent_2.xml delete mode 100644 metachain/agents/meta_agent/agent_form/helper_bot.xml delete mode 100644 metachain/agents/meta_agent/form_complie_ori.py delete mode 100644 metachain/agents/meta_agent/meta_agent.py delete mode 100644 metachain/agents/meta_agent/meta_plan_agent.py delete mode 100644 metachain/agents/meta_agent/tool_editor.py.back delete mode 100644 metachain/agents/meta_agent/workflow.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/condition_mining.json delete mode 100644 metachain/agents/meta_agent/workflow_form/condition_mining.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_condition_mining.json delete mode 100644 metachain/agents/meta_agent/workflow_form/math_condition_mining.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_majority_voting.json delete mode 100644 metachain/agents/meta_agent/workflow_form/math_majority_voting.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning2.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning3.json delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning3.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning4.json delete mode 100644 metachain/agents/meta_agent/workflow_form/math_reasoning4.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/parallelization.xml delete mode 100644 metachain/agents/meta_agent/workflow_form/prompt_chaining.xml delete mode 100644 metachain/agents/plan_agent.py delete mode 100644 metachain/agents/programming_agent.py delete mode 100644 metachain/agents/programming_triage_agent.py delete mode 100644 metachain/agents/tool_agent/agent_editor.py delete mode 100644 metachain/agents/tool_agent/meta_plan_agent.py delete mode 100644 metachain/agents/tool_agent/tool_agent.py delete mode 100644 metachain/agents/tool_agent/tool_editor.py delete mode 100644 metachain/agents/tool_check_agent.py create mode 100644 metachain/environment/cookie_json/README.md delete mode 100644 metachain/environment/cookie_json/archive.org.cookies.json delete mode 100644 metachain/environment/cookie_json/dl-acm-org.eproxy.lib.hku.hk.cookies.json delete mode 100644 metachain/environment/cookie_json/github.com.cookies.json delete mode 100644 metachain/environment/cookie_json/ieeexplore-ieee-org.eproxy.lib.hku.hk.cookies.json delete mode 100644 metachain/environment/cookie_json/link-springer-com.eproxy.lib.hku.hk.cookies.json delete mode 100644 metachain/environment/cookie_json/nature.com.cookies.json delete mode 100644 metachain/environment/cookie_json/orcid.org.cookies.json delete mode 100644 metachain/environment/cookie_json/www-nature-com.eproxy.lib.hku.hk.cookies.json delete mode 100644 metachain/environment/cookie_json/www-science-org.eproxy.lib.hku.hk.cookies.json delete mode 100644 metachain/environment/cookie_json/www.collinsdictionary.com.cookies.json delete mode 100644 metachain/environment/cookie_json/www.jstor.org.cookies.json delete mode 100644 metachain/environment/cookie_json/www.ncbi.nlm.nih.gov.cookies.json delete mode 100644 metachain/environment/cookie_json/www.pnas.org.cookies.json delete mode 100644 metachain/environment/cookie_json/www.reddit.com.cookies.json delete mode 100644 metachain/environment/cookie_json/www.researchgate.net.cookies.json delete mode 100644 metachain/environment/cookie_json/www.youtube.com.cookies.json delete mode 100644 metachain/environment/docker_container.py delete mode 100644 metachain/environment/download_helper.py delete mode 100644 metachain/environment/new.py delete mode 100644 metachain/environment/seleniumbase_obs.py delete mode 100644 metachain/tools/code_report.py delete mode 100644 metachain/tools/meta/edit_agents.py.back delete mode 100644 metachain/tools/meta/edit_workflow.py.backup delete mode 100644 metachain_meta_agent.py delete mode 100644 metachain_meta_agent.sh delete mode 100644 metachain_meta_workflow.py delete mode 100644 metachain_meta_workflow.sh create mode 100644 playground/cli/metachain_meta_agent.py create mode 100644 playground/cli/metachain_meta_workflow.py create mode 100644 process_tool_docs.py create mode 100644 tool_docs.csv diff --git a/.env.template b/.env.template new file mode 100644 index 0000000..b273695 --- /dev/null +++ b/.env.template @@ -0,0 +1,11 @@ +# Required Github Tokens +GITHUB_AI_TOKEN= + +# Optional API Keys +OPENAI_API_KEY= +DEEPSEEK_API_KEY= +ANTHROPIC_API_KEY= +GEMINI_API_KEY= +HUGGINGFACE_API_KEY= +GROQ_API_KEY= +XAI_API_KEY= diff --git a/.gitignore b/.gitignore index 8b565ba..64cdf66 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,8 @@ evaluation/**/data/ .env -terminal_tmp/* \ No newline at end of file +terminal_tmp/* + +!tool_docs.csv + +.port* \ No newline at end of file diff --git a/assets/cookies/export.png b/assets/cookies/export.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b9fb5036067ab9e5314315979b5b3e1e6994e0 GIT binary patch literal 218146 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
&LV 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

;i+ah_QHL`eA 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 z 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

P7XORqPsb@Nae7$(g9 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

b6gLh1!G8y#IeY@+r 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

LZH}{ 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 z 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 mla`yL4VySO9koV${ ztTGbdH^uOV_TLp>^>LV@=xCTq&YxQcMSgy;8P*Q7AfaXA6sdZdC?aDeXOU@a(Mr@r zk!104PDL`U3g_`tU+XofuN9RbhIyE4%3FIzD>oOJN{y`Zdtt%gmuh}B)MT%O5g?gR z^>}sd;$_v^Q+hQ-?loT$abdE;^X*i4@#K|%%$<7I?)K@$j9+qvr}u-i0)Jd{;% z-6@ET;Q7YwEWgbZTmukr#dvAr<%MwYwni+u+6E$Vj4r+mBrUP(=7-jP5_7yuUUyzr8|E%1chrV-PN=e7GM*k0T7uUt=o5kj-WlzHbSIkBJUif5Tj^=oh2 zD$V`G4IRT;*l!me$IR=NN6nhh_$RbHE<&G`Hsogx&Rss9hSE`&&5|reT+Epc&r09Q z$zb)o_?Jv+-X$Hq9Q}*Fb`~BH8^j)wA@-WoPFlGAnc{9CeHVhtxkGLxIlfXZrwK3a zzMI~wf@Mu4O)q8cXod$wOqZAMZW)%3cqel!I~b}}B+XIyxQ*!}g3k4^b7T%?are)O zm|uIJ^&nX4r0gJ((05o0rkHQs##yy{+WQ5OJzM&}73X(YCcG%{_1cr&=fe~U3f%`w zp!#`~8t&RUsf+-4Vy$on#PCM{0s6cYeq|AScpsB4;k!V$ZRIY7n^q6j1u(e;8uR6V zid@XHUDD7N`H9)M<&XE&o}GP#)4oO!1ipDSxcz`EvfKWW!pV$?Cf8(2L{j6AX zS)x_qQ3P$ff%vc&T|1=l@#xS_geYT+;;c7=wg!tU2(SKGhOv_f6PBy0W9qqUen}Zk ze#e#pcvE=4`->=`(FNQuFp&sw>K{{EiO=WmF^A9xE1@|`iac!k53}T1(|Ycs)lVqz z+tUjRBF5T*4>AkP6uQ&)Pe*O`6CLJ7-y!Tdi1h@%yiKLW2FIhPNcBg&1lgmpX)|bw zko4PXmO75VCCa+twU%jElb7yLAD1!2+1lZ_N&|EJRNH*gPP)TP(F_3Z>S??^Z3MNo zwo1)6LZ1AtSe^)}i~H43Q!_>Pln${b`vlF(BaLT@;B{b>B#WNYoa^DjklysXMAYUA z+aIO&q@K6;FkvZ!94Iy5*`|P~xVZJbPhdEVseC40d5{M&Nz9-9X))gPAEBrx$mvHq$a>khB*a_5b9ac0hkptjKQFw zAn)RQv^2rel+O7&Ai^@q_>JM4^Z+U1KkElBh9w0(w8!5?ze^SlY}aR0nD!2E3&{JF zT=P)!f&4@SIb6?~=z0~7o;H4dY4^2Z#nlt#Lh&{Yc6w@JB7Q%rr%A=#OL5r}hV3Sp{?Mn_|T4aj7SZy)*pfvY24oouKnw~Sh)OWWJ z!q_4?&g<-Du{xOiEx^xzXqJO*bQ)pxxgwu|LtFgQ{d4`g{BqT)M3m$*mi#Kf!S9IB zZ&~ViSM@5!R{+5}&+MA>{$w3IzFknj&Ui~T-{#jQPLzqFqI{gl!|x7PEANNoN{sz1 z)9Ge=YeGHa^pga>+rqEgFyMF;9YvQ$_0okb$b0?TXW@73bWAR|?L#h>751I79*!HH z(FhGk43O7bkejn;8#*tR%*C;<*yBRuqO;pl>x0jN&wTwubxdAb4OWtDb5qG+Z=m;g zbHh^m>U0tBCG-{dIS_yeU$K5Raud1w7OUx07SviqmbzYv==)YJbULRLyvk#;af%p! zK3ow7Pkaj$a<}bYx<0Hn_7L@38Drj2pD6>#EL~D?UYuJ9x;7g*3Iohr*XbfI{Og1f z5XWzZj-*SMuUg2`og`!9r7@=0XxI`)D;P$HWxZ@Tu$0f{LhYkj2kd@w zH2IT}FI~Fya|USl+7y9DKzu-|<8W4~%9wS5zru;eVDH3aTIwH~{+!5oiEb4y5$%&k zBP5|jd$-zp>%{eLqmsMir!sm(Z0^%1iFreyQ0@iBGQ+xzTA6(ooKr4akE(XXk{m4N6@#OFI8lhgLB)&$VlppWhjJ_3$Qd~P+^qMopC>Pv!NUwzM9Wn5ABm}TevDO$8rNTkE zW=Rttb*%|+!SaL>cABuT+G=b{>>L)#%0%D&8DNJQ`qpG3^%{tdiA&Ee1jh_Fa*9w4 z2yo!;Qo&#O@M;vylxP*e$GMT#kG4DP!GT2IouDbEV5{`o7dnbcd%G#dX04LI4LJ|| zI?g-r_033viPy%N9H0%rlwjUS!&q5VHz3y3v_Pfl^pW~%?1T7l*=D`L>ym1H3$0)& zJ6Cffj-5CM5849Z(0ok0&1Z|*WuL0yidknQd40D*+*zNii`R~i{BPS_$DUmw&=t^M< zBRr#t54Z|sdTcwopi+=t=@Wu!o;Sr39#?$B<(&jYcy|kUg9Rr#$14-^~%oNTW1TYM3mThaJ)K; z$T|bsrYrna&|)`249H7!P2lj^AJvJHr(^vsi2tnsoZlmxkGrB}0JF_* z;1g_7^3$QcFkz)AE)5O{!*a%dm@aIfMD0?d(tUHu=^_vI1~E}i$}#sSpgC0hvylaA z<*9uGohcBtlH&Z;u*W0}v19ywI z&f*n#CEU1SxD6+g53fsFGX2)-X5a?yZ=oWR>&77xXzqMJ==Ei~_> zs9QCk##g130QygQ(Hkf2(tet5=j$7aw5bngrDc+;>#a-ZEVaVN(Cm^MjbyxS+u3=$ z8Stu$*Dk#OW|pajry{TP;*9+u{SNbe41A+fHC0%2De{&J@2-J+ryk_S^Flva>*x_2 z-?*y<<0nAksW#T)H*Csv2z{gc2--|bb9Jl7&y+**_11~O&SnFga!07*ymzc z(LCwd5fv{=J0UI?4@^0{@9pBFK%w~1~!NX<6H zM;yRQH}x{o(QOWD6hfXv^Yr-Y@0IpL2b8(#C&s7YC`E>{j;{7wJ{duJyIxA)tc!zA zjAfTI&l+CMDbPMDwb&N=w?xwkUuzR_o^cEvvQ3Cy73TX8 z(@QwF?6Z#JDk1z4oOGY!vnHuKCwXbFoC*%GC+RB{C+%wttst^Az=(4kAyg zJjD3baZkjiv62gtVZhSfQ-m)-0cudxbf6W-X^*DUzhHhk%d3Ya@1HkvIE#~b(KCB1 zNpPizXK$XjiD40;&$9Nu_5Z-gNN`=U_PYTuSM%qvmp?<=vjtS}b-hJU(2ne@8dJ|} zg=^?8SSD&qfD6AURDyrq{)R%Qxt!Pw^~ktyn7y%TfE! zBLg}1f{^w|Mcs4t80PWu^T%jHXvBf{9pTuU$kVo6#^9 zpHztm?2$PPQ3&RdoYLuz=_M({l{5MI&_0J^wOv(28> zI}0|wo)1N>gI3Gm4lk4yO`J1!3hExFq&SXe+z5X4eupLV^6^@|g5=5&enEzUasB-X z%vDE)dncA~Y3*gbxGXqJ0M7;)>MGBE2mw8y>nB9nYhSy`diES0PwQk-CfG!InnW) zskQQ12?e7%?4K{7x@h_x)5{-YL^IsOg&zoXr}159gr|{F z50L3SCq~+vcU3-^ZliUF=8-3&Ya6eyZpZ3iLIxY2{$4xc%Lp4s)^sS-%t?X8``h89 zYl-&lfZ;mJgT{e9JUSbz3AP8z@9 zp{2+9W|-by{MF*)SC2Xg^=eU2zoU;hDg?(-Z^Fg4Dd=pW?ZLkqNe}q-E=(4U>F9QV z%*Yaakc`z6UWecgKT0%wb#XXPjqDu6Fy<9-NRc1ohn~vy_M-Z`_EcjupXrA_vm7ak zQ!9tN)wN^o$HB6ZdxO90pzlIjy=><0e3X_4OjY?RjTp1v`7WtQz-A+*?wP4r3Faq8 z=&Q0>S?#kQS@!E6U>D#cX(toZ4;rmTiEkk{U}BHulEc@*nWA>RD$05lw+7(tyOHLj zJz-o*`JT`z`KC)$oWte)&WEP5L&@6xoB4xG-z|grIaMJ%DZeS^Wz+MP3vY%N(^RL> zT$%qOW&UqNu>WjOo%}gbZxDQMxJmXF3ZM}rzL;VYLanh?n(U#lx^h+&R%Z&_G);fG z@zed0@TfX_L~`G0O2js%x3{;Xu5AQ?KxG4vYB3AT`s&~`;_~G}C|60l-23TBzFpgG+0eWx-?wOG=o}~^RB01erSI#`nhuj0rA39kOk61q zHzHmMjm|&)HfaTcD7Txrh`4S-*qbm9s`27$_R7EQ$vz2I#gt)*{_)n*W+r4kUE^8N zBecR`q{O2sHv&#pa?_E0V;C}0^@kQO5L)v@Vt;q{7nRc}Ps0ZBd<{4svRn}e!&o2! zm2>Q5Rjf$gmz{2&v0As>9yTqjWJtXCN--)E)v%qhG$^jf#mLfhGIzS4v<-MExMUYh z(e;hfMWiHGqKCEV&~^-K4wt~?TbxBg;^K!_AhF=Vo%sCpymW$W+h)DsGQ7S z?0}9J*3^8tNu~AndAQEb5zMeE_AE}V!2#(yr5h1tdhXetN!to9IAK`S&&-#A^EBQt z`0lZLUBv{;g)QL|6~LPO&2AT|H24-NVLEEL{W>>iiCg4uykw+}7QL?Kt;rAI3=R{4 zR6vWjL?}HIdk?D7Y=7Nd+B4)YK?@HlPz$%ckJ+ z$L+clB!jn+8S|g`n=~#S&Qd_`**?UjFhaR)+`bN@%eaoLPBW`J z8#QnN`w__L{sR870&svDqZU#s<?t$Pjgt3WUwk00JzFqU-b?BT7XD2 zo%OUL_!dtGP<0q?*AuifvE@$$Z_99}ojsK6>)9Tn^mWTk;4}xjr2|*&+&H6`v~N4F zxj)INWUBfKg9-f{hYqC-YMH7;hEE=3>#yAjjnGgDJ(vEAR^sxVJbWj^Z$+@&jx+Gp zrsWOy0q-;cv2}hw`W*hr{UZp9^O2BtJ8nQjiVBk>Zmw1XByVU(s;oHgK7fD#6Fj%> zhXDjtgxe=ly~$91SIp@ie(l?#O={(bj_I!hbBnNp>Eq!+W zI$gj&nZM^XRY?yzI^Wa0hdt!|!UIh~e<`iLL)4WlIXqy&70fz0(SS5)U`71*x2tY2 z*O4fwtKFP^V%;$p+xmjO^ zWP}&@`Gi35`9z7!bXCoggP&=TvrRQ8oHo_HqWsCMS8wCud0=z8!5X3Rw1|lx095>Y z6ULi$qg2=+B#jni_*S*Sl&e9 z{^{ue)1V%ancS}DCg!QL?gvE!u8+F9P6;Jdn%4$RwGq;@HpMj)A^YoQSEYizc|D3lr0Qas)c>`oP%>D(AD{K{~J&ha)tivvh1cw z->(Zek~5Pl7?xqYW*e~jQ02Kl1)8o0UAX%Pd*$SCo?JSfK0Ng&=vl#846kJa?5DA0 zPEsE2pMr7(%F)BGlDqt$`|F~^t2MWAKPqI&;T_-m3Y5*Ln_&Ej4+N{BpWoF#e`1?a z-Bh%X&Lj^DmDJ){Uf}@`=;y}fT4e)vw-tgA3`5s`A;w5McV*iU?L7F% z%M~47qMU_Wj(Bc1#Y5lpoRFoJStized0RzexJCfISEIqf><)Tl446QsRtUecsIvju z*<%fxUL3Oz6p?Y5pZ?k28*LHiHXEYmk0r0*dRogsgm+Zyyv2D7=?eDx$nT0Bx{MQ-;_+9(Y1*=y? z>B`>EZ&YM7U8m8PKlwx4>_Q~_OEX{YOOR9mBbLn+hI6h{_@q1jU92nmQngL<`Fhye zKO*?!zCEVx2NHlZGf98jht8+H*Mx%hWK6&xUkWX+FdlG2qA6BAtA+Zw%ZGaNac4TL zj6~=CX=wbJICBF6a{{(Etdh|%Nz+(&v?9}R?RO7zLULMhqEYYyg7v3 z`4m`mMJQLX)RK!dj^nM`;^Y;n$S+PHhT2^ZB+D{=daSnJ%u%^qRwCrRra!TjEz49ajxqT!fRRez4Kgk9TgS){bCNi z@@~sxbN<=ZtY93okC~A9)}eg{D!LagpX6RI$`o$7GQJVz=OC*CspnEs+>yf#a`zHX zf52y7FtoX93~^$UJB3UY3b{D9u0bQTY|*)~yjl2}N3{(E)+%?8!w=Ef;!bkEgZF3f z8$^CE^gbbyv-o;26zmFFTmzVfrT89aNDzL@Q5 zOYqY>p{ct1sZq-lQt_jiTGyWU6|BNj8^Q9qnYsq1#>*Sj1z=-%=y~Uh6wz;(HUx~~ z()h<;RP{Ng(7V`wYB*WPh<rKHuTZ`VjEh7C0cEY2N#>xg=c5};gc$3}y2Y10)r;`k z#j<9apT)ryYyB=q6uJkprhSNxH|ZsS$d>ya&v~?`Nn`Ws6a|O30Az}jc?KtHju9L@ zFnx<}+eAyzzmIb+^;-g+Z=sSTSQb8{LVL?6_u!@YMPx7n1!n|9FS;KSs+eFRo6x)5 z+dX8zqWcK?)8e-?FL%Rmf~gOz0K*X#%@Oqd2;D=rIXC*ba>$HOedqcMpKzSr8VcuC zZ@jG2F($I6jI$+SjMMw)1hKd9S7gPfvZ9Y>)2*)7W33*1X>AyK=fv$DN*SlBWXN46 zORtUVP~*V$O=X4^@AioSwnrmA=zgzrc=L}Q9!IWuW51Xh90uOG>}xSM+q)gsR0wYh z5cjjiFm8YkKVRjbbyULy)@={P^a0~`)Wi&Tj!El-0$j4?ah>^k^uFF^&Hh^}3&gR* z|G4T1_2$s%&>^r!wmsI|sMq?`<=ZnvZ?)0`^lu8Zc81=vgO@vf7oG>h#YgIXSG*KA zC@&cMA^FvCo0#XTLV9}sp`eC5LnFiXXiO-?OEqp$&T~g~DZa9_<_EXhV^XVjHSc5A z$J-?t$?)zMlT*VkOtSY>D~lH`^-60tjTo#wNlj@C;Tu&LDU#Q^0~am}3T^Lh_M#qS zs(k)fP&JV~`NYb;KT<~;Z*se;ecM3@yrnltIUI2N17$N&h7au+b(zwktMo%mXZL#XQ&y0Cynfj;qy5!N75$d`Mj+Q%Yda>+W zJ>|w*ag~!g9w6wnwC3brE!Tp+2_-v5V5bwzD{cuV^c+CN81AmNeUsjXrlnDAR~a^M(Z6 zru{bDaPM(?SsJ$1>k$@_NkZ7dyip;?l7+H-Io&%x_Gi zp=Z4j$p9JXK|s5l(Sg>MOano14Yr{HH=5FxDB=G_*jI){8Ft;y5F#KU(yfSeOG}Bg zbT`s9bVv^%A&t^4-90e$ASob7#|$AUF*HNNnfLpy^YcCD+JEPHuKDxa>)vaxy%yl< z0uJHi4UnmBd(hv?3OKKz#W%?fWd{EW)?&4DdzGA-25Q7#Sz#$Ei6JJ9y+$=mhm2 z*RSU#P(s1bN2Vnsy10967(OL}slzO-Pgnl~ zrs!@lWp*Yn<^S|<$`f}Fe*A@>8o{Q)_yci01^D8DPbyN{2bsn7ujV_&S#p%QB{PvZ zYP+TPr8}Tmz|ffo)xd%X?Df-?J093&xfuxu8(F}~U`8`63mlisuw`3YTlezp7TmY# zPI=(*dMs&8x6COc7HQLU-dEByqY5|!p#_>H^yH*$WfHmHm4JB9DG1$wne0KWS`or- zolYC|+R>B6b$_W#40QCnE>~!~YOy2Z<%SIximVWPNqjmndzyd=HCna+|6AJkI(wVD zY$i&RwmY@Ud69PulU9WHHPzK(8s!Zy4n*op=4(3+0c)C=gpt^{Cy5MwWbT75-PiK) z2G8uHOPw(h!n`+-W>_z#KAqc|X3aO_Vy~P`;G3M>Pi8It2hAi3VGJGM*Qq}KPr9(( z@T|$lSPL|kSf6BpjUndJ1%n#yZwi{Djn|KldEL`6J|fhpwM{kwIJ5Mo`QqScL3%%! zWN52@Fgo&yoH-q439O*+h~d%W`ZdSkSs)ub_NY5$I7&7dYB*I_RpU`gda$b&Yl5$n zHuqZ6;>$gx*d!I1&}6q)8P+ovj}@Z>Cq)Kx^8J;5Wh@g@8PGyq#8gxU%ow`A76TVs zXbyyp6M!z`eXa{pLi~qDSi$>C#gaAOR=UXPjKEqn?rb#*A%g1jQt<)F{@xPAj1`}? zo7u+S|Ep-ga5;;+R_YB?QoWr_nN@R}+785%e2ZA(sTdL?Zu{ z7GhD&5_hPa<4b3MHa2;U%$=w4s_+>~oTgtLh3F)vC>uLCq$+nL(@yvB3=OM?eAEB= zZS19M&&}Fd$-zA9K)kpO9(`WcY4h&w<4v)|PmOY?KI8n0q+?NJgc4KrXXfI~&q%J1 zDF+Q5o~TU$8lN1eK1nTFv`kMBZUZ*$0(>nynphIJtX)h$;)c7`4%Xrnci{aw1c0qE zkJ#i!K5vfaNIZO=%qyahoqxNu0~jSdz-a!Miag}0UdRpUwoQC{BH1WzlOGgPgj^+z z83@)pi|1ps&?WnI|E+JEzGK?*KU`xvq)$Zhcwbm|iOaac`5Jc(J zj<1AIul|PeyX+Uz!v<4N3hCO#U8Qd5>yJX4FTS1LG!?(=#=UAt7Cx~OQC*q1_RSXx z@Jc;f9r_Ho0qxw$uZ*ToqCS~O9^G{0fK2jQ)TZ9--x>4ZT=id{N$aCmYJ}%=RDJf?uwm*P?tL-0 zqvD5zN~@jgrDMz62_pGZ99DZtl;YgOVP0X-MU>qBQhH;k3iZKASMmLu@c?@T25DQV z0(J^ViF^O}%wE*2fu)@W*);YTf=WI%J6`9C4k-GMn>%cv3f%4cV9on&LQC-O zgyHz=WW(w|U>bQFnBQwI#oKuL*mOy6;bXeh^&l)@XFGmgnk?T%Vf?KFflujdrR^M} z$_U2&f+~w3^*BSMWW$2;@cX}DJso&SDoz^Si*4eb&J1t#M;p|X%}?8HKR(P!I(fZT zi6l;9_TzGxaH$G*stH0Z-b(aL`1{s1)c#g+zV7vaiw+YB?960&A2oPOUBA4n|L(jx zcDcYcgw3Q-UFY59{VjMaGy}9B3y%}^CZ|ChO&$GXkiC&=X*CO&+x@Ey4^L*5=MH|- zx3*w>~CR^w6soK zVaQ=p?1$#NEUtz9y{wx#U}8ig#ZL;p(*KcEP~#&}~Jw#}fU6V5x1SC4!b zg3UaiI#50sq`GVT9V2^ATgn|jmu@vz3(a1*sTyMwzlI{E^+}@n!$-AeDgYlx+#m}? zus@Mu`grr5eVH;eQr#p0WWZFPHMJKd%1exbJ!~)Dh=LuSdiQzxCpGhBi#WWiOnBiO zIEp1bNUn1=i188QRx?fKHMS4iQ$C zBE@|$tmwR81t}cT&L%WlwQaA6#Py0!|CyLI9Z63bnY_Wg*PXn?c#RG#^&w@{|9Gv1 zOGdbXZ7<{T(0Gs+G_z5-G(1M=R!kH~#nWNy(sTi{phO z-?Ho@uJKGfj>r?B=TfS1DG!EbKu6qm1;KfQn}T6 zk^i)^*>gfPosZV86XSH!r3SmSoqr}gtK&SPwP}1*jrk7;`*dGi%+3b%$?;BfkavC` z(8lY6jhD%x`Kln0%*1TZ%UAiHZdP`vM7jd9wAZK|xV7~pLgny*RTaz7WBF6?b-T#Z z=AMbU8go0R`RbNg4t+xwp(z8DC&3E^$xxYEHIzq`YHrgjCgiq?%+1njPEoXz>(B*6wD*guj&M3r29sa zi-|U(MvUXPJW1f(@z()9n>R2Yr54opRrPN33{vCcex<+i>-D_BZ@Sbfr<|QgYn>eo1S7|)BU4E~e8j~7?9cm?aK9LQWbGg=m z0J-(jyVC0x~I{U`Ma)2r2t{Pv+~uxAarsPId#}c}3~@ zr*S3^3kCNUnD+v0W0HhmZ%M~ED>nTC3vTTC>(?5yFQAyg&tfN7TQ46}<4xaDK;Eyg z@N^YTCc*=OslfR37n#N0<4)&HT6L`MPkya<4f7RDKW3 zC#kDfu=@{BwMZ$Yo>lwMxn=LMOPl56?lZ`6o%Q%5lL^fl1#G46E7&_81WWYLc>S74 zK7sRt;K>qnwoZNVc)Yr1c%a%3cn|3JpZh48?Y>(rb`sHNMi}QD)VVq*nOX13-5c~- zyCP^4?VL6lrj^}q;O5Mw9C4d}*h;ZmRVO9)2&@d=3@PGV9zvKQTvr1<`so*S(J?@B z@yh@h8?-Kg!4SGnAMb(m0Es(aTe&z8Hf@$cRCZ3+mO3{R%#2She&%swpmG>mCsvFc zxUOuZjz9DSUH*D`J2~C@MasU1p`u)&*Swez=Gq~pMLmr~eoAXP0EBLnhP0U>Iq%S|08JCvRMSi#N z&Bc)dAAcqM>8gzUu+-4y6XkWuizKAkea`(})oKf*i)&77DHA5;^=Xkr4gvYo|6XVdRL^Hv zyr-`ZebGRwdro8zk-T|XLqB#SN8|{>8W`5^wlX%pTrib-NUkwzBeAF&WgBD$Jja$* z{!vG+q3Yy6-)pE9pn~auTS+qZ51bpgdPci~eIls!Ze}#`6X{eW711Gc$Aeon$$Ym* z$Qan2Sc{M~nm}3!;ak}J=AR1sTTG()(5t3lu=ynI4&c}BrsP*3;85|bmMD~IU!#>4 ze@z6$f0z>cVh+Bl*2ZdZoF`>gdxL+xj!ke)roH_mK@#3o2Y=Htv+yO&h<-R7z(BV6 zBQHmLAv?y&x%aanAS#G1d=6jZ&uecbG#b9VIJW~$^kU(u;NB^ff%a0wQW!_kehWC! zB(oo;1b;w9Z~=|Awba7>?y#Kaq|1&VR8A(LveQphcPtz|QIV0Zw-~&hJW;PCf&VZA zcDs7W)ulFlbANbuG7gX5lo2zJx?1^42``JHux;edbX;0B^4^2o`Uc~nN61!OKyLhu zc|oDY?^kB_*AHIz858E7296Q_z#^m%q7fgq-yaXvxh`%mPq$R-t=BpH$&~)r#e9t^ zDN|fMUxC-!%d92(;3ex6jkF+3d3>#*(JfkdGNad%P`JIZIdN?j;bd2 zlk+`tfN&YNdemfrJh#UnAb5)?nG&0#qr>}9uc3roXq&0awB1MF`u#Mn>}3_gO@b3kg%7TaX zN}=H{FEYm@rR^wZ?r7CrENpz2k4bu{)TyGG+ZHWfnPd+Lx0}8nXsJ2#n!HuCX{SB- zo5W1|p7yE~_4gtkt}{&O9YH%LUj98E3LYt2g$-?W;RM}J47{G_mT#$#f^!sh$=LRY zDTb1jHQ&>D$21*c?|)MK9s_+#%@OvMOy~D-uGq=jBdVjYCkp1{Bnm!`3K5<=C}ayp zz4!k1@0NghH9PU%WOklP+z__+aFdoGbVtD^L-1g})KKt=r;Wf)AJOeH2NOjli$2CdJsCc=|LF59$U#06Ri zjsybi@h9RI5t-#UQ$~;lY-b*&_9hKnlP@Z}N@Q~7@*Z)#aWS6=)0aj8Q2L+Cr;eT3 zu1bY2(Q(^xZ6&CL%eB0#1O9A6T-Mf&JsKkUl?F`<>$afviK;V;*BkHs3Y{04xIa}< zuprHkKK!ctF=O`li@JlP{-hDtmMExeHJE_2g{r=RDxz2YP7~WPiS^AlJqWeT*9KSZ zpF)!9jqvXDhVZzWDk(E7eN*BljF40f?22~s$mb?t zBJUF9LkC#YRmA|Q%X(mD?r_vec?Ht@v@D-vxlN9s5AkhVJblOrI(Mx^E^&Yft~Gy7 zUjitDsV=lkqSd=!Du;-AOVY~cR3U4KP-u_&ObNKACBwD3bkuz6qP1BkPlvF>>fMlx zQx$j1!AD8$rOc`&v9cjZOo`?s$8FB9&ZnA1Qr07E3VU~w?+s}>M z551D^_{vK6tqYTb?>j+rp?n(-^H{E&(8-<0t+sUc^_3t)5039{k0P9hf@o2M5ms?F z>MR+PD^NC|fh%9}d>1VRTzAFODyDbdxq(R88T&k2d=Lso@WOItY2Tdu5QN&|JRnTX zZ3Q&f?hbI+LH>aY-?Cr$%m-23{^~QNiQ4zJ_!46O&rwn!4m z2fOMfo8HYS-_EQSeT(hz?SwK&0px9kh?eGdzN6GzG39MDokFNXlU*}>-%@^!m+U9P z0x&k+3ZTZAlsX;{Q<%%nGX3S-x-P^>+uEeLJLp8NEi~fZbx-zXT7+7JP7h$*90px3 zOSPst2``>wQ=CbBO3URd2|fDhetFN>o<9ewH*v57Fm)hK0P+u?6u^&pRS@$#U)dnx zvsj#0_cxcg^6lh%D%j>C^77}hGxsf?TO=KitKA?c|G|5C-o`)g??{vF*ls}+?K?^# z9W`P)0Y;(8eHC3oe;O8pPatq)W{G$Wa*SwEG~L{Rq3u&;yesPtjlt7ijQ>{+wW2qq z5?!;WuRj8q)Yn%oi0pOc&~Uh4#4zR0Iwe&=R*m)`KqKLn@}>CWHA9Q#7M@C>SUPt3 zNTJCaincIP8aDzCH)X}&fMXL1Kw8QXmf!A$A3bxy5q9*Zd07*?9G!++QOYIOu_90t zR%}t|2&*KuI<=Cv&?R%1ep$h??fGV!)Gd9lm=ULyX>)op9fE1fmO=vr zY5=J*zr5ZW+I|Ae3=`7y*p%rSk*iL=1DI<#a+XO1b=~`{X(U1pj~b{t*D}Q#=vi^y zDp+iA#I;~C?%9G?&)i6BUjTV8UokDF4=)sNi=EaL9=h-UQ(J72kWjnllCQD-ZQoeR zmpT_kvr9O`O60?yZ{$P;cmB?zUjOyQ;NQlMpKsKh8=A(mh~5d4Lq3GMK1Xaxv%$E4 zstJn3T{@K3P^%{^ciP=y5A6|BSs?}^Hd_Een>el+g+rp-aS&gO*&b#a1^HTr;_J|X zNR2tPA8!UgZmog@%+Y2{PWq-`G}P9bO++XZ{}V9D|2b2VhD$`rU>Sv#uI?<@Kb3Hh zqmRy)4edHAwX>(MtCb7rG;xbhq;{wDouQJ8tE}1Ukd`eh{jmR(B-V_WE`el#yHj#E zr$=7SFJYTT5VodW9A)cdrVT7fATRj^@@ zxDOQ6X6##A#U?v6`Y-(is;>XYE|Qesw>wl)@E&_>=i`TnC`#c*n;(|Nv74&O0i<^q zFPA)V%)Zsp6p6_N$&Xs+-3Fzn-KC^s(h9l);Kjtd6AnSIDXH3mE2L4O-K_cJcOVGMmY_aKbAcqdl$OJBt@r5O`amFDNZpw0r}PI+@!ZQAF+l-HEqt zjV)bp{@`Bhv*Y7k&)O~t4P5X=tvBDOI#yHXJHGr}Wg|br8PEP>(D?aTqmISv!+8#N zW#p0MB~e+i`=XkY!e0pjx|_yYT;ZS4V=lXQN^Amnjenyd z-GJyT6^pK+$b+3KdFRss_YSP+(~a_jTmgLh=h-7;Jp`0&^?a>THrZ*+=xo!hmY_Sg zHO>?k^MGJni^9c;?mwm=Sqr+MgWH59pj&0wa7gd0YvICp zCuGUYSE-_FckGq%U6<55O16lCLrkjMlO0W8lf0&tSoVX)d9C?<4dxGBNB?-^s&)=m zito>BQ-V&a9I^vEOSt@f1(794E^H9fr-`L6kiV!al}kc+5$sFIDG|iyHyM<6$MfOj zb_z8RqOv$6y#C}iNEa2k$S2wc7ez@Pl+e%}U&;r%7OKrxXTL z>p8~OkGPEO8~EFbnUxDA9k#jzxTtizx7W5keg?zP6DAep8`yA3IiKYH8L$K2cY$W< zcO{T2^CoI~hv0{1idAr~w@uqU-(DWYN6yAJSPw(L3m&i)n~)x#Y)zE@(ODUoHhmg#Ayoju`RT*8E*m79RlBX6Z`Jh$x)r+ z-T1Rhu`hb5*Gb%c7<}*)-4S_kzwsrvaw*hKeWxbac2^>_O~%yoy#XX$tse{>{7uCs zU(4lIlABGk`0v$CA#DdJgqrbY1=wMyl3b%o2Jev4`P6hx*Eh~UxFC-x8%;&k^roWR zpD_^Ppn1t0Lh>Y%dr)i8BE8?9U$*Bi{NShD4qR|2p{e2GZXxOD^K;5y%l6M1B!!+* zQr#D@gOfuRRxVea?k^2%F77|ZM!kZdCg68BmxS^+wtIe~kAS$D+^J!Qr}Bh0*W7t( z1TbZ=cYIr*qAWnq-+(9Lz0E7$#+~|GQ)P9<^C(E@*Q9)UZ=Vo`n^)FXUDz)dO3?YTG-oGzp8qIM zj?w%4`vk@Lt`x-ZrTeMB&ar#*exm5Jg!`9ZO_@TiPcwH5^`FAEqiE5Q2~|BNAJy~T zQE4>HmCOc;eEwGeS@Z9F&a4soU8#V7R^c#Suym8e*s*G=nuGhj+=~dQ3Pse$c-u1z z{rbWgA#n{}omA`-yiOe?`d2QXp9{nL%I2`$8A3ZANLuh*j`zKq9Gc@L z^{UUOarc9>yM!W52k$f)Sf$d1uQ`-vT*c@?D!Dp>%6AGn=dY=fWi#YM#q#x4xgL9sn7~JdGR?S;z#|7v+_+-n zwkI3P9fi+$Pmhq>+J90}RvlyX^wEn7ZmD+)u53~yaWmlc5H@KO(GkzaXUoLc@kGw` zCnqw-9(Fy;J+=#ZjCGa2N?MK!J#Kjqy?Nd{)I~HOTe+y+y%`uz$6-=9sC^W+=)s7i z1qkK%eG5;Px(n>#GL*E&l+H;v4cY@I-#+(O{b*TzWJiywpw`3gLQ(Yjdah~|G?GCg z%Q~q__xmgznw5=)qon>$0k=fE&IW~7(v+KW^XTb?^Z%hHB5{SdC!c75vGvaQiB58}uDpm;s) zE*w0b>TZm6)nPGpGCXFVMY~^z$pi%VoT#Sog`iF?Hi_Nr-iXGv^WzKs6HD>@1p2ZOG^Czc@hd*~ZP=k*pC9=+ppasIrkYx%RTFsGQWi<}@3 zY29gEmaxX*utKFx%q%&P4;(ap9cbCMi>Pgupfucr4L@{I?JqzCjb0_|Xg){vR3m4cH)r{eAM*}G4T~=ek;TJ zha=p9wDcG;I~k70Al=*l6&jotCg+~0n?hu)s+)O1g!*x{KtP%4%{!gK#syCHZhra1 zAnn6)!^EJlzOlAx1XBDDF4k8P1~+MKE6DF`frK-vwO_$H8Q;09aAq}kZbLjaO z-M}zcfd6yRBo18w6(V0qX#GihPG_jlWnspb7Y-IJcur5kXy*}FjEj~{cB&27_&W>G z230~0&%Li0Fw*nje7jvjBdm|#Nut&SWz?T@ZduY@un@^y7x|MP`Lkp6ndDu2hAl<{ zA5wY%ifk|TO47;OOy_dE031QA>AwjbiyzM$Ww^6Tc=hrAZKa?@=z9|?o6}fDI5}3I znBo)8cMP{_`_AL(E37-cWBpg67L3%xhA+)r+cO*d0?FSNd)T;*Z3SGVz~}jTuC!}| zue~txi@hp@IG(C`qRkDH^vg4 zn1?DW*`*u%YO8ZAnYw+PoH%|}F_bsZP}blD3|7F2H)sqRXbPT-xNzwzJxu8VrRDN$i9 z685{&%JCq(%YU7bU(j(Uq~L#AtUZB_HE&DtQeP=l)o{-2oL6YE)+zp$KjX;9_i7r?A@Af;A^iCHCE1NRhS(JPnM(Qnd>~Zcpa0h zl}P&Rpm(?{0A&!fZ-l$M$#0A*w;p4iKzsQB+z^xQ+>Pl1^46l>N&BzWwClxrShehC z|NImT(0o0c#1CMKJx%gD;dN^ap9kJhiW4T-bmOBBaMe--)$8?`Y-wX2u6E%ht_qo+Rl&PaFH>= z-AlS8ZOpsk{R{ksFEOE~g9PUUP@G3}{+tTmsm0*o%}+2_@Jl=7ndYAld}y+u%mWzo zR$llWOoAalqUTC!r28(lSk+%Ul?%%&0AFL*uepY|nTw%$js@qysfWI$j3{j({{ci$ z+iWG&B@9wu$!-j}RvyU;<(=p(87b*;+e_Ys>oYsAYTu(S6rzyHrUR(5$Bx0;9-#0P z>+>2Yk5=3P&Rb52^cD=v1TRAP%NvWSF#dpjI0y2eja3kX0`KWu*WhSqGS5T#eA=Dk zpF?0AZJvScQ3vEF`S=Gv(u?=Ml^GB-o6@w$Ewy#$*;;g-<7AQ_6=;&;`=-yvpey^ONcae77L9X;op*R9ZR!xe7=RRtaB|cr1?-8S7TOn8ddF~m#O+g z-PI4&whWFvu}ZBIqvhEY<4e)<0h+3$-(=80& zQ@-C4YT>ZMwO9z+7)7ePRMxB4fB9eha1%3*@vMpe!lGI2?;@4T z_!`Vw#=y24EY2#QH~iqcYRanN)bnBWB;0cI>p|2;I$6-8SpBvV{B(inAaq9<&QwLT zB>fA6M);N_;Am*YHr-rg$kt<(cAntl|A#8$u?hvqcgMM_ZD`k_opf=0SN^u21|9hw zu}zjd0BhLy8U8p1oy!^#$vM*f2fmzIotG`muSe2zEsHIfftp(JDKsFiRIPMO)DK^v z?^N0s`U9C^NsxQ;+FdLYm%qUn<8GtE}QfeOxR<9H^m-=~GPG#s!kk z%()nEe?H;jA}H5OXcCyn_|JHy7jpRlXDStQUKFhHdw?7Rv9z>=XiG~YU*f>8%Hts@ z@=Tm2{OQIADZ1~g$VeD#iwn;yrp=J2(vi-=oCnlyE-lRh!&Tzd8LOogLrv9AG`%gH zp_1;`-&(;!61R4fBiIG#9q0!z994$E&$&y`yQUE9t3*u7?1;$Yx*%8+dRqRKk6(Mx z@@A_aZCpWO1+%)e>ia?<#>jbZ#ia7^Wy%c~ge86n#a)>QZZAwaQLB^Ge&-;DAVCh3v>OWV;w_E#vIbQ7twq(dDmyU+P~jAv(i??JFku9-`x8^NuY#B6f)r z9cV7%bzZMZ_WM`1=$VLy-aJ5xyQtwu&QosV0u{3iyk;`!E=+MSzO`) zLWM+QQLKs&y@w7%RS#WUMFlsxhTqeF#h^W+`)OKD6P)YqTTMR)XZCKG!d4M)C41(o z-eYAQJ{gNm0?C2FAfyV(csSVV+>l%T<#4fUG?uHq^VKN8d)lmxWnN_FkA1e zHDv8m9i`#OLNshR#k)wdJ-=IZJxfEmYL6(w@unRM+T2RPtEFLS9buoth5?EpM-nf@ z+qTdE51tC0a{2Hn?lV~u?Wl<>|GhP^yU;SOuiF!TPtPWk%qcq9`OS&8L?ezl)N(U#6+4c$;UUNn-sAj-K2Xf*@dC?jUe`wGu`>e{EMgOd`uq8=8qe5E4zUuC zzuN!-H^%*1#gbPxh1zX_Yd(uPJO=8IKN(6}G=AtDG)gHT zh`)~7CBoSM{T`S!u0w=>zGuK^@05>?2Cs23CygGa`_!F5lN-D4TVv?dp&EQ8p6&LA z!fhjP*m)_S3RyWig5)~0(gUtt(_rS02GJP?T*?U4Ia;7|wl6v(WN^nL1Y`FrzucDc*vveeS}S0aPtN&2i0=Hc{^ z2lDg7%F{U7Ct=Rr-BaUl91JKtL3T`JUz{yI=Bew$2kcUpOh{i6by!K6bXb}N zq7za~{k;w5HEsk35?M*g%`Ptp7E39#TF&!ijPuzWa_{OltQOASAS&i3ABzrG&kRdj z-XPa1i-Qh3r~-m}&;o+077oqKPWyKw@DFpJ4I`-68_ih`KEc*1MHNDm+lzT^@kdu% z*pVaY0Z7%jUZRzlkv&!Ss*<}$!khHP35oTzFF_Z#4!0}evOdh-9eDHe`sxaX*=-(( zq@HnP@Jk0LH~0JRHcY5dQ)bjjNHx%es}&cTyc+#&6S=BrL}Mittch6h4nnwehE2#F z1e_n!sU1rc3EN!;`@-n`cx{~8)U%_jP9Kk$W_{+yNNBXhEIE$EBqT{AGh^U30Vsto)Vze-A(Afo$ zVCUIHVM){1CL+94lC_R!d2I$1S;&NX%`wW(ZF@R%JQmdpD${}7GYeCq70U!gE^q$1 zN%30otgTy{ExZ+4+i|0mlPri*rhj`0WV|S-)yEnG;zy`hnNSd=8-*}1S_N^rG}CDQ zjZIngIXG-is0Hqsgjrgrs%9=khgs(%?Ln=QDY=mVX$eZUg2orVi^i9QNujrkjo&<~ z>g2d8yJ@$E#n#E;-3i46&kE~tz4#W??}2%ndjacT+n`59R%XdeTiIg;ex%OWQ)oZwK`nmX?EPG9e@ zZPrE>4TgTIyo^-?M!BYP5)Ki)7jIDt{nkx;Rnv>hr6>&&P(3#OHl{S;+MAB)fr@fs z%3a_|9L;{%OZXBY(7?w)kUb28bE90wF|tCkGCSoR_6+SOfvkUU=KW86t#vn{?qbmz zj>#CGNMGf?2W=rM`Zx)5t!g@pDJz^HL@sLE1W4G2gB=}azZ1QYoaYNHSDHa(=iK!p zZGJq0nNKsky%`yh0lf3MO!1icO8*8EW=I{%*xzL1-+19A9!8HYZ`HgD^wW}?LDj<~ zPZJARSx8* z%mVx>K=)e(HO6TT6#g32?>Z1G*Llj~m|J~Hikf(FfhY6fsIFO)vutJLatH=kn8#MT zlIlgdob7EC_>!dME~0t4wPM&2tpPNa(gp2|vo;vcGPV3g-!|9#aBl}}5tZ|U2cVP!{1xKaMD=@{6R8jZN;bt4*j#fE zj-vauP)b%PDNlPb`uJqDorT$i^~PKs#5L#)#a=m!x0gk7Es9%ngsiy6<}1VR;jz`% zar_-8X?WS;@U34nx+pS0^cuaDbH5|If-_l608y|LOo&%sY%pz!3jos3Ba${z%Ea&h zV(Pz3YqkSm`U0@GOH(=|J4h%YSx)m=3g1wpt`~5B$;-=lwkE0eZiHEQ){m(ns9v#R z&)(N!u7`mF5a!&+!e>{XZtfgS-sl7MxVu>}m{ho<;r*@pix=PJoyD#tkI#y`>fMKZ zJWAf}@WY0)IY4tzOMql;_7E1+=s~Hcr4O<9XuQfd6w=%p#KO3NU2efGRyRYg%F#f5 z5b5^TF{0gvugvW`<2JaXlM!Kyg!eNkh7Y=TiMeTME~MW{(71&zS?N ze%++5w=l2490(et z2u|_1*r&wN_oz)~=>B8(6#R|oQ5(7~364EBr3$!u30P5;)x%5)7~g`8xkkgA-NRHB zoCnYi^7RwDC4L`!ajwqP2S;$$`%S;O-QfwG)Z;WK z9EN4vgU>gXTflrFqyClrzy7VvS4r^BG%xySx|}IIDP{uptZn?$1{Ho-V7bbrbd>byk;kQ@5aWCUNi8 zq1`X@k<`l3r!Lk}8u89YwEf=Rb4G*eSg-r#+?6o;f%c%+5hIAFc=pcgX#t-_@Xy1= zUc7y;pfH}bUj^DukuQMAS5;SF$Mlo&;mOLCK>yYz0M!PO76El2S7h^pCU4{5U}8l> z1Lu9`=hbC3!vQitUMe`F^D|BYm9}}LmQ7F1%7P=^vf<2=&;k1_lN~+%)HSV+LE8y> z^)?91tvvp(q#xpnd?%}oP+H5a81d$4r3*d_LRBxS<&K9sU~lxj)XvZX7+{6U#Uv84 zGp$TIF<*FUxn(`HiST!b^Y3}~ zY>7f9oTH$YsbO7zn^f2^y|~*NcpvQxuNCX%_S*9U4~gAG-tP|uLGy$3DBqOLKUVC_$7f}yZ5bmA-&xgy&lqri zhbAADH)fL$9^AcY>M93v2b0+J1$gR-b8&Z>#(0Pu*EVYs zfnLdoZa84pcF(`dZe+%;ZMK^S{6jb7D9I+eU$2~g+&!_DjAaX%Sc>CnCfbtc zR3@K#L|wEUc3`OL8o2=vSIgHPRtZ11pnP#aRpmY2&%Ac~W@8J}i5SQ4jY{97E|y7Y z*|=ibR{u51xBtDsJ<^r$=e1MUs3$=;|97kbe>`E)q+sUFlGX=05)gFLEEPh=V+)#R z4AM+&-@C0kfRu;jO$0hiV`!H@oUWpWpg@G`nq{F&EtI*szypvfiw7$%Pys!u z>z4d-|3C6Vw8w54zQyLR`TYNdz;4Xzfz|J~-sm3B&Ak0cG4S!X_kzWxOTbn3YCW^c zi8AlKp0V36GSsB7>P{5hNtmk_3pDr#^gl2AZ>9YcqfCI(uhPSv#d0kNWwF^HW*&Jz zMbTqzm+w9Iwf^MDBoZyDc=iqrh2fv@=%@C2tIaVeuf?-(FY`2FlFhHDq~OXhMH#8R zj+ZxFxvH3gK>5P79g`sp+^>IPye7(Vsxgw#4!Kp#GINjyJf8S5EW5o zVma#c;CE|2U?f)pN6_J}Bo>-_AyikC{@w6BNDC!7V4pi6bpedt&jzgpx_BZD7!q zYf`1UjA1}3V|2TL3%!Go4m2br!Z0BOfR%bll*5IdZSkj#07?n0YpOUlOe`nzVpKLN zsS7foNb#ilQ0sBW{gF^ojvAYf5Xj|g(ELNN%8$c-ju0n@eqABQG&YDv1q>Lq@M@%Fb1=*jYjhU;gB2?Hxs68Z}k^y$+ zidepkK1ZC~JrSSelTnYUn?6ib*&02&wm1E324`Q*_x-B#g`eHv7L;!0cNK{E%Cxa> zv@T03#lRNA>oH3|keqGP7C6rb3{c*$6Q+*R`lLg@40fb8#x;pmY4b!t-3dLk11p4- zcWaA^FewhKoL8tkbCnBDot<2nmcje!c!TYvOj~&-c*!2IoFxiv-Q;c+kilch(?7B7 zz$mq^+KhBtpNaoekb8VQQ#&!)U+{4+uiE}1{)T3YLg<`9R_@P_b@r?Ushz3JwqhNO z7up|5E@E{|qZD6LPVSUJZdCT_9x`A;TqD{t%8hvJaJbeEMAc<8_B2z6v?8&tX}vw& zQ#$F8vSpetwI+z@^G#qESD{aGvQrDquPFG049@x1tuBbUynJC!s*T7oDKG)o)DBQ8wXy|LuKA zxM71fd#DO3&uk|Q5t?7gFB)ry(`37ROCQAb+;@XxcnEy6#%rKmlHlBHNMz`17iL=UFvqfr&)OUJZqjbCJK+AC)Nwzp9I9<#sm^AWLP^k_nTo-11wv%dbdM#tz_8Lu8 z+4jF#^S^Ar)Lj$>n|sm#tHt zn%4Le7+(~A)kZe(rO1CGv#2VHO=K#EWKs+vF<_PRn51~t+FgygfkMb%3rs}C2Llj8 zS%ZlfO&90?!`NE}#no`x!riz8cPF@82(BTxySoP(cb5=?y99T4cN!-U+}(q_``6F= z&diT7a;bB!$h)#4|V(xACDPcWZ#BX-ws z50p64ncB!|+@oV;$&FHM;=r?d{<^FwP0jFelO~g>SsNLE=jgktavv|f>xUorMcjTL z?&t|U+tvHW3E)dH&Sa+Rta_|&s~W&Y#&&R3#ryQwVJK4el#_fTUs2`nwf5-TMXOZ1 z4UjeB0Vr04<~|(|jQDs3k7`j7antR`U>XAy`RkyqAK6=+h$LH+ zfKB@xc;n?X;C6YuUch|eo+M1{UXUBXB+?EZR9-+m9-UlvXj zSa|NFGn_ClY+kL@xuNe(QtCt2jhJ%=B6D40+PY6l)5**e%Vp3$gOg`Z?9>XtIN6|q z7WDqo{l!N|{%bkF01YqSeM2-35E48_h=7--9}h}+Z7q15#L6-EtG$$0t$H_(Z`;B8RMI- zm%a-&dN0m5#%NKOrH)wQbI(8vwnU!eH}T|Lrna_N!<%$Itg4iY5!9PHFKgt7w{^J= zbFtyc0OL&;!TRYpk6?krV@iXCpPzTiyco(N7xKS*0>R8*Qj?EIdAaWyQwmQHEji}P zT1qj_G9B*6w8E{Ooc;NrHdlnfXdVEi<6@}tamIQ^3$BrhPa)W9f* z`$}M*p$~(#`wJC_|A!0{clW9gwx0EKAjbSZy7b~)SQkY+$hxfBG{zmR>e&IZJv)Vv zyQh033Do0O`D9B00mH4(2Fkur+l6JklP!DSjrseiM&B8`ru3>T%kwsf4l;*v|GMkX zwz&XWTtQ>6l~)(p-b}Nd&lKs~9Z6GDXY$Q?4R_a_ocHgCoKYo1?mF-L*LS_ zh(rF8cSln-u=I_4!Gy}|^GU7!O9Zo@MP?<*GYkLDHsfi6eRf}rHG_duj63F>fExAx zN+2QgU#c4L;RlH-gZja@qk8{aOvY@ayg=5{oAXDoHHt*mh*H7Rl5o!LN=VMvt$*th zLv4agcF#SFUQm}nD|G{1cYD=~WjKsrFADLNil^|<`Mwe+36>wg)`IOpiU+BYZ^2An z`IVebxtV)d7?8dNF-Rkei=bU5v0bx6rAg>VVuV<+ffE%w+b zz!zl&o^>~{Ht*)IoKJyVDhiBwLIdJZLog0dczGO&g|S8Kra;_sWjmOgVU(Pa`6zGQ z*-05jsZcMd)5Bv$9afeaZ||9a7fDeFI9Y5Bx~a7hIjNbc?3j~MG3ApObo2OUt`zBnp$hu&rBvX%Ys(*m z=A~hjP@?g`6acn$YIUL8!P^HkeyJ;ESyXYe4 zkFsy9hhh7AT~2%}-AR5m1Z!6Ip;gZ9qLBPcQXJY5>$~F694>H7rnvXES9(ZYl4OR$ zyDbDyhY+(aWcw+_Dg1brTw3$s%Sy^2x%CmH(sGoIVam(H^jXQP8dt>C-Qi11w1}wq zc#PNrlRjhKYoFT;Vqk)@0gFFQP9IYcxhllxxyfI8+1sRN&G_D%<5o(FRCaHyxoqMD zSU5oIiJJw_iHfnt# z?>Va}8McY&h^uEkkpXL2pfv~SE=Hv3-Bh*?_9)C!0BU;_c;{sA5fh6<>n}x9Dldzd zO}D0E&iiIS%Ix<1g)?t1OJV)WH`2-{S+4NiBYg9|n3wEt-mk|F2|kwHAgzRY%Wwc% zb!m;_7G^t;j~P>uxK?5Hy6a)b!22X5W39fpze?2nqOV1e)T3p>O)#tGyo1d|mtWG> z0vWtcJ`zw#C&0lf38?#vA>sItZW7)H*A)cE)sNGnc4?p| zY?gixm2ve;^+)>AV@pieW;{pxnJZ3{5lxLCYpSUa4ae0<*gJ6z?HOUi?G69~FL@;! z2+9=PVVnLdO8|9sw2@Y$-eUK*1(D=AQhp0*fycGd3U1#SwXdjK0Kgfv=gb!6{&hbI zU^K(VSmE9Y_mW;FeREx&KLeB80GCB{Wr1Y0x!9hMHam9)t5Fl8OSREq4K~)(TmlI- zk_Rb;$4*Vf@Z{J$)n2w?%pEO%aP>)=7fkcT0ZC<#ThnuaEs8-Odj2yDKpV0xOV3tV z?whax{nnX=E-sQX3~t-=!N$T3E2w>(o<&2&6QZH{OWD<62acAsjL)#aLKA z+)XdSzNLHOOgE#R|Dc^nDB$=nn%Z)&OizaOGw$J?*`sm)SR~p}Ndpp;`V7c=1y10R zob4F7T$#Tgj%1blX3rsW4d5U{fTw3@T@5^Ie`5+5(MY5L+MjzdnRXYTfExS(ISIKI zC_A#Y0+-eOcMGdZ*4Jqfpb>VknkLWfI1uAZ?9vJ4)nj8v`w243CCf9!M-@|3Mw-73 zh{qadsFzj3dj;z&SXySqz*^L!_0B_Eim^9O;EJ zxrhn!Y=+)k=~qJ94*N=cgz70Q+Yj$i?cis=+Gi-4s9FuF1L6oJkp~BCoigEg8RA+B z)*sAzlc5rX>NzZ*@!jDA$>DFkacREb?8yU+vVc-ge1pBmC9=p^)qzhqKd2ne!Rv{F z(aZa)5ucg}+Rue}Y}Xphzdo{Q7O{0(Fw@m90R9>@l&sP~ZO?~sxPJULbd`O#G~Et= zQfvFmyf|^i&<}m#D$<+YjC9J$_s2)!E)?|%L!Zu#WcSq542aX#WF}_g`-|CsC|Ley zQ9bLbq1Ck>V&VaRZ$?h*8`{*laDJ=YSxYKUke!9{&nDw-^)>K+PSlIm(&wF>r zC~df8grn|SFw_qHZTc-?^**vIB6HPQ5>kD2QnQdVcUvyBr5 zVc4ec|L?kf;+20`X(=u|&(-3q-*Qk~F&}p6*%g}AYf~sSG5#l?hlOJ=w&N6tBi%cv z8&k5`_6z$JvSH00D-%&jHq7r2Q3142pAv!Eh&dROln%8}V0QTL)C*v9fPcq%lY$=H zeO?}SsvQ5oFaw~QA`zHl?=YI?3Q&fPP0L{(hyjY_s>A68q!HJkt3^K#bih->)*kn+%K#!yYmJWvpk&tpi(Q zK~z=C-wsDiywn?f!29V)dEl$|&*rNY_xs#4ZnK#p&c*&@zE%EtE#33jQ@-!AXCLXC zbF=0G!m-izY|2J>xe@S}q}Rd;X4pw*Apt8G3t7%OR;F>MOYoe$KZ!0mV`b!_WprHU zrJibsz2(zZe`?d=kt>p$sjAM<8SSs=k+MQlz}Ag2k|Q`dU!< z58T9bZKEU*UCA-PQm6jcGem#};07d!gsve}RqOZ=M8J_!>y@?>6-zG^6g&1F&k3`e2 ztjgIrYB}ZVlDu?NiXOjgnlQ9WI8h>EbfHvKqN>~+o?GJDw}dBThh_saB|Gh}o~~-k z^g;G^I~(73Np7Bu=3)_AbviPiNUJdd7UD8XH3Y|N*Qh#;wu97qM`O}DN)}Z}2mlH< z{3dhBEM&9cVJD6&b9^!m)U1je&r?z7*Ke1w8NOA$!!c9s{ah_)`V&D+`$?>pM?;(0 z{I?3=G_l@2*;!2w*U@e2u10M#vG&VXzBYN`q5N)OeLt1C>X7But@N&Dw6 zqhG;ZB63yM`HjL(`9F^#XZ2>k=24eSHefWynRbVW|TRRw`Xcb3@{J}$Mw~Hs?mW4Y-j;m z4pmJ9ZUDbhwfctOZ=KutE%oVMPrrs;qEBjZkGNCL)~51tHDa$UCSwBpa%6INQx)!| zOT13SdmPUp1`3U2Ep635vh3RE-1S8LAgLBjUP}u zFh(O`yTY*Cqbe=}2I#3NCq>clfSmwge&zFHAkyqbqRrJ2oQSX*(FB;;RZuC-s9tE> zEmx+6C}bcw6Og87@Pl21evfOa%CSE?GHTG6d+x>IaEk7fKe7JI7Z6t<9Ket}&5xeo z#f4j7FIqZNSiJMO`rZy+$LFKX03cPpUIs*izUg6^j&O0Z9H#3yI6?#NwYE%NV!}pB zm-$uPV82#ZaZ3rWE8Rw)$R6B)WJfCY@y-Q6bq2*#Ae7m;J9M+x)K_Yup*+}Py_g_` zXT}#Kdkb8y!5Qe!OdLAJyiWLYu;C;!$N=~f)kZdRvV=(CDA;@nP zD6k?Sd^Z(?%_<72`n*d(tEk4L8-TMvQ@y9RgGHx*mh%F7&b#^~Bl7s7F#rtNp&hV2 zx=H;!P1`653{!@sYgP^ar7V1ApHFshPvx+Kz9XQ(|7{kvF}-QH(qk4iz}sk<<>{Q< z`mQ;jMcNmOPDq9M=noHg%?+n4-!-!HHzD$Dp~|Vz8xCBn^91ULrS(qUl?W1uzNZZO zB+o`RvPYxurOcFA&V;FXSif`d9^*0Rtpg`zjn1aY35_?h_we!BaZG+G+|A>pw(nwQ z-`4&aJ-n8{rcd6-@UtmVdY0>lhnAWuWBz}UtWCAXfU`r0m+R_w{qn5m)qU!~dxK1a z-KoUCc&}|?MJ%R5wACx(7LEFG%c%Wytz*oq&QVrPv6+777&Ko1XOrQZB%kfxrSH83 zlg^t(7HmAd^|r?HnjceHYncqG69S0jOUBPq8<`CCJxA7Do<7iro_-w14C#FKar*66 z9b>=xuc@c;{3MRO3;Ye7u5NKZ6Y}EXdy11rR(uGLqctxMk%9eR9cdW?xIAk;Qrdjr zI93w-VrqO(K9RU1hWCJZdvC2TXjaG&hqcF09~P7YgaXRKKZgm`dG1I&Pw&51Gkc%$ z!b^$2(hk!?S;I&mB@;jyRrG@#OgpjfDX1jvGz-B^ruTL>eWwoZMhs{Y^MLe3KI#Uh zstVX8H4M!&U07noAF~k_TgW+-s3Hu;qpj29!e>?Bka9g7%R0JO6my=D73qlEv zy}DDoAuH6bV$`>lY1 zz?r|rQ={l(pnk5#=s3Bvc|5u+oec=|TJU{ZMEz?Jrv~-1E zNzSMU;Xh)6$<>pO^4uhl0aUl~r)uu7keO6HQygJIfKp&wUFOklkJN2Q=-*k3o~SdO z9MH(kzFyG_LC9l6r9Ve%kVgMKS5$OsGH!;8WWMm@og^siq#CR0*CUhbfYZKyy9*n` z#NN?#d8M+By?aXNQ2~22%CtyRSfHq;{rTYXz!cdY#_N=!Tf>lW^Wcx=qA#eHkStC~ zrvzJs8tfZ=#2n^y1P03i#6$$xNNCah1KQ$##1eivLuMiEyHxH6&$j;J@QV4=96;(5D;Z>*VI?dc1P)+YWNGyCC61p%S4*IwY+!a*uF8dUA-Pv; zwHN?9r+?*pfKWwrKH&ZS(2gDi8w9H$hWwMv9tK_B3MNC*HD zSw1BG9o`OWq26>VHvWod3*CwX!+HyRqr^JjHoAAL+xG*L2G6CK93yqlx3yLWGp|u~ zJ*Gb2tsh%lm_lWJG@i~qLrJE7%@p<-JnK3aKju^LV%#1=+3)Hb@3`Reo@o4Z`obGE zb-x;9H|73Y6*;nF>978GlU-(&$PY$lqMAR({%nYeL+>LhF+wX~ zUnI!TR1~!h(lp2c+Ty&e6MX{43S^pm_Z8FvmMh)K!>-U-a*rXV)Gr~SEQbX_9SLISJCff@T#Q6X@W|&3@CQ?XINpp@yBTlg-tB+}Fw1sk^PI&&r z9ewsEGsDbrQR?dIKoC?{QvPsq-CE~W_ke{=3~o>vFeKIr^awWz?N($RjG)tJPlP7yy&X!NEa$|zEi9ob z#qv*ny2qxlow1X=+#9fZIA0m%c7T#SQEjLjL3-3vNoBgRl!>T5T3s7BmK? z*jsPa`5FzCO6Qj~vz+#rh!_+_V~|jyZta-Ulal*ugqz^Tag_h6-N0mF7``$t^stjl z^|UIePxV+W{%U~=HYfT#CTd<4b%NKR-dR-3!cV8z%$yo!8eVLQG_oRUcjl2;J{|>C z!az-CNU!Jh_q*cx_TTG!>($TmWAsUAyTimY0tw8ojT+ap1I__dt|JRGQ^Y3CbbW^P zNfOqL)k=#);gD-lnJ%-Mvs@$#_;)>X6WYxF{h!B%=Gg7~UUb|hjj!U?B*oT+)|=u2 zR}BewcXhSLWl(95)@(dQ#1QmImbJfJpAu9c;`c4XUDMCvHvG zf0Q+rw^EG2F~w0>%wi`|wp)E*;AwB;DS2bJGo_O#;{=uymh-W4F5Lzm<=2%OZY^%P zU=K?UP76bn7HK#}`XeC{hp@*C;a4}W46svHdJ?Zhd*VO7stJCEcX`$9iZj{W$iaVX z@(GL+Y{XjnT$g)wzjK-dMd^O_XUV>M7!m!)X@Ik?lgMF ze+;9}fQ6}e+BluWo)pugXodEaWFAFv&su|P1Qq+}Ntfb-BwdAb`q@Z0%SYNy^B%Q|LbKH%K zF0&NJ<&Wcv6>)Oavfa*_?Ty>!J1vKg2AKAnOENPa>0DidgpYxx(|B;cto*G#!$4US z;s)Ao-*my}Sq5DVR<eg5J6i@lWyXCQ&W6RvjFhN)^W57qx&GaAO%{qZ_@a zB#YHS1t@KR`B@CZQ-?pmnN@=Jp&;NLhW3)YBQH_BhR`SvH<4o0M8F8|1}mZbQ00h` zPLhRklnK=cAAXS-?&)^{Ce2)X&(~?7bI{*JxHYa(3z?t%P;z0%6Is{{@$@$5GCUqq zM!Ts`GHS4<^UKLKAn#{=qTOllyTn>9M?FdrgTh-V%`XMCo!{Rf^x zUYhg~<_05CG68&EK6r6edg9x<-t2`oHlCIUvHX4MgDw6PluP892hfJ)DEaUd>wWd?H#0m?DR3))D|H|PJoA{cw%jeCG zY~^XE&OUj-&>mLi$(cd+5J`*^iZW+vVXb*)p_I+f4Cwx&1LjN|J;z)0w1jSm;oChj8?EWBIpRW2+-kx<0c<$uT;4{xG-;+aIe4|z2 z8{71S5XYp2Y?pUBv!By1LGy*>hHKV(#g1p6bgrsphR2U-U1&%Y%(={u)h@INVPg9K zbSwYcV<3v$kp`Cf#S4y`GU5k;hi6d2)$SkQ8~j#;O9Ua2grP1k&^kbDU}PlR1LLFn zXpuZbRP_=hh=zYSH=;%+3S!3|zX59pM6TA!v{p9}Qhz1ycfth2 zlI9FnhOdHY!oDSsOewQE~Cr#O(}vwRpJ(UV}nt|AjZveMqHkyV!tPm*MCyA=y<;i?yi54OhOp~sdp zRmiCd>ZXzYta22mqUZuLTP;63BYWgSi2e*8jlfr(VP@|No#||}8 zjqi10zfz!~k_#~aYq;oPM3YSqu0(6-<&v&i09~4JAY!wFjx5_yE%^>XIUyhPj@NGG zr_{nIT;@JY(x< z*}sb<)%o(dWFIvyD7E((Iny-#I=+2CVsW3$f5KB=iQ$LX15r+6h+T$g9jIvWnmF z?_T!noTVZnn+i+A{rUbUGjQ|huRXM<;?~yw!Dix>q`Mo7SxYqb1!XbRkN<%AranLj zdN77{>y4^yXvSCaKj+`Uur9*?crdGJU){rd&lS#|$u@wm?(+WC)z2Qc`SZX?pTej3 z^Xo7>-PZ)xmHHTAbK#Xw3rG9Ysp~H@TFQfO}FZE%XWlg!O z|F?cVVHB#Gi%n%7&4KFt*z>`Cq+45vBv%S$vbV|;5^DgNQsW8c%wdA1v@eoSbRpKe z>bKDp5`11Z9`ry?5#AsWg%azLsi2wrSvJrU<|7h$#BWy4OE{&|V=}o-8GhggZHuG; zTO1MZ%MqlMnC+CEc-4fRT0gRueNK*I;)TnS27hqt4 z$xuN4cD}X63zoh;H$4WgvV65uHL_nLjVX<8OO7mIjfXo29#cO7(xq3WQE@7y@YsUc z1}u%&00Q`Y0dsLM&F@#7e$~gfjw>YxcHSzt7^uX={X|&aDkoS0Bs(>JbFpTJKey~n zcaIEJ-4aKsxDcX{>FoJrI-Ck4(KuGd;d z1=H4~$xsO2h(~>0q05?F8yidd^8Ajg-3zuYD8K#S;GLFJ-cx7MozlXS_QkT&~_!VK9s?_a(GU^Co+qEk11{ zT0hus@p$AwT@gGY61Fp>9~hoO%GyL(+L}BnI9*PyrG7q48cgjxYip6Wp|2%m;m1hx z4PwLz|0k8?|2z*Q|FHOt4-!YXT%w59D_xxnzN~ZZs_(CA8?)TR0@! zcB$T0PCscb30L>JLY&L^FH}0WkR7w@lzZL(6VfHvR0J=+g;FYdLWp|^#b=&ZXr1m; zve_db=s&d`eo*-I<(+lL&rP7asA~VYEZsJkg=xVv*dIptqIzDCmoHgtyqJ!@pPnfmv#vKD6$No#Bpkv8s#yG$SzE@^@99y7V}F;m3I3^IYbUQP@k zr`36X`PRN=y+}SgJk6Nd6@rmfd*qPg=l| zffy?GMl{$TBO+jl2lR*%g(wfO*kmG3D4MsSYHxyuwW~MH2hlIrkSUh9zQjxH$MXol zjuqw_H_9@27%4v9@D(@sZB$C{!~&3FE{&(C*`nwx9{nSU0bwC?E4|FY&Ds_gpz_pm=cO+f(r3A*3Z_ zoqEvlN~+{LFwZn%&n{*(UsJSy@2DupU#deOVX$udo;;Z!SiGHO&wm18c%37h~Ec(~vt zORqNXqI+N8&aUzMYySHVKfzR>)VF}cU%ZwM&+G2zt@|(I_Zi-oXP(*5&*Cvr2zl6o zJZHePF5M@o+|Dfwwcc^$ZQGT}Qm>!-QBDUVD$#2<)!q zPw(RUw6+Lmh0oL@tv5GOZmHMxEsKg>$$%F$C!ayPiVXrjMbsZ7o2)+oB923VOER>V zXz8s(O-+r+krlJPs!9cC={BTgLPY0!qfbNrSyoNW`hdnkPUL%0@FW|qdT5nl75j)S zcE3To=QS+CkZGZf%)1Rx2O^e!A$b0S=EGGESh1GV8tOtehtIh;fTou%s}SckQz=`Lq@uKbwjGI>9;@i(66cA6iLWL`9}TjAo| zzuh8xZNIxDdy9YF9ZEk9qwG-2P*EZOZ~wAD<2kzXao#&DJKZ3I|=FgQ3DoQ z7W(W0P4#!AdwqjS@y$E|{;M5%ao9%=R-2RZSa+$Aq{?X(eP%^x4+H2;m&KnGP-Ki{ zFQMe*EeDzLZhZKqckRtw7#ssRc$CDZg|1!iTnr-&YD-Fn0zQVQrMOF;^l;q(sPf+c<#QGyCVw^M<$tb! zC4RWVJ$Y4*xD|!H)HH8Pu0s=`3%2@>N9iG@b?me>6ys4FV?uYT zBsnSEYcX4Y9!gtHx!Cu{vu;gkIyuy_$s;s$y6v+&Bx`g-^?M&dUgA`rKT`0|68{4f1>hd_fOD4(0(^ol=Rs+mu4Wpx ztJmX&e?!uPW`qLc!l%^o$HSTc#HeDJ-C_CLt7yD>VsZMUB-8)710_msd9lMlU`>q^ zL2&s_;HKeL_(A#E!N2jg@qz;+BOUnvL*ak>7zE`w&dkQtgMr#DJ4DUngM^{;FvjPE z>gZd1>`~nt=gx%h*(?^Pr{oyKWrr7xIgrpG_h*nA3_^?)K!Chx@Ni_FHT?$+Jon6j z%*R3IWhA6dFe8fF-?DqZ)uY8Eu1m~GtN;O}&;ex^!Zh%o#j2e%$t}11 z)$s9Gw96F&O*CL7@$!y zMUb@Qjd2c+B{P?$!xS8}P1+T1ze{`TE~b>C$AnZc&|wX&lwNMzSmVaBaU!(!x6y4p zuWWI6dL^RxMfd6P3(-8NU`#N=QC=#wYAQ^AKI>CGEb?=Szg$n|;cD#$;*@(VWPwI# zwmK8Bk4@6Ab_6l3#yVxTwJ||^orzsE1I`razb&7Z?k#unVrfZD-@U1p(>Ioclfy^D zZk6RqSnESc>Z0B#-n$B7o=?0&Np{ipu@?rqCO4LH=tsoXd~PVqShF;3vA8xtiH^vB zKI}%h&zxnE^1B?w_Ql?OzDFAjTqq7ymFQNg!R=Mp*-MV;qU8T-AfoexOcaRzc$s2D z+>&Ifhn2q|0eTpT^>*9!`~Ha}WoV%;{aAy#z8c0#>oa?FlR9MUfDe6jM8_XUx$}@G zU$D5pV4omt;JgTbGu-P(Sbu0he`(cT_&PUTH0~PCMtzEs9H*~TZCi>X@TltlihTFG zI6Ie5v9>z@t)e#Ua)L*}$V`o)G67N={|geUo=6v&ERgF!)f;wqBpK&h0@?l4ezY;i zFcPF4U2?e8|Ei?__3QsGtpD-RgBAA7l?~JPOq}N`8iw*5mM$JhKx?(*_MJL4hdHaj z+=Pn-14@RJQu*|*2zh^EiS?b#e?uYDOYEb1c|~sR;1SU=jG1+i{+6hFvpCA>$j--_ zY%no7Q3rBe6%G@^Pv}j``61(>cok1R#!+2Z<09CF3c8o$qK?ueL>eZH5AZMz`B(r- zVAtkf0P^KB9__U|jP;gdU0c~;U_Nt?F~Ecve*4Oi3Q)`ejUDI@zykgZVs1yZbkb`l zz5}BE@z(k#YDEBsru*(L4VD*>=U@RA(QOF6gr!3zR^Y;f(aLYYarQpvY?ialL;r-8 z>G!N4NyQ`|=EbRKRI@fFTFawF*;EmxL1AnJm^oI+)L6mtSt2`Nqkl9wg{r~X?DmLq z%rI>bWIEyoIS5n%$*su(D4#DE4?aS)bz3Ny{DXso#NUpNj;Y%gAe=q^bS_5KVqG_Q0|qf>X9Jn+Ya*P2C6+JhmijE{_~%LPaT&<-=VIJ9+7;9p{pn@#lc?PHI1JR_zpy0 z6RUWN5fE89)7Q9X0oZ@YB{iB?${cJThi0vU-z_U z0iUOP!KsJm?)p$?kT=r4D(gL;z?U;C0mn|~jawTvkOQdkFJW%u)F+1fc~+k-*}FfV zvhVmFu%6>w^?0%!!%q<-nWU1q{^>XW3niVxF0!9{!vJcjm|2+#2{}Ju& zjdkhq+Fn=FJpxP-=riY`h6O`q>G8wPuL~=bW&PE2bBo8&UU}A>lxD~lgs?A}JKvj=GXpTITC+1#JnL+MTQ7i#$ zC^RUWEo02J2fe^(D4OzBS@R2pu+zoxQ;*3Cb&{lS!m*gh`w~)^iixP7q)$95m4&=u zJ5(|7a7 z(gagju)?i)fIR$g83wwo5q}XNJ47+SYZj*u3%be}8jQR1=cC+GpB0qJKwqhtH$l$8 z<06sjWPC00k*j@7&{RN+&s3^&e#b|Qo0aQ30x?=|V3}}0$#>FqHwP9G+sJOf1KjCd zhv*NoawwR?dr>39voJ?Jr0IyQrr*d7`xj*$5_Kfkxc6c9mJ0?zjl{rp;e!kkF~_TT zJD09=$=}<~buWG@ceEME_yi&XZaadX4#saMlH_Chsd5DxJWGTl;iE%{Z+71L{hFI< z(yxXk{ij*HI6c14ddvz2UJ_S@s@w-GPEVV>zP?_eE?GtqTtw{4V=l1l#M;dFNCgJ% z;j~qo-LrRV$f!xWk>z%#YN`CdDcBr~JMRBzog|qah}voox!LB*!^vrjH*R?0DE<>< zU&T!ji+`TeGehS);Twd$7!aoyL-myAon(03w%(fJX#aD;#<;T1ipW#i!?EzRqV>nl zyFc$>s!7I>(vlw9YPyumZFG*KO94yoH_7UfIVj5Rmx1cVVpTfO0>i8He{i>dVacJH z5$rzoPbD(=yYwA9>v!EgqhM(N`OB84>cqrS{n!6@L3WcLeSlNgM5+o{vZ1jV}qmBz3c*Sr%6oH_HRYl6x6h%l%>Aew*&j(*D+*eH}J08!qbpmnfYR1H3YEup~<7 z=%((PF-BPyfqY3pJ@X)AV^JeCV@SpBKQF@@ zVf!&6kmJ-~WUb>TyqN}y1q4_<)ds*$_*`MO(knU1uAmwrwIOdp3~MYb%P*@LD5$8* zKShcUe^~>Qc&p)cF93)z`&oZW81p+!e4oOC7<+GXQ(i-ns(^E2yk}F)!EJz?Nubqe zk1!C_z?(eb#*R;5{M&;V0ZB17ksx`qkmGNk!Ig@{cSu~DkdYXGUPMl1mQX8_>yp=N zXqU&l2F+(owF!x=cf*7&-uAM~!8dDrVqj%AMtGMEx2U)n+4#?O(C-?8RP5mfIW8zv zDBl6Hkk#uf&i?2{){h0P7hL50uK~NUsc^i;Rgj(`5UwFc2>j#2#w=g(ZH?@!q@l`S z+mW8ZUmf7LQSVeI@{L8mWf8#u7qA0x1esL&G5`r5Z{;vI^|J&rXcL~f$0@)bwc9*P zuG4N1@!d@EI~hsjpC<~a(o3z6)y?!bl8)UE)=>DS!UL|3+5KF+Fa$kPNs{`DCp#J; zP6RL+vGvdjCGUa99$ct3E08eU!#BQ%f_xWMo;fsAG}oFIP4!zG)2=35x;AZ6#pAU; zrsE$!Bm(ERy1;^ACI@6ytb-p`NRKkVsUeaQ5fH8as5n#USUb|=CPZFMHoArI)-!8o zRAbDd_Kpl2!-eKSj2xN;JfqzKWV}ucky%voqZ^bbl^q~!;V4wyWf8K&_-+3Ku;wd? zZEiL}L_j!6CW+t1$4Egg=W}y8fD^Psy?i(%b9Yy75O*(jaeQxHz>Is(S-6<^u6{CR zb+ol;6`3Yk%Khxt@U1rm3;&RzNcg{%Co0%8KiCJmRPb={!h{bu?SN(Dwk1{9^-##$ z&M(?3EPT(4Cl2kz|C*!xS6%zB?r*ab8?v&``hpm_I^(0K=G6~xulLdjJ{4d44+d})HEo# z4D?XfgjcF9YLX#O?O7s__ysd@Be5Vwb4H-Bal4=P>jfjVgjffA6{+qpn4(bb3ka)@PLI5OV zvN1Dc%Hq8V%+XP`#f!=l5I0AsB5d)o_ zh(VFLZne~2QD*5O0s}@=T<6ThE69iPKkbG1S7laQSUgL!`AmpH>Ttj^Cp|1GwcLsu zUUacqXJ=-GX;jS@p(jgh%Te8-oKSUH)b@Qc`e?e z02`-{=?q8~%&h%z*beFl4>raEvqC!9W9A*nZgYsTNNQI=#f93WESv7mLVzr$1fL%CI^0}TQzEQ~JdgELDhp?iba`v|NfG!tCH{Yg=0 zKpVvEFh9Tit+JB2?VfJ8>F(1TzD;D{<)tGL0YPrA0hjAk5rTNUyTKmQH$>CqXSEhh z@wF-J6)V;DUQ_2+0D|U0n=Q!372nC+Q`})MJV4fyU;W!8{@+l=Wksl~BL6-&2+wd0 z^llC1=HhDO>WL^=E(xv`@y@1m?E8ENt2@wZ=IsMh#;gy+yMaRXeB`LCa^g|voQf~}&@FF2T zUF9Mi?!g7k02NuLa&Q3Y)k9tA++AJe$yYO6-CVWp4YSE0G@bmHXzW~2djH4A7=U93 zkV-t(QkRX8bT%O9As29fgpc|_8}ua|iedpaL%cc=h(Kl5*gJ=0wBtigWh9l;@wnuP zR*nLIKfpDnoR72?DL0u!Es3pJN}6MD;9kcQBjZP)UD^JOUWHf%UlqfQR{TK z1-Gn#qZcX>0SrSv+y!_yH_lf_^DM22-C*4RG<}-1w_jS3V@LX+GmK!K zhXclqCD{Bp=7cVvEhy&!R~UzekD{3M9UdNkC&QsjV5<~0I^-z`UST8(nH+xy8UY>b zW_1vbf`+zI(Q&(1=pAarP8PvO8x6f6=PNIqKu44l{rMD5NX#D0*|G0PdfSNPlrMm5 zq^FtvgFcr4**vG`N#bIbn^mzyB*IFB$F1WLc*F9C70!D$6by2VEMbtjHnna2>oYHW zRnt$_qy;Td7gIaJ6NSw63_0|>rY&eY)L`Eo{cJg&Ajlr#h~HrJ2l`;(E#lF1ecSaz z=IQg~pl2256<&{@d?GH&|dw@Us1$7ze&)_SvlkFd*`6EprE&Mb1=b6BC%zb}QAYFjW z^*nrkG0FV*w)6jN5dQTSE)0;U*rrbmf++~FAoIbnOLu-^NXuev^PNiTlc=tM^k~1W zUTTRsBy*r_ZJm?HqsQ+$`z;(i?2IbGGK#!3yBpcDx(6Hk3rra(hS~~S?H?e?-oPH5tSz!L6H+>=a2$0_kl!}2zC^5S49BDFNDw~o)4y(`{w0xSLjaO zCQe_BoA-TvRLM@k5$2xMB5F4k2w%Soeym{5ItKhi*e9t*4$X&&m!@E$`E%E1;_FlN zg8xL26G81Ya$_^T#TmZHFTC=>{1DoFGIR>L&|ibMB5PW$HRJ@CH7txgWC@`9{ufpMAC%j(3$hlK2;TY$hg7 zZ10`UE4Ae6=8A?FF|_kJ8wH`TqRBT6^Oyt3klvMTw-7s3EwKVp_R|^~W~He{hoDO{ zl>He8t`11{vyn>C*x_QFXRQSqX2r{(nJJ(sC+wNNYe0B;oE+5{*=0%)U}!I2CDa|0 zl%yft*}DkUw?Hwn5>mYul!}g3jy0mWegROFHbnVy-%tr7TLr`bqGrG@q7uj-g$+i< zuumIn(_Fwkps2gSVgH1yyqCvT22+7CHkI$X6k)EaiQD4+6DeUT5G4>K=#TPUCcj)Y z#l+0LX1X(Vw*PZKNhfgJk0m&f!}Kocf8xhA4(*`R#D9KlStFi)uMV5Tb~FFk>sDH` zh`Ci@sTun94g22Ea_jo#QehCFboVh!S)W?Jy5h%2sDu5as6sg3Ot@7a)aJaqRAjHI zrQNnn!>zGK-ytI<)(2htcVa2kypzA7_itn6(ClZ5pEP0$?3hlMMeWWzJcqp@A@32p&y1;<8w;->?^M4D-C=Xuc|mYi z1_dKLWklPV>nJ!=mHgvLM8i2bphRjYwC{kb!&i;{A#)b6F0Hqi7!z?(GVNHkfbv<( zH?8L@k@8YN>GofIO}uSlYmSlZUMTvrL#zx~Uf=$nWA_}iD!*|GgA1aUBan_I35P+oUBP_2A5cKD>JlAfgRy-&|JvaWRbN@7!H-kD|(_TA>N&2=am&a z#u~~o`9sWi$O^Tb2i@uIkbSk{USohxHz6H3Uv?Fq}F9# z+MoC5Z@*DN`qItVAm5d_^ElTioJoKVf^rpzuRWrvX|diA2i4ZqX*mA|DEg!S_??3^ z0$5-|sroUq+gO@Vj0Q(KM{euGzX-gP547iOKWmq<47&(e3&tqd2ROAINV&DcvV`3F zdzsw=?D1%U;gXW-HDlejtH;8B#m$fJP|hv!*_{o~{K%y%z}$pL18UeTr*NTI>_?(2 z?`(UTT^^2LB(Wp6q8jmAp)FaBqu4uN;_igYtkZeE)7xZ%7-AyUvfrJRB}GN(opU7H z`}myUxbo`xx!{9R^0G<3-JopRzYI18tb(nra@n%8oLx0u8>qv^XErg$ zXs(S4|)nV zsz?k1P4+hCBmKrAW*2P^jZ4md;fMB%_3OJF2Zh$bZc|lmxwCPUb4%enPq=XrBgcDa zpFkr*=Zm@-qnc3l<-X1*nmR3Vr{k`)?Z$%B@-qTWlvRPg5^(DwL5a7CL}5<6#p04Uz=lg<_t}|W_dlh z*Rt8IK$fp#QvhG&T-0TNU(G18*H+%wmzZilzfgOzuoWV|2+sV;ZEA2d zw5ba~Bl@np?X|Z(GEDoc6zyWB`MM6|()X1vHxos7VMZe}==+%#rLUw1TPZ64ix{RD zFx%foX#5`qBv*i>q@AQLb*(=9RY#MuiOm8{4;-EA6{jt3REb(w&ScH!VDj5pNp zaOP1WY>-CsKefL?7DN(Re~G7s1Hev*=IWsSNI}a21*gN#zK~Usz=(U5yHwZ$44F9* z6+PKs#1}CDDN$p9rapY|xdA|6ZP=@#mH`R6-VitL^*h?Tr#rXg!tyRut}6xt#(OXD zQJjCpMKZlK;G;|vByy5pyl%7=pt#|}IZe2RBeprk6nluau&y~FCVNoli}!`;YOO{+ zp>Pb`Rv4NWa=PJVnt3D`hCM43pa2kKyK)R3jnZEJ`Ia8Zsz9NHziJNn-P2mQQTV&i4QcLAVTYYZ z&8KD}(?1{21>t>uM_2S2J>vE_SK;SF7&Zl25XzxxGF-)o_U#qbqCrH}-^~0w+Nw{{ zfSGi?jP&ffXp%_OvLUFnQie=4cc$<>X5QRBPCe(Oe-I2yKQ>K1SHa%U(9oT|CENVF z@hTCFH;RE(n7?o^u(Hn*?kO+d2Gk7txb`XKPe)<7qPOQe)#to`!;^g%>x5d+_}51@ zEjzo6-o(9i(7TL@Ff%vU3lSmi{WS(N!s5h)1FtN!+WhqSiAA`Fj6$%+evgfMZ|s$?9Nw7cRo?hjVZIcs(NIA&;BH+b>C9qDq*uFD49 zf=>)Y85)7NHa?vr0^kcjQbrosXwaasDTf;_;N(OwoUZIWosV zjB)d*a;+csRsTaoAfkfQG5roPA>5(=H6eB*n*W||xjY60C$@QyYL~}BXJ(~D;0MeZ zi?%fe_k>qBQI5U`-E(K{jjH{I-Ewt}ErPab94{BPhw1o*noKXsd|DjjIX`F#44@cC zQV9oiQhBdQQCL^ioG^f#TdQI~c%n)DyGJ09jS`QSj~cXbp)M%V$|3KmIW&hR@43DG2R@cS)jWN%wDtFETo z;H|~}$2mUz{-wMfH`_~78;3ekt;VzWWjpLV>pvM+(sOEN7tls)9QXP@k4Cl2d>JZD z01x}v2~C;29Q7Flsn=1rWt2)-;b@aM*!c9#3GhjDFEz9#r(G)X;pr5nX_QeMmghCh z*;34Smj1Lk@K?M;l2d8-&_gI(lLC$(W5v;nRE!8ng-qKHp3{4g=?abAHsQiYtnB{( zYhC-VkE?aa*DR#ooHB_oQrnPYe!uag`*-Ow{+~PN;Juuljpq@mm zT;F%Gyq_-)zA&`-^%~4{e~yl6E^7$s<2M1FzxQf>u73IAg&<@P_yhaQFJzx7wC2TM zUUB}DJa4SFQE}cb273gMIiu`)ZL|@@PPL<9Z2;r~%D}*C%iL^dr9H?fJ$>UX@Jxq+ zP3p7P*|527p}1C4(~NdVR}J9fvA1yy7vlsWzigH@hIjP3(vWmUu|_#vwdjxd&giI5CrAOf;|X4lTW&An zm8ps6b$qPykinsy6XbZo*#lAPdXnADX6I22VS-T zc+U+K{Q=1_pD)eY0nx}=LOQI1FYl3FfI7}1-%3-|xkMR4$f^oWGorf{V2IsE&R_FL z>WAo4e8x}X{77?*tW*gSVUtU!W)n);Lw&UXx?DE8EER9E-~)3i3wwAT8yT@o*9 ziI*eD;pIF`o_M&ANGG7H$)^P%#;mn0S#c zNG1NVSIUQ9n&DF`6A(yhq(P5I6K3V5RGyhE1+}!lrKQ$d_1#CDdAe-M$$BX>e6HFk z?l%;{?Kt zhSs$Lg9v5N_$_qYK4e_=3|rY-n~pIM&#^TX?2fRAQSeMuSOoK;p+lE~D zQt!Rj%}V2TSpm9^pp!!*#QD=5R*d~pLclKkZNW}!yr?}@q~2C|B1uJW`)oHpJEW7J zkNsX1y5tiZ>MtKRXl9<%@;I%HCWk9(J{s9}q+lGr^Wmy;Mw-H}Lt&CV0*v}CyQyTs zJwsPh@VpmXVUfEUM^!dEoc(?5v!E13TY3S+plM;6#Qp&GGgf8L%_44q%OoHq)^+sw z3;v+28~3PK#T;MPQq<1a(68r$Zw|wTZKfB!fSIxowRyhzTvwu~Z_M9oKaQ3W@DIE&?i*uHC zG}d(p*CsReN%;&Vu{#N(B9*mrb>ua0%f(J&X3q?GS0P2=Z>9r0@6|$7yF59m3mzx` zFShvKk6rh9T_8+3M4}h{=3XTdoz2KHx_m#D-XifEthrAU#0c#vH$@u2_P5%iwMW}@ zOP$qm;B%pIZJM#q=OX+LO`{cCw4pDXeJ`D&WEI>CDh=zd%chguGLTW-rmSWnsQ;?I!QrYXJ4>H!{!z20YFrvzZn!kgl~RC zGeUp)VPK<(qkii#qc=JTIzE%zHG)v`vfyXZ{5>(;m4Ar=GytvedSa^k%Ld$$#uu_z zuy=qOKsKG%zMWRj8=isMXMb`vrAp~xuGBb^6}{!;IHv$Q{|#b%b}#9zC5Tbuq}Y|q z(KLjyri#q0%X0pjAcr~H{Y^=Z*=@PM$zLmfJ&0$hc$_yA4psh%0R~%)Rb_^dVVjrD zl4hVb7QjA1dz9Qzel}(MYOfa$a!wcd#dxfHpa6Eq&C_JgsG2o>>ve8Fekb^;;M5Rf zU2hcwk@#9*w1~?TrF^Mha9On4_BGa(#`HN~^pnay2H-CEURp+`ARg=bVc+P3-D5zn z4$uHeptS?n*6K~)tYbgwd>LbZ!BE^L*=c+oGF<_6jl@K(TlF9~)7~SiP$XMFIO5Nr zUQmb&U_dbkITD#z!1~4dn~NV^3Y8Ypwcvn|M+TR`-{PHP^_ITFVr%GCKLDV5tka)f z766|uy|wK9&FFia-9fvM)oUq)b7n)4MyPB^8=2AQ{XmZKuCP{25Hn) zO`OL&uJ@(MbN{h%oqR&Osr>cNWb{N##&&)Qq`|7`!P>`6-(~q;MUu-kE8QaS>)C#(A;T66WZ6{ zb9i7~T_h}ay{qkD^N};lh`RoEs<%<^`OQ761YGz22rpm;cQ#pv@avX))GklY8Ty0esgU+wpZ}Zb<({byd@!#XI4ofWCw9U2_n? z+u;jv-$tLw#*+&szCS-%ZBoFQJ+Bn+Q(p_Kve9QIC&SG`L}}pLocFekJ&kT@Wco@zQXVF{oViYmi#^}P#}}6_i{5%}Rcsdr^*?Eq z&AA(EbH*q6vuiPq$Il|OI`|@F8SO8{B}~moNbKbaKCr;^9W_8ZUr|LIarVa8_uq}p zIQ0LZUeE~T4{(Ltcix=^ zQJru!_22n>?ZMTH#{c90;=c#!ny=Ox!dyW3nk-_-5KV6CcNV-nN>2kZla5rrG*3xr(v&Gu(@oB}G*Y?}>5F4c-I zp7wmS_{eSw8i0l)`z|d(5QVc|1CXzMmmt5fsY&}KhYORnrRAbn_w1lPIW4&}eb-yU zd#?hwpN#q_)an9x?b_P&=JBEpSZXL78t1 zzNO*}^YXQGI(26HaW>4(j_uCMRcY|1%O;XB1&k`X#z=i6x>Z5Tdhl|4-Jd;7rC;ey zmjNJN`o^IWqhD-rU18hecphJw*23K@>5{uXc9~Z}BQu@pt3Rs9`mZDy=5%zVP&*lN z{AWCi+Bj$?&duw?O}&`xWm9pOv(Ze9KwYrTvN*1(a=k{*+X-Tw(zS{tQEu6vYzQhp z^1aN;;qcd&JXC|h{-`M?pxZ=k;leO#HA+GuXYkS)Kjv$pPC=)@GmJo>@%`fb_j*i|seP*> zqzUt*0%m@$M$_V3WYjY8ue7Q!iykFgKRfk%lAa>3LeMRTb9JtG#&i)aowvF|M{ONW zd+6hY{Cnk}0%CvL$8Z;!OOfg?MlN?1*XPuPM5uWGNV99CMt`CA?Y%IFw0#cY1_0Psb+ zu;UfC_MeA+H?#(P+RJOR&_Bcc?m6$ViXOI|U6Uui*3P#~cNX?-IVQ_X%oS9=|5RT( zq2Lu|P7xo+qT_&jjK0UAnMH4p67vD?>-vh!jeS4Hwd9&i&adN=u99i}XK5fP;KSat!hKZq_!gZgMrai^;1!JI|4K7x!Sl8(sJ!`dfY(1+GG z^SV&R>gv>ixE~%kpBOCWp~F2Z9K%=v@UdzS;!E z^b5c5yCCdQGOaJxW0J!izpYe6F&uaJ9n54o*$#9)7_-MmLUXDR$-{5HXxW^6GD-F? z3gHG7xRmWeVl~CaVVT1?{zKzD4!^pZre38KdZURg4pD>tmb65EC(r-N<+)yHUKHkW zWc_4rC&NkNWO&tylBTn;=B*EboVxu0#8a@V$QkG$9bp=-U$9$uNgTCvHq6Mj}Zxt=v!*{;-JoFl^ z=(nUaW$xH6Jt+q##$FGKSQpxlLVw-`27C&t6OG`%V)+U>s%k~@%3L+5JMP2EAe|Y` zaB|S`kJN>(zoMWq6|Y~6^KV}j#v8uRA7gjU3&BI8!;%v7w&-W@Y%A|*8$AisNp#yv zsSR^^v*+S2w|SPo6EgqX|C-=Xe9q)L%Q~6ifa1&a<1n4Y9-2SQNyV_COndI~)qWh@ z|7(|z#Ejj`(k87Hx?w(CZ?a@@$g*C2)>66QLu%K6(y&$~$=3{AtN{CYoynz{R3ld- z(u|t$b8r2TSslf!yVLXD6PMZ+BMTc9diqht{l2*c4P>QlX2QqxHi~12WXWh2S^b~} zQcSt<%;_E9(%REkR$rc!l>d37`Y#{XQXBRX;uQ{gd)h5;U57k!x4_*6?MOninOZxv+q zNfHSl+l8}-gNY#-6=fTjVtMukfwAolD1mO@$fEZUQRe37*4hj zbvkFliBb?~R16Q9*QePi*cBq}D`s(Feh!WljI&{kdUT0F`8jC`WO*{_40W_cnI6iN zS?(je#ieKFd`{f(Uf}%-DFM}^IpbQ#Unwgq4;Jjk_)62i@I1$Rb4lTW-j{k^TguK7$E0rZEm5l>Ll%U!ocB zRWh0AGZBrI=<3-Ut*aDoSEL*owBc(Es)`qxJhKAyR!r02vtWG9(YElgR5hX5CRL{+L z$|_gN9!cf*I7AMGcX=kB*?K$HOlKeCwH%W~vD#Iu^fb77>XPJ6odLYr@F_q=vrm}h zTRM$@2#G=^$%)1c1xQi2dL%wUui5H7LrXxAkQt4SSZSy)%C%TO{jD`lqZ!3@y_)e^ z&v!A~AJCov_*W0(7k0GZc4-+C&h2TB%6(0#)SzSo!tQ8#GkP|YujsUMr>eFEj1@gr zv=g~#2{+HM3kgIx5m<)$F?N$B6->T7iG~nLDUimu0-*7tux|)b>-CuG|2|@1X#Y1I z3m-?&vG+U{S0e)#k`D-hMH70=)}X@Y4`Y74{YG~(_es;xE0}c&mC&RGp9qZQ`k}Mw zb_m1%yqj}{KA9hn7ur}_jH2WtH;^*FpcTFofy$?e6Ekh+oSNYUCFby3?zpN_g*rW# z5%}I&J^A|XR6X(C&q#(-*)d04ORt{!4P5A+`wev;Hb6}X{2T0swJRY#x6zFddal~S zaolU{n32)p3>u($Qdb8?d0oYja7JAVN46jzO>^EJxzc>ULx7L$h5I2geH5gJG9sG@ zPN`pMb$f^Fy>NJ1pV~-1I?aVJjMkL+EckfZ^;t$**>5Z*XM1nMon+k9e`=NrVUE_} z4>i{`O)m-`zQ+2UF7GHd!V=QE7{abPy0BNMtDm0cDUqeEo@eDKb}`R~EP;KKkp%8` zAAOmsrRyJWWG}vG=fF;s9zTJT?I<&cJ9=BLG6Gpj7R4K5I*^aE(zHKYEJv^yy zJV8G^V%Wgs$?j96CShc7SYHy-XE}A|a?Ne}t5-Vja1e{*LqNy{3*&R=*Hb+l?HT}r zONVsHTWyngyt}>9=Y<0lRxqIDGW@GtVeU0#s}~+C{JituAETk}xL0r%b01ax6$Xpv zo~<8HW1B<7>wiNCE`Kg~Jdtgb^GGW`_3OYai|!gYml|yl zW%7c5TeE97)hZUg1V-@LOwI)?ILrME+Y-~vSxNvLpe>@BHXpXVS*Vv@Lat9taw<}TU zY&Mnw|8gq59tQtkw-fG@wH8ACQ0(D5y|!j?KN<+LyPDHyw7^`WWmEeJF)=J19L7v@ zG2r=<9UpZrcu!WH31CZQh&GSAL*F`V zV4&J>2&48Rk45vl#3IWg$D`qW>(+R4U(D&1@Iou1150mu_Y$egXUX39&dGNP*4%?=zh@>&lMQQ2Cjgi#599f+e6+40FEd<6W} zSI_Uj0F12Zj3Et}iT2;qtq@$d7u4o(f1r-t&-WAes11;|Bim@47#F{}Olwr9K@`v@ zkZ*d8m{S0%)VXMmQU0=88I(T8aF3alR3Z|1r-ZHZA8hp>5PrIDL8Q{Z{nJ)skb!}3 zi>)WlK+ss98NHgh8A!BxZc|JhSb6}N5G>PbQHGW4{)&~TR5rF&f(-G0w5LeWC4b%9 z926b105}S#K;{=|K9Vd4IHZJU`5rohoU2?xg^YQ7WEWCA%JpR&ksu4JJ=RM1N~0$W zMT(i10PTag0O5kFQ9D$f#Q)P{w~^t+RKla=iggTF?kIPaIka|ACV&s3 z+?P7R-+%?h=0~Rz>R>-5YgvjoiDwOP+BR5xJsxc*7ekT-7c=bUo~y@W5(jKq;9@*K ztlrZcg9DG`dAMuaWv`q$j(e|A<%rEc{^#gFQTTs6v-^|3p=ICc<++I9YVW2f%Hd6x zXr&VsX^S0>wo%is>DAh_{?a3uZN>7lT3HIGVI5EBa~psCq*DPnr=j!eR(^%-qX^=4 z=*mRGqZ5VNNZ{DG9kAYU{sxb=GTiNttj1_W)z0J*Wnn--f$3IRWHjttHzkEncw z?0BxsK*zUxk zDb6gbQpPZLh?5>vUZTKORxod0Q9kH8Rc&}Tt8L#JaLB^5I&0Ms+c5W*OU)9*gY{mM z%{HS`)HI2abMYpoCu8@u&E{YKIq!BbI_`d?ItO*LXphwYJt7(Iyliz3w}m77cnPR z%NTi1x;0y?%Wr$a#`_nRUZo527}c8Rl_-6xawvs! zSMv*-C~5z(Z#qm!v3Y8hHEAt#T63w>nXJ$H{{{Q>XdT*UCum&nr4mmmsXW<96*W%3 z3cgpFm`e4`_}9OR!1@)Ti4l>Nkkf}N?cjg!Bu?IK;YPVceu)1(hBb1_tv1>%u)l|zw`O&$4h?W{Z2gLxw6>>j{ zASVF62aN}1Vv^zL>^KwN@(!x7zO8;e>;n7*4(_j|G~%#8VMLNfmQ@c7!$A65o$>xV zxY3D+`2{|`@0I`D2fGKCkc5FS{P^shf#^T-adjWKoW|#zUrx^bym1L_-!cJ}B*+Ds z87O&0=)0+Yi$1Z5Yu_qUvo`7x)Zo0kMW)>a=(^BE>a{=F^QQ?nix*^3lN(mkWD{de zD`)J9yxQ&S$n&hmqA=YMWG;_Blojb$otWUU2pouB_BuW~I{HdltC;;ESo7RNm#!LD zH3AM(Q!v)lWJXodiucu-`7QJ)m4Ssa-u%^C*~5fp6PYL(ib+&a2mbFePD%@jhcRO zY>KZ=IC&{!ulGP>H(qzhMYV!`ZaL5+7^f5~%`dx0@Du+yT4N@G&wq$q zOwpPQj0QfV^tCzrA!-xH$~zmOq{A+NiR5C39WOZfjsTTEe8(tIap1J#2;Kn`loFH^5JAvQ!<46gq!?I{2T-jXJ zpu%hDx2(+J1@VXnI*B9e7XvDHR8=LooYlHq4@ zyZM!X!KV$Hz}Xd}qsFpRB)Js>&0xQRD(FUuL_MM^efa7yP}EG~p)L^ml$3M#*|)Y} z1Q%ww(k`u4J z&yH@g*IjwbXe7bPR6A4Dm|o#2dGTJ%hisO2zTmbkh1**_6WVyY{qfN6Yu8l|$+X}!ghbma~) zd+kpD70c9%#(E7KclntWGtgC66#8fys#8X|o8!8i(Y(ZZF5I^4I9bzfj4(dK=a>2w zPtLbTixG;_=U>DSr4h1noP?~JNo@|ukV=IET+CVwq=`)dvP&YTn3nmjHT`wuzz6m9 zigs0t@QzMOhYXji{w7mUB94bc%d8$kxh@!!FV;jJgL=2Lpi@_pM81iAEmpH)0*`Dx z%8S3=+cw%ywCR4RJ^bTc<^Y%QH!QR{$jWRlX5kgSOR*h`J^W+s!;+r$pLdu4$FHX{ zIX8tSVtsEv=V~eIR!H|_?EOdS=21+25>Lf1nWj+=O#S;M^J>fDSpCH=ViO>za-<1s|~e|ExSx5++zxWyGTF>EyCxG9Dt z8C{YNk^?Zi*u&IuCEoyu??H*W6!31arvbR;B!`ZP*|(ZC&J*D%?%PXAbo==Yb)q+e zCh2xY_WOKH6V_wB;8_Zi?cT5XzXl`nWI@qhIh#I1c0b~ux*UhTOyeXN+)&ciS~p#X z9=s$E4}b~t7$%A_jwjlsi-PIitp_r{b{-lpL~arZ3V?)CC3oMPr8EvuT-7M+3pLW* zMK@01NhW%o+B-Q3` zqpZdujt8r!%DV;w55259wSOH~!Y;X*{$O9L+!z&ZA) z6BaqXG0Dp{k1Jj&H22?N5KAf6I5)#QGJhP=Zx!=fV!>R4haqlCaFh?q?&0qB{Ce8* z(PHo|v#W_HjD!KLRBZ=TRUFt{2@)rl`h2Hl-0b78vjt)D{P-A64DAN0{_jo$ML;W3 z855eTw@JR$XM9(Oe)b-ZYh3#lup>heqZSWeUq0-1l@l7_v~$V4h5eP4>QMsN9tV?y z0nL@QeEUirvGea@0=?U}ehWQ&F_VEUSFPkmlR)wJ5sT+SGzpB_(na#U6f?a-cpSsgE zKfL&HhVspSlpQI+-vT*SNMdD2$N}5nqag}TNaxdRpsf@8*M(WL(-Ur(9PHQ;XJuG< zabj@yxS{h##@DfUr9;eZBmkzAQ#bznho#kr@^tx3@6dsraD&>{UYd1YEtoBkJlJRpEd$`&3cef^L zxM@w!JH^IlR?94>%&p|sh={%Aa+L#awQ71a=sq*X>5LvEr+kWCD2zrJWj>od($G|= z78#cP1lbbO>GKPIu>?PDB2nCY3sNL}A;iT zH`Yc`4%(CQcBE9^Ma#n=Dv?Qhloh#TtSF&=Lz@(<07>#xMW!9GiFhTTwj0HW(9wQc z7OA%Q`Ww6?x+H$z_0mxeCfKND_$-YU)3FRJdBL!d#Dyo9E87ic-m$YEP-V4K@Mvp5 z&Ge)3cIm|hhxlQ&cHPmK6B}d-67#a-H;G9Zk;j7!V|hWA_>XzW#V!$pVXkduFU#WM zaWEJyi{BPE#pTiw_*>NV)klg)H#Z#qr>opi6$gkq;+J+TdhQjurr}-176S%Ov18Er zQ#wK(7V7x<1TA{&VzmlLd{zC_*IOtqd;ClQ#Z{B>-bRKJBcX^E)nC!m`Gc=ID-Aji z?Nx`;rf(qBal~ zM9WQNVDFEv0qAP5_SWrjnen5$@BK{1`v|fufGk=u`cH-+NgeV#fuqg3qQ>|Ak$kk- z;}PECk(0dVec~R6PE1C2wE3>e^s;z1VL28VFJ>sZ_-6lzW&DyCJ1AfqE3_9S_ep%+ zRuwmrdPECvy{_wt=Lu7pi|6+d5td9h*@=FCgA@t7MT#7MQ&Ti@CRAA$daos^97Yx= zAn`*o3F);dEpRBkz19AuJTrF^zQ6m1`FFi zU*ow90Tqo+0#y8c(6><+->W9e2mDzjIJR|@FkgaLs*=OlSCdKperzGn6|14ytMU?) zSKx`us>a<8bFjzsIklbQog;vbljB7$FE8WDz7iIR;QOPxmvb9`LYSYhuy85-%UNYf2Nv8KS!cUH;CDa|g9Z&VWIWluG5k*`o8qfjF#aM1-cKP= z-q=ml;^gin8V>cF=r`&|7vYM&qZ>aM1LC&94e_z%t7d`C{y*PRU;}@@kY2UvX&Q$1 zqyrb!y;X{<%4&Nfg^zD0#qVoqZrd-thIV$h3Qca(L05N*8JWKt;Oq-58AH4QA#3&8 zIPS$Gkc0P&y^r+dVBvdwdmI|UUdB?K$ld^6x?7jZsI%_tTchJMJ6ZX5>Z~<#+n1;x z=MQ;R?IZ2d)O8f5f}Um?R4f?=&$;wcHAlpP)b@T#c>^LUInB6IrF=Ch$?L+Ne*0x@ zGv3ieI6-zr78nNQ9^v7x8{)7Hx%U(j-MGsd)tWD{5$*#9ylVoL89lTkORoCRU)Dvg z!7fNiorrh`i=5jLD-iM1QLNY^KJg;{sqg>4{1${xX3(WuggwHfUa>~DQWdGsr0SFsHk{qbZ zr9MstZL!hM@R>Gx@O)kgcy4+g*%8ie`~eOa>bSWzyK0Gtlh=HB>q=5)IeMW<>C|^W zeRW+LL>)Byhae_%Y!>>p&%}4DMoT0hKZ;R7jC5FIrM0WK&dlSyg`n<)POBpALp*iq z6wZ&!FQ3+R)2!UZxFU8n1HCLp*cL|mT-snuL{R&KnyCWDBgiCqcM8mM54cs{HNaj* zAnJ8F4Xz0A9~!a*AB|*SD}nSZ%*6; zuxvo)`so6{vPPjFD`&{@8uVrKvu0TyzIy*8zdwogrx}MVfBukEh?UVMY_@A`sM)-y zCGz`hmOX^#a2RdSn4e)dnTRb}W#>63)ZUNfB1uIZkpcwThV-A&SV_Z}G`!S=YF^3LdZZ;@7Y zU|}jN;=QJUGPm@_!aX65`Trb?DEVE>FXUEA43;psc~7voUcHIN=tc}VQ@70ASZH7F zhx319MWSdmk^hao%6k(&^;Ge!BoToB(U+5(YKv=pg#+%6>IK>Nirsxlw%3Y-vNgeX zFXN$uf*v&|CLAwjpU9Cg`8e_c&)u8?(L+ecgv}W} z%sL!Ccvp<&y&Qn#C>ast-la>Ar@_uXG3J0VWg4Kj=sbE8PeG<8U$L%-0~Vr5(hX{# zz~=gnKhzZ-Hfbplb%Fg@Q0reRtRMOQG4%A0(NXN;*(S=oyGph=(wqIrVyZWlCGq@; z`~m`$#i-?|dvp>LuPt`?m_HhFe@1UbxjNre*4NL7Zf ziIu}U!ge5>DSRY4;eLPc8o+UY@{}J>>1B2lUgG0~0cH+0gZv^SZE0_{N7&NN3L%z9 zZy)XmRYgryB_3n4L_EjFvc(v=T&IXhNS3La6g_U8kRS3wi$fh=`4czRcKY??JBwa2 zuF!77C%YBCuA-DLf0a|eH5vn|@$0|DxpP0+@Ps%Z9o#>(0ngY@cH!b98 zH8I8VBN-Z^TCOZp=_+=W%l4hGGBwhxom-;hK|*H25UtLA39x|sK9o%yP)^c2ee8i z&U;}%kO0fk_2v)fRqu1Jf#Z2Wf7VCH<~5l`6!~4ctKb0XC~=d_J*hw}GF{-^pTK_c zi$?^pRr;Ue(WPVTvk@#(A%54v^pBSIA6Ivc{WjCLhbYQR%f@?m_?hUBzXQ@+Qq1bXKJMh}ejf7ad>{^n}b7kL)hxV*& zb)7B7&hhNKBdeoxI%SVQfj5~|fkwEd7i>w0^i`p=6^a{fsZIK`OlIk`=VdKC zF5kd@8{Xq?mefEsjfh1KZD{ynjeD9Ef_QEokB+~1{D&{*UpBtff(3}#r9Iy4y0OTC8YLB1tD^lbQ2!6)-n%p%|ym71_{{jyx@x0qR=q1IWEmI9A_(7iLlCfdUQ+Rb99wcM+q01?QFUMCP_SC2w*GIn>OF+-)VKg>L}>I#PnVUhQpltX%fwLTBw4eyFSrf##`H9B1_a{oH0Sm$vAs*ND>Nv*2 zltGxwE`Y&bxqBln{>MF;5V>HWaP z!5z%Q+O4Q$@rw)Uh2WBhB7{NoF&>EUgUBg#SoC@>j(@?R`XcGww~mF3Ee>i7$?Bl6 znw)P6$yy;7vbTZNWr4Id3bs|3W&79!ddAHp20P#r8BUGZ zCC~1UKf*XUv2j~g5=t|1qT;x}WASKJv^F=ret&YxIAR`)_P-=bueN;iLNv#U=p!p< z6|y^@=G^3*`7)KmRU(+WVG|sGbMsRJ^J?;3vAYoY7n*cxs!dPZr}b;fm}GQv=-#Qj zS-g7l_0h4_i`Kk5CErU%{nIRxanE}h;_q)+12rS@oW;Xh+uioS&YZcR`lM>;x(}@U zZWGNp_4Le#iN%)4;e5RHG&j~bQvBkS&sXB_MmyyZp2+uO%QnHjabI5{W{x+EW_&vr zV&Nn96FErV|0bG~dM=(lzkgYm^pLKtn@mEO?kpCt{pY!;Yk=lk8xFkX_!n*_$@6Nq zs2uU{|9y-4$MfKMcgalA;x+Y=VYR+{UH9ITq_ko;4}5eleqT>zH>xkckpHsd;dyX# z&inpvS|E3DB8?;``1D~u@Si|vKRGk1PJ|Fx3Lyl>&H**>J0+zV)lXM-+6P|kIzjd< zn>4d;G9SCHB^)KLLh*D#T{ZrqPLIiQydpD7-8-a)PR zc|`m=mp$9(WMnR8UXnI7v;!{+4vf8D8W<9hmQ*kL(9CMs2*okNVaGp=UZ0#akq0Mc zuCj6_2wal3aI?oJ7Id3!eca)$H8e9*q^3iY%l45Z-;Kkv0^0&p8Llkb<21Zs6s-osu{;_k*r7iWQT(F+v zSoUN{zsfHoOguLZ1+br53vh5zWt8fwLHByn(hk2}FE60ABW>XMDJT)!MTMg3(_#wu zsL%#Cj7(I{*64!D42@O&|IFKHk`Hd9ius_qrZAP&)7MgSdXeLc9pjhN(7xRV#?r$M zX!@^JQ|+HsQ-6hO6_LjS+#(Ysf4X>WLcN27^5u2h-_2~2J%&*4fpN>Q=mBj(xhMkK zDa$j`5}O7!L5#X^w-9-WW6Z$|wQ87kpODLs9Dz8bz_WVHFa7bzF|1vbL5-U15Lsl8 z{1>@}02yzWl@)6%)J@7CLq|j`LTT`yLsK)6(R4vTd)00Sf=B6}>r z58r-7NDC2^;NlfI305)A_%BHp$555Gc-vsq%YLi&mHpzlNayA-_CF4|tp}L!oBa2^ z{O`j2k+7jq)q5QlRu(aOuEnIGFC@D_C4|hL4=cCF_iZ&$NG&_gb!1(}8;<&6DdD&) ze|lP@znM<7Dduv}_Gr^Ul17FT`m&i@qN(JBlM^J3oJmU;lh0>#?vAa?=Xj4F zGj3{z!L{)QLk#l8p#l9IUkf^eNd7-`y;FFk;kWG@+ji0&+jhrJI<{@wwrv{~o83t& zR>!t&o~*U^+RynP+|)(YU473t-#Ono#&2+klP}-O$0z<3EK*83D`Da9v!R&%y2;w( z8aXBOqlYypd2N$dG*cGIZQ%e~3n`@cFH(dX1>&78ly{LIwEjp>JjG3|u+}Fc{j+m= zYUJ}qIDA&bOTG1`LVGahIBaZ)jmyXQ!j*j2riu)#Z>vFQ3@!TQH{G9qHdaLNnYdi$ zAB?Tda!KB%+@+EHSZ^9WH6$W_PMfOY<7CLY+_F`+o3&14T4Y}le3s_>W0um9ce!B; ziSTjoIhlT}?)RXkCbu`aV%6( zOm~b~31^FH=d7!$@A?L&-N&jx~3jE z({DyKb*s;c-%1iz`;m=0Kbq}_NjJTiemnDfb@*N0<7VTjNM1pDVqRP{Lig1xI47pM zB^NriJ-Ar?r?vQhwNT+y4vYbb?vm<01!mupX7JRvu4+2@8K=dE|DN$?M0L<`UN$V> z{SJxJD7*b{rv1jJ^0;*?pmK)Gdoo^}%qRj_O_sN|KnslfhIqyf4NCk#fb#dQh23=c zf^iLsZjz{vpbTJ*JBk&_u#E=r{tt|+5KQ~5&Ot>G8;}NcSKB0oVd`v!5-{cgBx7*> z`RP?OEowI*8Kz%IJAM@^km4i}ozK%>F!C-!GXv!ymX3Tu9yj5Hj0*}k=qqDm2>oeo z+~@RG-XJj4`J&$`EX*Lr0g0JE>i8A)&%sa0`;NW?cEi6HHHG{U2fV5Tb7m+QOH|Zp zz$1?dS8%VnAWDAwre>O@eJUcdm%`|U5)>|>pn%wSE@8L_bIez1o-?9`=I#>3dGv1( z0i?Flm%%qD%CHf96h;TuW|Zf126endhnN~nK;&2Pa>a-3ZjJ#dh7XeoBl0c9on@=5YiqXK*8%+ZGa`@2;Q}W9 zpXUB{ThE7_?*bBpvP50!0=2N_n~Gc84Mw5&Ljw9Bq$`WPH?SX6YyzmKiRPmjIMpus z)m1I=lO9Y2*9u4kU3uQ7;#_khf#(s0&D?>0aZ89x8+v1{svH*){rH`VNLuXFbgHVZ zr9!hg-%m@sWp!pjk&&r!HVg8X8XQ{>hnJj%!Dbu*Z&~D();FEKq&v9R3gV&C=2bcE zSpo|2Ae`S2UuJjtUKn$dZZ7b11xr+N75~b{S}EH&(~oa|?lVE%pPP0K-)Y9ow|NCl-3+Lt0 z+3oNF`+T=eud$=sXx;A~{*l=C-tR4uQtQLp&oZ+6(q2c+Biyo!#n<9$MSL29kGA0t zcJsSu>eV1$o7om~z5bTt&kd+x`$s}Pfv)TKLA3mh-B%LNnDq_d31o*UzTY0c+vUHb zi>+=Zv*755#V5e@nliEfy5BXr#CLz+pyDCvqn?T@!Y9GH_`4GmjtRESROYsw>*mxl z`#)~FfceFtZ-Lbi*y`gXs=fRqt&Z0#tgHs#-P-Qh_B z#d=ew@eEtsA(h*G(w$xCuMKyi7J-MG4`g;AYxyf@P@)JcM@zN9iCr7?zGGu+>);o0 zz@ll^7p<&gx5SVgJ5EQn!}S{XKz@CG8*s-noBjka{0%%%aPerr_FgkS_I45H$@zcF zTzs~_31+w8->fZ_Z|EoZEFvez&+k%p|KFA-j$hyFSFBMA&zNpN8S(z+P9g2%wBJ!R z7^y-fxbY(XGr%V_9VEu9utflAtDVebFT8pTM>ALf=tFfTg z0+m{+i+g(JuT`-5V=$x@Gle|ZNH7$#pH>Oif@_ySb)@ne@;}9nV4QhSXxG~IZ5Jrr zT#-CEApW6!dTSOo+*klR4jN-aC_#xOEz8OC8?_cLV<_@MnPjZj#kKm_G47dYb z^>j;Rn~^e09;G=+)~uC8Hr6h50P35+|M}KO4*(S(Kw&1%`g=mrCQ6vJ@vqt1Y1Qd1 z)aKp}C^C^pKX@LexBOujNL6Q5Ik2uw@@BIt{A|wWAjTMjsiXmNIQ}NMSRATDgIw{KfN*a-J zo;7DlEu3Kb{@PbGDAFcvf?~jJMMFEQA=4@uM5=nZ=5CKmVk6Xb_X=Ut1~(6*`+q8t*)fu>{2$j$p-DNned@z-@xvX>)la*;YWfq4TiW{NQ5L z@-At=HGlQ1yBWl0gPB=YlPvw^VqE`dl^`>v{#PZj*PL0<^|!EKdDyjoR!GVc_H&o< zi?Va>^VSXxu6PnC;hnnT+1mB(WK!*bu7lD+Y{zq8-?r-i7f>Cz#f?aY#*DD(5B<@` zus6W_u?(~pn>_Q6Y#QOc{%sE%nCR6v^EL#xH5rtVGux$eI7Ii&a1Z_WlsvqR7k-vI z`ND1NWd5}V5hE*hn7E$VKmBN6hsqW1gA@3@mlaA2Y~r>BYjgMX-y;h ze#qMtZYK$WcTLFVkUb4?lwUW1r;bW;=R)4z%^LMh_H1<4v?lVOJ?C zX$;ZpJwZHZ!g)c%^tpFS z>bELFde~?==2Z?4(wVwB2P0i-$k~XwP4gn))|~Vdm~#AWRBS#O>??kf&%wlkxk2`v zT-RSeZD1)7VvQ8<_*ErR#w~1@KRD6PytNA^XrV*ssI;nnm(ynt$HZ|B{G_L%_kEz`!)GB$y#I zuVZP{yp9$MsnsQQ79V<<$!cQOQ&g4ZOE+kw|C?1HNfkjZwUxnPf)kI~atqI4TB6gz2sWWaZq zHXfJzkVSIUu` zLzk9;&0q_+Bbhrt!5FN8IGWOKV*i?eL!-9yOk16Sy7YfXBYm|QAEW+57T zPzv(;v7?m9%4v-S7O^^e8yxp#uqB$Ddz*kT2s^lE3I_`@G42g9_QLY6k@h7$O+7LH zFYuW7c+(7CRgs1C-UdpNy6P_U9%wI3idOi~{loQzj9U3TZG-)Vdjz#K&Whq(*`1s* zw!&BeA_mt(0Y(~$yLe0367!41*u{bQnb^s6)8g2aRO|)1e0et_EHL_bOGfGnMuCi6+jABMU zE;~BRr`+xi16NYw?@c((r=t)1S`J)R4eeDsUyz#nT~8AJ^}#WR(;0|Gj>FzZ`wecqmLx+nG7NnwSUidjGeAOW)9;3F$7^Kg7Pz2j=TN)y+$qipfn$lB9O? z?OqQprz<%2#{GKB?-|72w>jhxyEkwMn_<^9Xm!;}MzLR=@@SHlHk^2Cw))o(!J?FE z-J{N8tDfqPen|;@1><`6+iCC^GG}uy=xn{!KdH<%!!jsU7Q))@kXoxUmf&DZH@W;R z!4H*UjcD?uTC43NTrUs?CXk@6r5(siel*RIe@+R?p1?^J<}sZXk&>#bGrCwqTR>1I zs>N-s$+LLIV7=y{zmeQr$i@O_2i9A*W(p7x(&K)KahhcQ1q+nd^+Xt8p=HAGo}#%)b9|&9T%p31azH3T}T4 zWIK}9<52gXf4I*ew5DB)4piXzO5EtC_SUmJi7ewp54$2wJYr=>nywY>Nc-B5Qz7_U z7o79L3MMg*o(9jXm-RG91}Bi*itfFf8sJ-O|5;Q~QoX?!M9cma`2+UGe3dju&}RW^UeD}cx$p4M%?@FGw=Tt)cKA83jEzGZy81aorlM!?^Sh?A77e zR#3Eyz;IbL3QM4<0lu)&3&hX?%0iiOAg^gOO~}5(GP!Abr@pATC_o+#1*=eIj|tQj z>Kr{5&mnh8WQXdCHpVnpmgUER+46P;I4oPPh-2RKU9QGEQgNSBKdH^FsXJ;{GGYM9*A!m-jyAaqGHzP&F*YqnjDj)?ggauP^L>sa!#g;SzB8R zTluyK{N}lP)luwhN zer7t-E<})(sQNeTTek1bGdTltsU8Yc4=nWuv$B0#FafZnkl&iy478d)OjlW>4~_O~ zjHP5s5d|8!vWh1Zug3Iy8pSLqEIGHgD`{j%2$`_+tZH$0=tts#i7VHrgDM>zrk@D# z2I2*g-@#C{92(m;XTYO}zNFA+Peg@r|AvRgNHkBAnUgdfr-v{sYpj`Q{Zg{%piSSP zpenwn;#I-LTw9H#Mwo6{a?S2TYkqBcVImi20=P|%FGly+UuM9lC6Ea(ylM`(OoD|( zN5RVp8n0)uCMi)Ka5_2LpG$39-8ETK>wnCb(a!ZiIyL2~aD=hj#z*2>)@)Na&gYxO z^k3R!$&bkwA?IdCd;1fJOPSa6W|DOTCseNRv^6 z;@uirdt>E#pD2EhUn6e)_5M0|!+~EkD15+w9=qdzp1QLgrKLFvcQLJ?DYiZbo75y@ z_P?Xdcn<%9_IIvExtd zI|(T+P?R$5TIGH@4H{EIdr_l;A^i38ol~Nr8>!|GzXeIQfw6fhAkb$|+8Y{l%6(!h zTcoHPcIAsueKj8!$FmIcz%vJW6^Vq21L^A?s=F8BwwhLHQ75|U)W~D(WLWEa?U{`< zk}w$$a>w1Ltd$dMROpm{D6abxb8xNzyJ=~-p*43hN6=_h?$ca!Els zM4z7COCmFW`0$)>n4%GN>apPHFVX@>T2^a^KJN*RAe}zh-tIkK81yccowd-KGk*mQ zYM1%`9VjVx9|?$Y(w!s#=Lq>^mA7?w=-mY;8C{Ak*G^;)wJ{hDN3-8^XBTX5M{K_4 z+uTmsnlQhDsNjr+L?Ac0Ue8_q{D<*W zS%|*oa&`HJa`m;#|L*_wqFaNNE3WpWeslD-tJ!^HMLf0=k9nznSzdOy>GHpahW{v_ z+fQ=f-xczycG%Wa*I?h?v4jN>SquRg{s}2U*;3t@<`BO z64Q(x7yc{Cdj0-0wx)nUbVfy_KARr zQNADBTA%|S|8jED@XrT>ei}>Qf=Qo2CMAx1sNWE7S3zCGs%`sN_1Mp100Bo@C7c&t?6*iUL|>I@AHafgOjGxGIY z9!#CsTPhO7(=%nv+O&NS)yf29d)Bg;P1#tx$HvoyE4f`S$f~H+h+8kJePK(g&Yalm zy_5++A5{(sSo|f^OCfw07gY*ND?$IMVph;FN-(usx^P`QB)_msKmyQ;?T0wBsjZFq zLCe@NuM_+VBqtD4=t%+GMrviEbMf44knCY5HuD&IKU}12=PI4&k1}vLB6gV*T5xsE zzeC0{Nxxq*m4eCmr>C_xmN|dmbiOGrX1f+o%S&ZEkhD1R;*DiT&WsNHK=Cd4%yVt4 zLBaTkZ60f4UUVkEIV2A0W_h0p_ zv2Ov?Po`Vs&y~L6j%fWxY!^;vW$z>NH);5o7+A$Ax8~+%6F*f|)i60V!<=h*BYCZ< zmu~{rV0MJvb3=P#kUKwdZLX_@RTbEhwlER8oh3sG)wspqs-AamX%Qhx8;rtqy2Q%nHF7oX$_=0F@850F)&HHL{&5T*bX6vjh#xygS#KmAm@lcu4qDr z^}l0UvpTvFUJM?qa^gAtQ?GD~K#RsmIGZERf~H=Ght#*s*r!I-Oe0?FjJyLQf3k49 ze>}_n-in4Azirw@9YA>lRb?5khhR+Q@4;p&<;~qN4V|2Ha zZlg&A86)T70*gPzEUqdHw=}J6{#L&6OH~Lma9z%ba|Y??#HbfnRT1dc+|^veZS>U| zI7QNNRsL*tV=rjzUZ$(yKCz*fHF8d6xOT!z)czfcl-2>W_I95U+=_Gx7#Q+^6$Q7} z$bN7FwBoFV##+?UiW$2ql}R*u#Wd(|Y3UvQw4^o)RW-mYprQ;iJ@x06tq}Rntt*Og z8x)vvAtlI%#0Fr(7&vA6Vg({5wZs^Bncpzt#v6?b1`08SJe-TCC@&E{h&3m2Lty!8 zOjk)XR^a8v)&$SJ$MBuH8*3DHS4Y#rU~?AtD@T7vBFU*HTHU6B*CJCoC0ZLyQ z_&I^%pDFEgx;n}xgwxO&y0ZV_VqQoydTAoEGt=pwE{KInsh@?bHIb=Bc~012T|iegRe&v!9rx7F09RjH(;RGi#5LWx0 zTc8erY`o4L!f~rvUsOrJj%*+;{y_baoNB|6!p5PlJo%Y_u{Ym}qU#E!ZU(@pCL32E z@6_U2yuol#e}#UNF{{`ynk?TCTwf57S6rPxkUha-TGRIuR_+J{pf# z>5^I)6LG9LQvp5bsTHeixemMG*V+_Aosqv{97_lK266nQ6e%z0bI;u}2?*)$nf`d? zXF6*J3B4>ki4%c2&Xx&|bWuNFN*XS^>L(PHZ5N_SrrlY>#Sx01j&YV6#N=YsDMz>5 zJEUE6d~a>7@&c5nioh_N3!cy!o`+tx*uN3b!jCPv7pfJtqat=edjkh@6Y|iC8rlj$ zC0Hp@6EQlY^K^KOWW@!^A1XlomI-o)UUbM#g z#K5lxkPDNgDr*CLBM9>tR3y5_?=b_7;jdZLN8vEVzen!GRD>oUpQ#B*Cc&=ABB!{& zD{5^<1n?;{a&#AsDIe8y(pNPkcoTe-Nugy|wNzwW5qltCR_o2kEwN!`Rt_2c95%I7 z-2hSE?0z2a#@ZYnmHpR5Bw54#k2RPA)R*ZGWG?qAe0_esDP*L7OLxAs%p--@P-RE7 z6K|=T0D^+7&D!%f_d^kZ!(!$}->uOYOX_-OhJPJv<<|YUoV^OF|u~vi3l;Z+!$_<6IqbwB@!jh2s`6YSEq1$3P+H>S%#1?B~?nUajz{T%Q%)YKWNpIt)?1kJ#eDpaj}Lj(e{B6-F1_~bl5NTMN)03iIfldhWHJiI#(7s8Pbo_ zTpBS4c(@}(TT|Oa6kZD<>nd;p;*T_{LWq6~uqSRU$o-Rn%ih~_alQ<8k0tI(Q!Bpm zL9gN-Ui7~A0paWCi(CHMo2PCLTr4(%Kr6n~F%sAcnF| z0#7wEFfhq=lrcwDedOHNiU4VnLch}`;i|yTr}`IaIU^P3C-7$HenjATWD%9|unYa@ zAnK(7Q@LVnbVu-rtWilrHFoY*dV#}RQEQm{mw?by`pt<&-W`%P0lwffsNdtA`;GtS z5FC4vh66d7c3{?(Lf(n$%oS6S}NBkdi+9#~#e_a@(S54>_QhoR6 z>WYi@JQb|M)joo@Nowd#Q`6tSmRX+wUvLffpT1bjSYi_M5iAE7A3GuUk2Pctz{v5o z9jsQ z3fZNk8s5t|&W(faE?dZNPPugcqNe-O#7N_AW8o>_nFL`W`m#)xbt1PJ>(_<_BY^Z_ zyKINegAe^>mPq$Y?T;c=3}K!GY%6+j))eIC99Uwn4^lWpQFDO|DeM={iKEb$x3&5QAJc%R zr+yvZdPj*bm3 z$RuHQ`F?A3c4tQ7;H4~8s&GGRm!t_U5@Z~PhKwNi>0VKetGTUhVFLWS*aR(Bi)@;a zF9wccc7V-PQPQJRw64}KCX$t(re|l?5JnJfFx~4$vo*X2H1acxN&El+AZ-UGou)s;L&+s%&DyAOSq%lWR-kO z2`(-9pxnudVCTRaM}d@ty31PR*|FkIt(|R8!X3~$(&U-@UU zz?U?~Q8~EsFVcoz%abXy1gnt3py{ge#&_Ml?tnKpWCkHo9x=7pfY>qy3#fO1T$* zl`=jKSQGt11;@lISI)^u0u>;{dv7-ULs^d)F3R@z3w!RAJ93V?z+-eYHJSS*k38$& z)XX{Zk_(daoIgFEW?jLs&Fl6qO$gM>qOQ;3B^+;Y8LAus#Szhtl`07My-Lr}f`cg7 zzQZE)&vSP@Tyv^Xqkq_0+Uj->e_>`>6dz3!lSGhW|BcC}NHESWNXhKtY`|dXH+!&L zFn^iNBN(jxD?KrCCihGPwkd5%%8eo;3DFzal|hIn8n81D(bOz@g$jZ((DOjyLS!)# zYR(J0zO#$4rk3Sv=n>qX4zR{~lDILb1(k?%-+O1hSSIj^hYwB0i6IuX)P>d)n2)h~ zVc$!OqyN#(9gk0pVC=>XHGLCpVfuDjOCQ1{Z)A%2_6FeNjYGbY03@qN&)4UQXcH=? zKki+oQm^;yNZj2q79ChH^6>FSOeq-b-oiO~yoUk&f7X1`{0 zO^CfmIpx#AY2LV@tP%w5i23Xg)x}UaZe+*bF%k{zkm~eLz>;$DM$X39qeQ92$5zdA zITzqbtn!@~n~a~Mw`=sVu?OAYs{>NjB8C1*@wrz(Nv!ebk4j+w)=t(5$^PT5{&8)) zUwGDmJu?gRx<%1QoopRFT6kRN?+n8qN(Bu%tr$tJ&mpBkw&*9g)Xg2<$d0x!>rOKc zuN<*iji01xWQ)pO$!_OSj+zz1)bqG0a4aliUmoe7X*VF~AKQk`c(mX3Ylqg=we>ha z&~#l4Yq%gDSOeFDkX74VA0L4cswfnAMwm*mx|~|eASCWrxs<|KeAu3I49Yk@W$AUu z_mbUyl@*xk@xYOYLnFw>E~f3Kmi6_)?UjT)jEdVnPlU?hQWR;xc;j1@&$8h>yAya0 z6GtI)V9|07XiX4zl?MqX)*bpq0uOkU(b=~BQ^_H4Mg^akE6LR7S&wax%#vG0q2uww z6`1^PK%%?^$d#Me@WtPJVV6D36}9$;XCSQp^LmUpvH69wrx}h?%@rWylD;I*>BsGL zN$xiKvng`tjM&&Fzz(lEKeYS-MUP8b@!u2z7EyOFAlFNF7e$Xp$`eV&wD}gOo77)j z8u$cr`A{f07kxU6)cq=pJ|<&RO0EvwQ6UiNZZC#HQazEWu25W?Iqh;n-Xn~1hi3Q9 z$}1~xRdhNvWlK;hhaSQq)*gJ*A-m-BhT=DmD{P4gkowug<|TvHfT5i~ysQIZBXG>^ z7GSWYl~V4bK^k#-+NC^Nbs>~&Q(px_53zAeElYwU*x&vraM-W*_9VbmHY;!xBNDKz`~C8%7?S9*_^F38!+<^#xj%R)nKK zI9T|df9pbr@6PySY~q0G*@F#CScu-Mg#b^&im@V#h&3<)Qv@8_IccCOd5|0Aapd4iC%f+nse9;&DeF{3-WE9@l-{C>p->; z+6}=v6na(;I}!UBu8GbXb2)Eh@`B z*>^#`bVlXaJZrDr+Zw6GTwiE@XXvX@{Rc^V0z)gjLy{kI&(Exgb<=i z+&6YjdG@Fat_IhY=MG1c@Oeyuu#3K*b zrZAn&A7=Dg^RND+9~<&@O_L09$i@-VgYQ}LV0BqAWdM+47t!rU%$Rxcr68Z)S@CLX z+U04b5uZ{SPx5;X_Y>@i)e;5dYW{H{D;pQaJo4(CtT)13jTEIejh= z67i@Ya;(6mHITQ7e<#oc**XJ41)%UJYNt0ONW>%>8Lr8M$SC&Q@z9**j?vRuNl}54cna2N3d`qJJPScJ&53o4;OPz{egImv!6p zjzfjR{xW=vC2$N(6pz+FCpMorkLhb^yTW?x5#6)-cmBA&-=El0JuBqQmKAP%}MmNv^Rdx}sA`FJPT zf_x!YFbLjmrT2s{?70OP@+mq@QHB$1rm=Gt1?}}g4cF3@64p-|ySjlF2RmXoR(obFIA-2@WC>21nY_Q8cQ^0*&h{=NWfQ_haZU

dluWhYBnV0Hn>wrLu?)?5-K(vzT%H>g%MZAXTfM9n7o6|jqhb_L? zFm?32{{TrQZLK7VOg$OfQSm_5;FE7G z^Ug0j_LVrI+!E?C4X&p2`8xz7S%4e6RfRi}*y~%Iw7L&=zuU#GXF)#);!gw8-=PxM z>0fJo1H_*%OAaA!>JknmT^;{NHT0hg07pEBz{L3ZF~JY(|5}x{$K}FmMLt_5HzQdL zW>)+ovsF--ws!>j35woLPi~KFeO2oYOM=($cE_*+E^}n?4?Xg=CQSGOh2g4KXrN)r zrK||y&rQobo+Xyt%I7DBD~VVM6gbx%Fey`fu3 zu-5an0nKg!nHePyBLGdJ>xnUgeKRiKe|G3h)F%7Q>Ca0n{nW&tf5@oKB$*MkW>PZ9 zJ!NrSCaIAVMF$^Vfn3*i6yF*$rDo-IxvW!-Ed z6ayx{svieBc8DrT#Z(v&KNlSk29}OBchI`7R$q^<({DW{QCWfDxIqLjF=aU z)ME603Xv%|je@XnuVbmMu=pQ1Fiu+9>IS*AY5;&bEfBuoJxW(-@YV^8v~z7{T}2|H z03@9beh)5(TBwkv)il+n6-#!lfX;Dsa7rF0c&I5Oi)?&w74IUv zQ2?XD4hZsN=}xSMkzV$MlZ7J?_lm%65bP5UCNtbNC}c^4XeIEpJE#nTT+O09VBiqNVk&pBd z-7U)c-r`XK#)JVsRtn`HDN#4H<$#8cW?-rJj?wW|IUrGb*i-NL#qO2$(RF|%lknLa z1E;dJVsfm#jT1Y6Fn{?Kp|!kzcU1_a&m*C~Qs&5Eccs_@i`U31`<$#P0~cTTOBW2q zC>ElV;Ln-9K#+Od98&t*4q^828>bq~zLoGh#DJy;=JYZ6j;o8ITY6@X6)I^g1 z1C2*!aVAs=-Oqv}Fb$n@W^*I1j)$e6oD*jxdf<%}he%iWp^_2xeKxFafn@RU@Or?O z#o}LE;l&>%mbBEu$hw7HZFr5`{DILA&>Aut)H>ei`EYHA-g-0{cR%@tHJD4W_@WvB zw0_r&xOg4H-H&lhQbmjBQ;Cd>dt-)r{M1Q8F2|DCf&wn-Iqi(gzTn72ScDf~jrv;T zQSZ%9ulBT+guK5G?jsH#w*;$to|uH?@df2R(5PEXuUntwYVh6-8#kt4zS6K3P63J8 zlD2V1+eE_lefPyXne)fq7eBL-n?^Nrhg*=twzo|BW}TBJB4W7~wBl@-37tTlk2if| zrfY`sFGa@(L_8kY0}rB<9z#+a_lGfd@7k`XHb^#!<#+e*C_CC0W6grv8aaV9TppPq zO;nc*sk<}GK>#Gzq{#%&atnVG@Eknz+=uDHk~54`h3x_t1Oq`T3S_ zRo@Sh&|JPCJAkr|Jd3`YDc}M~3jvm5Xi$t*KX({MZ29x-7(E~n0+N374RW}H%ZGJA z!reR9BiJ>s$BS5d6Z#q0V-w_9?RZjc4m0}0nDT)VC#^N}OppR65~QlT$)uDwWNDhM z0L$;sN82^S!}F#h8f6}DpvZ{#jHr;3UqVe8Y5J^SPjI~Xo#Qsu9q&&75pRNtn`tbvBgF?EL1tzID>C=7_D= zJrhpEQk}Ms@<&Q-sinhl-JdCL7N}~{f<7U`QN@^FCvh_cVP^lqAJ&%5lq3*XpJzSH z4Q80%Om1xWeAO#9d}O%}ODt?_-8Sn;u4&v%o_>`mj|Rc2OQM*-g7vqO&xi41*;3lvn+2W4@w$5-h}hAO}ve`Z_sgx z25L0f?o#oK6Ly9yd;i$G>_Y#MvlviJsPEf>&rA&J8BCnr3dkW-eEIW(MQX9p_j(8e z;F+{j@82H|tB>M(p1%sKlU%DV7$u-c0g(cqa*&@n5F0NJ3rB&{63($HJ1oEgdw|m1 z(sMqHz`x(d8}*-v{}LJgA~RR?FJD&03S zy`V-EGLHX?t`o+t4jg;v3VEmMUSln~dr^RZ)vNiuT)5Nz9&sa_^LW6f8*y5fD`2k& zbM$HJ4+8eRsk5r?M*IB(YXv3K9Oz!y=q6QmHc5aEhkH#uVSO@i!qcw0BHnJid4xL% zt$s4KKfhw+nfs*3OA}c-KmRXshdSc;I|&Q74`&)P#)4MU>i~=WYMaU-oKmK;nwf;p+R0H}JEz z#e`vtILF`}=B+Yxpc;oTe`pf75yh2Y7!W-@o0n8E4R5eN7LG&w1Q1w-k-z#=S*%+@ z*=0=A^BN#n5CBn6-X_v=n6!s7o zYjivSlGfyf!g$2`@K1!xtpFnwfGe9oeiodMMAG(wQYD}NH&7hR#WHy144H{nD!Z>Y zBBdM`FKj=ayOfyfeUb5yzo5>juG?zb_#x zrX)}go3~Q7wxkG}1rtzL$-wG+D)KsctVJ?>d`ptaUG7+#zn2qa<#GcanD*+#mX56m z#R8ZUxA$Xj z$Uj3}@9~;w#i{McoO^dw|GaMS)geTepmYC`NZE3TGbJg zh#Tw~)%9U)e#AfEIpR9JYlalK=NQ|U>)G~Si;P5FUQ8_`;-OC$H%z5o7L=>UNV)#u zpK-}mr_Y7*)#1c<$Kb*&y)VFiUhc3^`bI(YipTv}+o5?l1y}Uf&e1$+@pg#;%|`8! z&AgmA@1rK`{$9ahZhK5kQfCL2rH114WS*XdJthozAqk3$T9nL5pm?5w0gvX(n6%~= z5^c+-FSk490iU>sjI%+`G#be)h5Z&UH*o=XRySIlh>Q%^bOASR@0++tgpC9MS27VZ z<9ytNdHQGx{189J7gEZ3lTI#d+qMzL&X!DR;>eKsg9~1}9@+B#UGBD6T{#Wq?Yv<% z_>kT;K9@*vJ!L5Y%&U*8C_UZ>Z2p#b(nQ~{Z_`jb|NWW06?2~teFYpnN4-cQaqzca zx42@-OUCh%%scf+W25*>V%;f64u!K1=uzu)qP#Gupo2FX=cIyT4e`cdxD~C5^%U*C z1gnWtiOlUFAB$SO{m*WZ9`o5`u(R0!+R813k~@n|9`n`6T-&l95uw`t8n?^sWMQDF zbkGDr+)+2D$BQxoc$Fhz-ovF72W<6BFkg+3Z#4`OC z*&yHFLDNp;1IQe|KG&X~H`;Cv{XbCc-mIB%1;hNm`aWSlpQrVHLF@CmgyCSo?_`IDE;)8vx(Wo72^$}jsL=7I4#WOmS5)K3}8b!xdFFIfRxp?{y< zscCk2z(y|G@o#8DW7J%WO-=ysxO}DQw|Q$Ev(0sjP7O%4!F09`7Wt>4%9!4U={tF% zdtbDP!j(Ql(G-IU7*wGmu=W@s&Z=Fu&BwuV7f(@wm=J^dFm2~%|BE->! zp$1go56B609HkigRTYkZfhI=Owmn(A7#h;sX7}~KZ`OkjO0b=2(e+`eAj3)tz>cNl zJ3<(?Au1v3=g7-+`fl=soN0oE0!nil7->o8F?Ctt2sE{RhaDWauJ_7;pl9Cv+Ob`@ z8NWL$(;^U9|2AxPU`e(2S8`cQrN9UcVgYrPo9c*meq( zOjh#IM2#88Wt8zxr=&WfH)5_vP_tfDGsH~N7MN@+95|gSrl&>??mIa4FW^4>=&4x$ z2Ecl$*mVxl9~6aVu)uQ(Gw2@7FC~nXvrWc3rszc>?lK7L?j`H(W2PmMC&RC&h}20R zIO#;Y!s!nJkHtGtzK>4LL9J6n?IbIn=o{M?f|GX6uLnx!nx5MOL86;R-_48w=^@mp zCD*M_X3l#Fby=-W^MFK(94X+sYo0E}`lq1m())Nx{a()>S5eQ57@+ViH34T}R%%&` zf^($5%@&F2^0mBGN~UY(&#sUrYC>mqOPXf6#Z5E6%-^?s&ZNqApx$zMG^^+w=%l2< zK+0rnceC%jgK7xzJfFwE8yGoG=Udf2Z`ekJ4kfQG5`l?PNAGUvzERLOliZ?*9nTKa z;rcrI!gq~j=~#Nw&R6tTRDW-_92+!q664stnk zN~Eh3Hn-;;kbq5@)oo3$n>90s$izd7<|dm2~SxqY2=KG4v{=PN586N$GCDEw`;90DEBcZcZ!}M z4D4t79+hsUM(#YG9(nMPiGQ69=n))SO2}Pu+@@U>_%DaYU)B~?#m4-wwKXZ25J%k@ zhT}WXr=Z=GM&eP(8MukYo*DLjfGFa#lL_^8f#r=Ix8E8XU7(nwmq2{e(^rOdf|ZoA zsW-4PN{UJMqpNWgZYqQ}?|tD3%wIX4$R2FbkJ&AD_YsfZIGQSGW5NG-n>tGQ(WES=ayJh%$ouj?@ zMEM^z`4+0STQdv0qmKnf9GDJqSE(rIBm$R(3)|0K(p{;VE;38gu;nUtqBGE z8VEjfDZ4B0^Zls7OAh~&9F)Jd7kvcU#67rcq?S^&tKG+=pL`w#F)cOf-L9f^J0Ye6 z=FP#Cz{#Y&kIgX}O#F4fgXW9ufb7+oZ%|Z`YXh5mG|7?iD3q$gon|DdFi^C^a6iH& zn#C!OYFa;E9itc%SPcy6BCQNSwF(jB-w8%0Wef0cgmqgR z>{IM1*jRU=$);_2dJ^ABdZ7JP#Y}T1OJ?wizw=KN>=^X0-j? zacs==TiZp~L1h^;pI?K+%89JyKjEGZb3s}|;t#ARm(eGs>fSWnaK2efQzvwzRR?@B zRr+J!kpcDxbu;=hW3{oeG&gwW6XQ3jS)++=6m#0Tp3~CA6h~Z}41LB6wLOQ7sgd42 z&x7S}QpAX1DKI?~7?vcvBS4{}a$pt1Dd+JDGh-kp7A0erj~_-bWfbnw>ePTo!POir zmxhCLwJo!(En{0*-Tal_OAYv(WDPP`d%@HR#!f?_lt0^vyTI&+8qE@|iT1F4!%Z^1 zrj#N>%;X8l95-=NMhR^_8@MMH1o7$H)M5_k@&pAyp|O8ASB-^GCuOIIQOD_>SZ|Li zb;TI0aE`aWplrW>ws-pZW3gY-OX#7I0xGJo;uWv|Lbt1JmI_41|I4;*(K-{)9~!SepcE&Wddml4a0+v$9ngjffNVhBrmb^b=VM+q)5D4 z$fdj)Q^yR&&-dy_*O`;AR)&sPy!PupkHV)-jDAoAeK(t@ut?q2KPcfIZcT8wdM#qwK6 zngVS0ZdlT?OE-sq^!LL$(dObzc2MxF}2F|@6~gx&AQ@?7+G^_!mvesx5C%fBDJ$Z znd0I5oJDcDh$1GnxZJr14N-^B9hi8I_|wixQ2=8JJMFO*JI$^v=3D@D>W7t<&bK6{ z&j7)#0U6!5*>(fbU)lO6t^KDL)W8GZ$JZ1Jq@9#`Nam(t>_v)8qhB%?yshq^FU3k_ zxDU$_^SsWnHS%09$+HM5ua@kurWIxgl1vcn+;6!G!4~pL;+u4yh`wIMC>Wk_$oDz} zlar|HAVAyq-F5e02o-x&v%6>dF>h=8xk$FJFCS~I8%KB(;7FrWLJ3dqZsNVVktNY( zUCT$QbFfG=dm<%yT?g0mB^}T_rSq@u*h?qYPS+acU!9wiTwo==1g4*X7T=f8JTNZ$ zC6~nSYafqr?Kfje`<$=8)na` zNU(r)u=}ro^|5!pbXRQX9Q=4hW>oZRMD5~iu&MX`3EdKE3m(ErRh4N3jo8%BxceQs zKxWHnZ3&lK0e?CC1qfMs+JG@$I8lmVGH-QXU@(K~Mu(DVfNR3L6<~#*HR{RU8aswM z`YRDL(fqKz(`xx7>kFR=I$Z+v!lwuU5JgwK+I}bm?{V)^av)T$$XBDXZ{jCMn>b;>HbygI5>8y_{*@Q;vd!@ zrstZ^bT!D;0tm?@`nh8G$ zcj^0q)m1Or#|68W`Km8su}n2ZMG+k?b;yTm8UR|5iwQ z>k&#uFX~SI0i?fKU3A+|ZML>KTMB4P07$!2e%Uul?XU`lhGgKf?rKPBi?@;uH-)O> zVi~}KkQtUG<6dw(*Or{#%e8KiR$7qxb$mg~FYPE?w| z8Q!|WI9^^2ej3kM^Jsj-=!ZGaNa?9^MdLQc2|*60PxAZYgrYj<0JFBH!y!mM5ZaCE zk7AsWw_>=lOW9MY@536*C^%e93xXfXX?g0`WuC(Oxz(aYE&Yhx#px3_z!NysfD&3X zNGKGR?e&FB<#N^~JFhg3J`XmMRHBrJ{m+u6Z%{~%&uVa{2q*CIJc(}8l%X_QcK1=bB? z@>x6NW?i{z!e{S)V$oe}AB#hk{d$vRU1DTt`xW4%v#ii0m{_YIjeyYEQupU60y&qe z2Ff&~ya{u!o(@V1U&Pjx1<{!`JNk_CP8yFpL9>#07<+6eUEr{lhe ztan@%s0C4vjsRikBa)`6c^nA!jTTw*qi5OH_aKZZ1tqb5QLUwza#m@tN8WH* z21CNEY+=ZycIO<}W~UH5ZS1Z)tvF0#5*0sdl5r*_T^ooMhAvg$93{~vHAQ>m(W60p zEZWUVC7y_=@efC}j;Qx?)!U+p9}<%8kqi7{E%&j0G3_V5K~oCM-hr~Y?RiMP(s&mT zB)0m%5(3+HjBX26Jl*FwDX4(Cyv)w=^jl^_1IX_k4@7}qVZ*()kfs2IW2UJ?c6Dbx ziM|M*dvwF4AFGEBrTF)V!z-H% zDv~v@`y`#d`77U=`3oas-h0fEeQRn)#sr&UU~Y|=$Lwi$PF&EG(4~>E20bxUsV$x7 z5G9Ajr}8kTqGp+U0+-VG0K)5T=AUtQwGn>J!gwlwDU{50(PzlyM-T0L!?vz?d70Ub zFOFjbTJi=4nI(A9#iG*-xDRr$j2!Dv^=A1}@gc=xiQ>+Tes>N+G(@pLt@)e?)ncXb z56PpS&#ZB$Nbu`c_8|zSmiH-u93zalyQ37QaYsz|l%j$LXWgUEdrl@bC)y*urN4ey zc6w0#GTV5W;%;(wgj^Y8$Z5VnZTC^As2bX|OzVlO*=XZ)e|o`e^Tu*jGL2qwL)h>x z4hrwb=UL7O=>kl2Hdp&-gBu`|muY*vx|porA@(@BEfXSasu7Xbgz_0v|0G`o>JZhxF-F67&QgVrDot0PM}DA?W1z`i2(x zBr`ONxx9bwTIV>@%#)O(Rhmno2W0PaVx;x!`#7D}o?VkkFSRDRyZd{*&|PxKK8K^$ znlsyUdDOlR3bKKkWV1W?+H+eq>Shc<-gK2VIT83mY8WZhN4dPs%tH5Du6EAU&}s*k zm&a;yTdTFaPF=D|Wl^OBk#R~_pVks5jJDr(mhW&2m)aYQUOPi3vb672p6X7RYgihc zoVI(Je)*4VLxs{C9?J6bQ)6~^BRWf#w9&R>?4eDbxy3-EkpUnBdy)xZTv^p^`pJvN zYa)K!>86)Y;px;y>Gdgow78uJVjF3xG+jn4*lj;T+@o=}=&$y^%0LxfYm%-+Bi_dSjtUPMn4;@Ek6_vX4azhPHsymrKVv{dXAQeO!7M{Al!aBb|>KvL> zSL$SD^mdkWC#P%m-CAJ6Mi$rHz$@q+2%2jUy>Dl|HADPu?i^erfBA#U^IVbZ_!4P5 zu!+c_xO2`B%5)7+wOE<*_w=9SW$LhF-aqFmF8^2%j&Wvlw27BJirHVB%XoR!6Aa4}0;khebEInZ2lR zxF{(_QqLTVQ>1_jvIi?gH`nE~8w2d)!fcG!A z1x>P@ZFLBYvDqZzHWa_-vSd6T77x1u>lebQ5jN%Ym77D+|4!FY(fb86O@gk`g)`74 z@263e@;-+uYwl+%(|kEyNmn|sKvWz2La00*%bV0Go>6L2k8vscsReg!r@A7Aqs&uB zjjJZ=?v53dS*XPgGNLDh*YUBZ>T(c#+(&1;(CeL^rtXO=jy{b*bL!b?+F;u=q5di_ zx|uMpvJL|g03sIy>{0pUp;jC_40p2V)~Zl0CA?>*+0uhba9dR+#d?`RU>h#*-;aCQI$~65dy;MNtuhT3~%lLPAH0xL@mdd8$cElt8aDLdmGtbJOPsZKscE1o@ zf;O`=@OE>8oN+3^lQJO@x(v`Rgw}XS)6$|P6eNkyDGc5GRp^n$YSq}aKCOG2WPezJN* zga$X$vf*>X8JB0lU%EKA{mFE!FGDUV4OR=VzzWl6vHqD3>8<3-?~A{GHrS4{ETBps z@z+oV0~{Xcg|AWpmh8M@+tsoW7592-9x0ARdJgKMVWCo&KnRkFwyLyJlDyi5Z>9>W zFK-iWc-;I)i*-gM;)T*J#e99AK}W(|zY~_sA%(@5YEk{NI)gDGXf+_c-45B}HXBSl z7IlcjQa7^1HlBh2|>$9 z$q8EK(gd8m;pz$?OMudyDzMdJxiKT^6ce~ohNLle(7bhL!oLt<62!xZoX^Sqxl^>1 zKinXpzcIc~y-y)F#ML5TA_j>&^CYpGm>XlRg4|kl^li#o{R${N7iOSN%aIqc`VqZF_E9I#@C4nzjiFIK z>>62GMEd=vNrJE{<@zSfEihrS6}}fBWiZW`w_||k=z~_F6}$ykj~?aTpr=I zf5@3mwMwj$_G~(coVpV9>)0ioTU~~YgX#VIEvGc{5uuK{Vw6I&FRwS^ne}X55P=pH z4Bw4h?3p7L3)H*q%(;;{AGBGL$~SAXV=jq6kb~1~tU}CbY0el>dbK@ZZ;ZA#?Qf6? zGdcSKiu!<%JriR!b2u6E7peKvP_Fb`sZ&ipOTe;ugIh9fQLHnkfCenBrA2pbJS)G9 z%lIT*e^5UYugt?31W1x}lQK+TXZu-y2WnY z!giZkp?&1v)(|-mgu1P&AgvNJ;L$Mb$9-ys}70 z$b=Y4C0Rap<@`=zLpB<8hJ(0=t z!HCxSKtJ!8lxwKTwWjBBNi4R4w6WEd=|Hb9U=CZEoo(wC>o|a>ycvqc=8?RLhdlx? ze?sivqh+s)ksWcCR}g1YzOpj3Ea}=o_6)N>(FZj`BKDa(X>+!@8Y)#&QL@UFGAND1t79`|4` z_TF;g3UJxYg$ZIB&FqAH#Y8QsxK{Gl1O9R>0)bwyr)_&g3wxm-%7(zol#<(#Jg3D` z>TRt}SdZFP7H&VPHFsm|*|WrF!F=PrcM(Y3ylX5>_2j-=UXYkBMvK+wu0K$i_<0pI zLJ~3M&h{3o;aw^OTCZ+|(hr$^nb^O+;!N3Ze$sqGC?Tm*(RZ-6XT}bCw8F){F-+w` zoFp@&j+*!zO8)akV_E^FZ`OfHRd~;BUmAL?LCvl@Yog%~7A?X?Pd>kZfDUScj;X>1 zKyB5U>@R)x$m}&8%pIIbWg&J~6a(C+s+)Q-l59^Upd<-jP{oG=Co zvfqnj6XEfKCZNVngFkiDc+zN2q$yT^v*D(VYc)LOqf`S0)yrQ=6VfS@!qsa$m7&_M@EmtLzQfFFVh zRd%7elr!~Y%IEEPE!%1#I0He^I!rl+buo;7$ zCy15a;Ik=_^U*<2P%4}cwk6noVFN$JDDLq`h+pawvOg7`12I6xPJM0avS?z@-;<{g zJHcWJC3X#<;JJd7+(A2FL*+(zX&o!g?+EYI!_hJ5q0`Ikj7qeVx%fHn71mfopwmoF z99~DEAsd`5gQOX(Xts3ZQOskPj%VZFv)!BLwUh(xSnbDB>*R!2QPZ&JC5`%jSN65? zii;#pJyDFho;A5i8iP%y&InVOX(DUvH@=SMX$h_VKBh;L)utcU;IV+V7U%UGQmvRK zBhG%OS7ToLV3oFx^w;V9{ErfDN?b8_ToKAhp=(5tGV(rLrCnt!6$_-1xfJ#n$Wx47TGWM^4_DxiVHC^@k5fyI zI=!Uc=63SO(f94;Yj0JQZjGP0WieLWft-5ooM2?)`{Ro4sjx8@#Q)T<0J%Z4dI4zUG=3fiu7xVli7ii1cK!DBn7x_WC-%1Rr~NTO zo~MqOrRBgbxyGXlqhvDYp6+cC?@Z6OzYPhwaM;b75KJU;S%e7#56j2GwVotPOs$pk zEqX|{K{37(l%$BCCk}a-;DUem_iK#tGL!#Jf%rhA#yxJ0@WHjaiPgp;g!ON4KsX!m zKL1kiuu?RH!WA4eei;L^rj+WEGto+l)g)EzvknQ(O{i&g7ElMEnn0UjvRr1%yYNF6 zXBV$t@Xet{*&{IsL^?<9|JFLr0SSAYDiAC>s|K+$8OMH)GMlg*x|}eqp6>$8BncP2 zZ;s!kD8(UqE6j?xM6yl?MLM1m=}^EvCsg!(vShn!vj@?eauNd~b@Ii3 zL6n~rGmwVq7V1XOmSL*~AHm;H3eyjWxMOQ^jI9(tKX%Zj&G47Jt$-AMHM9YOu#@&` z@y{0JhYsC)e3G9hp?PZPR>Tz%j)cSAYv}s(Fg+b!UGL1C!2;*lA8i;(^hf``gW1CI z3a}y)O(Mz=t^lUcd+;9UnAMQ-?q{vA`J9ibtbtxnR+MG>$7I(OD|w0HRzlvGdAm>R z~px5(8MR+nOQ9ptM?&q?30iNoE>oyt8wE7(#{xf zC;w9+-qhRdgWtyi69`M-AyOdum+3_nqs@=3wukqc6VN!6>t4D7C8{COkI{U}5V&|W zD|bLm*)C&b4etDH8PckSuH0(g~Q;yYiJpYwt8( zKrx&`yXA~rI-skBuh@^A!~YIrRQ&;ewGMfd)&9gc@orl$&pNJhPjJES6L{>31omY^ zxTvJowsbz#d-iRu`=t_%Q8^g4(MCPN&rTclap<|{UxX+H-9G~e7;@6+K1uy}IQ-Z< z0_}hBzseSFuugyM^>$xC+jA^aXv*LTe3Na>d`F_|OQ{ zebah+$?2KavlsE%o)O=>>RH1s(mQzmfa9f_UfC9{Q<4K{ShUK%zn@rS83aO z=Xb$7YrldE9(o-*vBO$My|U`}Kwi;AWo6mk^lQp$i728eQuEj<94f0vy$7Yz9xH>Z z?82Zu>S_A`S?{?soiF^4<(B~UR`%+P)7}x1N&5aHa+t>l)57=bi-p(oGlneNo1eik z>=3M}kp2RM$W72N@rhTLJ)7_j_q+B_H@13lDaUv<57iIDB;qb3d5d@1{*KX0-ZQ)~ zgwkLCbqfsCe_uMi{RNOoF2W32&t##Pt{aFvUr@b%CE|PkN<4Z7Xp+1v9xJ>;5CzBB zZeXsB&gg%LKHcy?eYUC%I(xYlCwVJ?Z+38qc(dr%Gg&muHCfnw!fDch-{ZGAjKWjS zQ+1DfGfREL6!IM+_C=Kn0t)h9ip^^Au?J>-eQcq5-=hNFs$7m>!kMg!CYGqZPj+I< zDbchsq3bZ*J+bsw_s64V!g` zZz{as#$Ts`?mC!B#I_$;$rg&aNb175aw}0aLUAMRku(8}O7aWt9r72wgJq&;Ir+so zg3KfU#JR_*bdflXvUO(YZ7hJJ@S@?<^I-6><6Ji$w?|c|QSFcRCJUp_5>c-P5&VVK zm0^T~(bkTDA7w z22XNsHa0|JQq^CdyBs}SR1H!@v--s-;s+&!z{AEH^S%OVD|FSuSKHgPKwR8aq5Wya^s#(dnGS~zb#L7|IN8h z&QP2@gSp8N!q`G^gXEh6$?|9fSvZ{l_^v1WBQ5awDee8ze}l7V{s%Z#Wwn zfn^)EGY{HrwvbEC_8!t-bptwLzF?Jc61Uu+Cl25r_BE`PDh8nCQdG7QI__W;SS%d; z!gMd{+z8C{^))$W@R_*3SoT3W`Yj3`Vjm1cdjZ{&8%$b_aQ-UZ*f; zJ>K+;tAIyKDo`8;|GWvFuUq6_AN*&t_z&_|KVZOUe<#=(^T6yK9Ft!ncIFctu>&I? zjQV9lF`F0&EsXxoy|C-MkLMSM{oU&DD&gyhHx5PQ{bM^qTTcHlx;>+;B*6QXFhGEE z-!)mVa z{p_#SI0BW}J<{4=3Dpi7<-H*!pS83(VSh_iP=7wbOo~nC^i-A2TTQw@_KI+vBBAG`nEUt_P27)MzUz>&Tk4B5CZ869Xo5$q3Y{lA<358#J(=JKtCva_}Ij~sI>5aYo{>`wFIE_>}E_kPjU5?w}9n& z&vmoadk>Ww;U9<4Ki-9`5s_H%aIlTj@6`-%;XHTby%KX>LzOFr!>vhS3wb9Z9$AEb z6KQi-YP-WJYI{-b_o3R!R`D4GZ}~je0$HulD_E5V@P|WPDA%X#Rb*$AsXtpUiuS50 z2omJ@*Qu<#5J7VEzYfK~>sr59*^d#4c{dm#11FvaLpOouKrdcxAZkzqPj%>x%4+6y z(FTIy8joVF&kPIlWo~CpvC$gVO%>e~=!38lj`Se)G3nQO z)rNB2A7%EnVeVvRN4tiJ^YL9FgsH(q6zvr#_Q7SzisT~{V`=H`}wW#uRzpKD` z{fKgXB*#a#a)O?3?=C{`b#Y<5JI&<2eem8$DAxW>4WUE)=JH}j`pvT;jyQ#jXnN+K z%K<3#|0U)B1Jr*rb<@Z{aHaqJOwWYTJ4nYP4+bl;EgN7YM8mf)G)Bu*0J&_Ks>wk6P=zA^(jVk6@% zEY=r?cxQ*&#)8~0#Q9vPGLw^^XeVp0CF+o{;^f)qBd`4O7a~{SrJ{J8(qH(k)L60V z_}jH+#z5kVET}Ns+m5+JEcp*WT!eyO0`|tI_M%~|9v0F>ycjq87RM%yC2 zUdVw8Y2R8NdH|P_)uU>qRO@i0*nyzaQc(&=Z}`Ibqb~9CGh(Bk_UF%$Ob#oC6^rWM zy7f_D0?W(CrWYFJT+WsYN`)P0CUTMXt;^`h2{5Jw>As$D@@J{v6U3-X=^z$M9^Uu& zj=*%TZrgj9sEUb;@2xh&JG^&)DI;#mUV*8R^C}i)u^q2hz1-1Hh$VTsKT8ZE;G#am zqnn;pk5a{f4eQvXDaR~k6C~X^&ci0~I(&gTOIUn%cpFsza8j;gh=k`BwYs6pl?fCZ ztN3%WAaUiGPIo-;BI>6uUWSY@Fobwhfk{}}L{gylE-_$@(p=7{7r&dlY>~dm1|u?M zVMUOig=A*b((Z&nEA}iuacK@sdYXl%FgAI+*HnVIx76u7dQj~it{H-ImE%**H-d4i zqpOr^T*Yzw(Yi~ck}Mv<0$ZHj7rUgo1$O2S>=3t%0CCX;^yDnK#@4C`#)Y$LK?GFZ z^ES}}S)i`4&KKIL&G@A$+yT#Kz{9^*W>)b8&`j5Da=z*+p%fh^JV2bAz6B2Po;|!_l`2Km*D%DnBLAzen5dyuye^$^V0P&jKtfl zgm`Arhu-IPOCDM7*ExLJL>s9W6VpeIrEwO`yMhDs8Kbxvu&ZEf{A&G)+5 zlVWa|Bp#V-yY`pkA(3mpU|L#HB|B@ZCVNS926QCdyyUlE%CFF>`trY&rE}Pewcjl# zk5+7RdntJ@uj7=0?T2nvR(swaK4v<;8SbX}dtxlVdEP!>EWi4o^$xatvP=FCHU59v z_&+ezhbKY?qwXiBtr4YQxED@WyN(*4pj2C$%rqC(be48hd7UlBktd0q;cnLZ0)J;{ z%m52GUgVUlqQ3Nqr_4(T@4@zJ1!OZBMtpY*PdB=HMxw2VyMrVj)t-XY0+bEqPb0CA z=QY$(Jx#RkUuQb5WSZO!PPW>3W@wip$Yz^s;EYRRFauBMuCbFcX43U6B+kjU zy2x!u(xM#)fC(vO^FqIw4lRN~&JJB}^R~UPA1O%4Sx$Wd=}i%J<;LbN9EGQ7NO%PG zm7=^rqZBm_Z;hpaKwb*f*V+K19dY{tiT6`2YL(&M#X9X4HtNbY7wP9pZHQ(&1yzYp zy#(eilJ$-#u!`u`Cwms|hg(6r{v_i0wY7LO-{wnQ8{#UZ>W*~hVy51!W%6oacx5}9 zY9{C?zhfZgmA4nE$`53f(!}?=->-6#IUyowD^QrgzX^FZsB!jm8Z3`0Sjf0stW!nt zKUdw}+a#TzBbLuJDW=PMjIq+8N5$c>Sh31uHwfRgb)vo#8opa=d#MP76;O_N#r9$z z=J=G&Kby{Zi2aHB+331Yowdwsz1#8?`u0vDL}mKNju4PJwIe8un$1vo>^XHiPsV$s z+21(mu56kuy^1^somLjETA@JyXMw~l%1DVNshlqSp8b+%(N~(pYu?@j>4eP#wm6;V z;dS<7*@#q@fgT;tmVwS^A#H5-?ZJwXd^O#B8g5o%K#tj;J$Nxkrnp)11p$AJ$d+NU zw(xAr;cwp}uA3R&<69rz2x>yRn=x0Oc}8>_`RI~^Prd(qVxUCM70kutylYM8dI#~m zyxllFJ?DqZFi41c2hBE|N4Mu)#6c7Ih-CU0HlD7})9yM#aUQmVkaJo5JCS}u7ED9( z!HMs_(l87=>U~&pGHH?>EO_h&@L!W$w)xCPQ1qPd`vU_6F0_$W)9@P9E$IX^EJt>KTIMPfByQgy#)Efhqz-IMhvfJ zytxW^TCd%R+cAaSz3r?TtyCS6REev5z>n{rw|Ua@-D439Z3IPu16yGb6pwSVWlu)euDK&-0fj>p9=gyg?!^#3I}9GKa;IfI7|dUG?gCY=55e|Vh~ z>KEoyfIAfwlLLHIi`*o$NLDrw)p16=!+ zS@b-v;&O*U7d*r~2L9k>4?$J8H4>oyaJKZx$|B z6B1O9EXnU_JVZ64VfEHgvyrIQ)3;d_EAW%GMmHp{Xf*$FI=K znJH5E3gg~Ng`~VI;AvsP(0iT!ZQXMu0Nm@dwr`Chw6sv62J$+p)$D<$Qw~4oOIp_* zTujVB+k~RE95EBUF*#Xv&w2f^;Pb`5Voi&4x!6oXo$RaPtSR!b_t4Ewip2`*nyFvuS@ypHo$|qAxv`X)BVChNTS%Q|2`@hhJ-Q z4|~;nsr$&EC+*pZz|)yCU;m(y*ps{*P53CR-^{)&HEmIzplG(8QlZ(zZ|KufpMQqB ztkBbmEhttTRRfL)GG~Gijs-+ktIGkP<>MJ6ZC7@a7aKD+n#awl7hf$ciXJYxZ)>K z9@0P1z0`Ju*CW{Td%c5@lCbo_CE>@+7r=a0Qn7hM91d&a zprbDoFi$UW0ZG!;G1>Vw3nsh`E}_PpyK^oj67DBy3OkF6#AgM{5r73HhwEKVtftU% z)uKWLIVr9Z3&L6{ZVmsfJjjm*+m*obI@dvzC|*iWmy2l04)ijOy|ND~ljR&DWee4| zd=w|^H1mcuZr7t?Hi3uH6!`0m1HHtUDcDy`j?%e`II7a6U2&OIwEK$EQk36=yw{yu zpB;AX2$UsscB1yfL%ABj2EEDh5U>*<)1U0M>C4KKr?q?&Ofa?E#kxDx(PbnTM*Y}q zDF_ZwNI?shTY(gDz}mJbWLSGKwcEE`C>|~)Bpa?;lM5;_B<{YeDKDFqys69?WiDmN zhWb!*kLr~AWnIP{O81r`)anPdb#yld zVEWT?;ms9Nqwf>ol>J%ER$H}b@_cFyfn9p*NIn6_t{9mVI*FOV$c8{XK$i2jcTnza z5o0&x0eqrec?3I~bB<55;nXYdnK_5@e+7^gEYzu|nLFjlNvqfXXbPcNqOh}^k8guCJne zUo+r|d7vR5h#WS9qE-hVU zo7~W%CA&zO^!ev(O>%s;MwO9p3}f!k6=jBj@CLx+w#%~Y@0s@!{@dg?it(i;bjYP> z89v3guN*)9zDbJA1sf?wRF}qIv^|1a?N95%<;I6!Asevj;77Ivip`Sd5ui^{UKW<8 z5gd$zT0e$@j6d3Sg<-uH>=nO|)N-Mt%Ab1CY6zCqtt=vXII9eqDXZ9;jTmJUM!|79 z@8|M}8}2T~OOF|HFU~4YhmWLKwG$H1EwQ$h*M2V5IfrDbnFx+KWDkicU_Gu$BHh!7 zEM>2_O6|2s1zre7gp&kLsPG=dSfJ1qxX}_X-!0PKHQJjb5$!Mv;g@eyCIjtjd!B9C z%)_!yluJv>rmZJREw0N)DMg=ZEHTkEtjv_8On%0(b}Z*=glSZ&TW({?)&~~r4)kq) zqfwIWZsw#mKAfc5+40PzBDuDoM3W(E!Dn$6S8yJ3xywgO6h{hsZ^fcI;Z#kLp|nGA zJ)cHMkah0G{jXjbx^(9xs%XRdgnOO@$QC6&+OT zqHtas2R-+bKaC#vN@jX(Kr49eketW~8rOn^9F0H!-$WNw0|%r_R5jC}p*J!K`?e#4 z#cNBwx7>m2U4)|zc;#UX28{`9z6%is$2=^!iP`?&7<>^99CbU;gbVfB@e_k1fERn^ zjaE5u1mGCH&IAkAA)naO^1;yrH=78%vou)zd!Lm$?4veJe`WfbXZ8_K6#(mMvm+Uc zpgBCqZZQWdkZ7`7#wA8iW);XEWWwKp|YO$ZB;bG68D=wTY7sTn<`&EHp$UFt`m*KeY6KQYzB(lA({ z6e!|q8lcyq1N)Gm6i~KQOcuU}toYEGzs`;!PN)rQSbe;8OD#%z8sp}Vr=**us(R$> zu#VR{r|Vlf1N%}>56`>rH$3+?{nrSc&P8|*+0}lNGR1yk5@X4|GSem%FDy@^6T=LY zc`yE3oD=zR__J}Vfrs_W55fqj6wALJ=W!T)=abzHJs z@4jSBJ*Q=0jyxOHg6^0V5dUX~T=al>bbY^zDX&B_-1Yc>wNvy#QlGO4MhOcULn z6LfZmxI?kDW1~Z}^;jCodNF8Dq8E(zS(;0eq|P!j(^D!G&UbEZcJRMj-C+VhnD^WE z#mSAUm1(3{>86)8i6ZVSnH{Yq(GToDzP+BLofH%d;g7Db&bJkV*L_ zFh6^qb_eQ~zCF!%_UkuS!*>?~WR*9_(^MKl7MLvH0POd*3mI zj#ZdykG4oZZ~daJmsf_>`4(+fiqxYuCH|$|&Dn>1`-C|*bmwMi-`RqULLjG9`- z(E0k=^`LN&@kJ*7($Y!@+X-h#OaqV^FYTL74l=*ZQWNSx1oIHhx{)^QEO7%9u(Urt z5t`K!Ac_MB-F3r(7`GCHb8i3Rxa6GRlzjQ7^d+l3HMdheg$?}Tx1BZv?pVkUY zK5WKj^#sGqx+=arMSgLGJ$7xzT1R3SIUIs_IICx2o|~nx#N*z*+@dblNsoWO$c$SW zW}`aeq;0wXY1p1yVR!M2=+gE(gEH}w@p#YD;kxx|L18S2*LEygaGO98Sqav_FIM4ngudR<0Z@!6rJ$x zf3#3DEA*8lxB&aS@E(`W?Tr8tTLwfqlGketVy`? z7)8;HH>2W^6{?xS6+e|Cn@2(B8BUBBGMiV**Uj)-$*bg4F|m+Cnf(Zh3WhbMi$}`P z4>t2ZUH}W6SRvlR1dLn9H1sC@A<*zAN)dg>D(GK_osRV16oSKK5K1||4D;+<#&cdj zX$M{}<@{+SpUHv1|E>Cg2|7^BXh=y;Ve0sU&C(fa$R2ARCB8T2XW~vwHHlcL-UV5@ zapnBF%gO0|U!(oG*$%GsQ*@vhYzmMU zwFo`u5xLhg^7eRFJZyzBjUcv)$L7{wOd^@RgI+vkLEly-U&1;_<@nyJ9d;VkK?+ul zfAJ0fM;Ad}AVc1J-;ZU0S!Ij~g!ALQZTW&f`TBj}!r!g33*%tTEo$G~*7oB6;p{Er z+I+Tl;Tlk^v{-Q{E~P+lhvKdQf=h6Bx6 z_cGDnptwKbuT(}bV^#)uYcC{yFhRq_EmTJ8NDw! z2D38j;FzuK8`uXB%}ubKjcP?UX+r7_5~%0=2asi}&m7$3n$2;rzz`$wi)In=7ArRF zX}-|n@#mVR+Z$_u=u4#jm7_ST+1a}H$pH^D=cb@}clG-HMOt6)-8}rBfreAWtu-I! z_6P0XuI3e#=YbTG_lA+qXD9no2u0CecvGj-1cA>k`UMJPgdTYMgBD?`cs_r!{M(93 z@;(cjinnPPZ=I)UB#1f-uZ*N%Lp-mzq^F(}JiF5Sf-q~(2E+`ni`@m;3YW1a*Sk(; zWUj=$#X{qu$fa&bbTZ|n(a6y#9Ct;MYnjr@5vLj-9+B`x$55~{*e}X;=;fzj>MT$! z)0`$?3pK(AZX;b&CxbeQVv5vA11T6(H3O;W$=<3mvx*A(Zbyh(W}!Ev3b^{r+iO%~ z1rr__6K?=VPbSPU{uH9ff(sEL`ZUWCk;zdr*{^XrJuCbYsCWVE25%=+*A ztayrc&Kvx%saW*Lx*~)FFow4O7&#N3JWG#jy`=p}|-^C7^Pb0o0=${j|&iV5C2B&bKY z3uQ1X)GD?MOHr*zaM!$(#nrK&?-Lo8lV5)WX(K5EUsD;ao)164Eu~CS&J&Je&ZM_0 z)!rN!3npVs*!$Xb#HmUx;}dL&ExS+s+wsPhZ*?fdi%snF)D8?QX(yQL%pv=|ve3B^ z9#^D~#kmbvM_NtF1U8(Ptm)mN_PlRbOua=o$pZ)p^A`=3dPh%p5YRPC{!8x86H@%_ zVx~WVW15cV_`bqjJemP6V@=TzKV&+RTK_D~Q`vCp3I+m&J#pC7n^m3S>}j%&I>$O- zpY(EMSa#4gp&ULJ(TwJ1ilvQB68TM-K~ka65$aUW8-!2i-%*_S7?=R?9Dqa*Jq`7? zs2u#iPaG0w;ChaR#kI0@E?{bYHPFvUnzgnc7);KBJX~7)Gnl`<0iO)842=5h8eI() zUce_lD=N`bPUt`e@2A0k)*IG|m;HeE=U;G~c6J+ev!6VzP^WTbUL2cRq>J&}#yMGv zxhwM74pj66E1@5hkGF-*4Jx&cq8o#wrLxxU7((OdMu*NdqX?SNjMv|k5r9yP!4J+9 zk{WeEDVJaOW`E#O*~<(4ux%&h)ul>-Y4rvb$vI2z={>)4+dGpW6lAAZbM?-%ns50+ z&_v0uSz+8eum;%d8R(uILljia=0`H7)`;Bme#s>1CbN8?J$$&mcsc(Rdi{u8WLKWQ zk&FC@-0v8!E@!rqkH}?T(dp4cAa_8-20vKoCv@K|p;k0<0i(^mz2adE=_=vjBzyf# z#wPy<+xyRX<4Y9V+XTdFk~+-RFNm@WGys^2Liy&pWLkz2)mgpkV!nH7`P~RS6DBb)AYkdpR;nF7k2TOvN661S2cs| zOSV&zndzwfj7_MN=lU%sFq5Tf&E=bKO{2$IXeW(PSuD{#9I{O^*`$w7405P4<(U` z^7Mo-O;m7VZxy@FKx`Edb4<&?fV}?O5)J10q(?3py=BL2;e?nQm1`Di>6KU^sroDdaUeQNrR#AlOpP(6TMA3Q0x9IIH)PcHctKW{MH~ zqnRucFxR!}s0C%Qs_RP>*fxqxgFN253&Ilt3mHvhamnKvs{!rO3-XIImRV(*0mtEO zO`2buOfIZs)9hG&!LO*4zbnL;N5%9=SNKR9?9R_w&iD79)R)k#u|dhJYq}kC1#XP* zs9S=Y8%izlx)9|XUsp)Z1XYZo> zevHId+m(uE{aAk`f??|=Ab=^qumX9Sn5)|YSGlngK5*$cBd*?LM&B~|UNq^da`pP}+zT*FWL zjuU1`S99OHv}>ki--h4bnv*p>Wph%XWocvl)_)Ib_w~}&Z*Kj1dBF*6L<>0-hf6nyvFix0M+2RvqRnt2k;W)UjUUbi#Nsy7m@a zYZjyK(k2%g_ub#@s05?KOTKS<&J>D-b#>6MF_#Gg94)E=gp7LzM)dTc4Q~+@dDxt4 z(0O+^fV1C8Qz}zR6n{Pmj`WaN!bDZf+dujV|5TzOo))Sz zCwqWNl&IBXsYCS)uaZ38C7jD5c+&-LfXUD+VfK?YByKSrK)j(*O#{#@q52gu%~Yup z6Sx#!(57#aEBpf7!yp&+6C7yK{aC{Ap+}@K8ZL!T z{S+Fi4!iTHWH&CH&#OgCWiB$4n(9{w+ z6{jsM2;`&9cC#wHWqhxcEI(%i5I)Ry93mf!1P3Rr+m?6Ijc`fa;@wpjk z>$f(8p3d1*QhhZN|6VfFI}=&&xl^>VvW8qHiRj2k*u+`nlrz&>nsynWgpWdU_4?ga zd3Dayc{6S~DJg#Gc+RS-V4=jb-pT7>#xMu!KTTK>Uq0|^_^>Gv>Nx%amo}nN5G8{9 zFDZRb^A82lr*A~D-`Q>(kxsuaZL|fDx${JR+aWnWt#op&S1$ zPv{1aWAQ1pukZdQE~aBrx$n9{)1WJ8I>mZ{2gxcn=<5()bSu7L;<3?{~Ih>&NIYo!vT0+AbHx>>W_?a7}a&T?O1g_H;6EC z+8<_eI%)Dx+!~n}a7Xc4hdsbphPM1K5}azARGUSkb^VW)5H}=T#c1~6oOUGRIqG?y zeElba*=o60dkBw{ZiU}r?eL^wuXLH#%)D9%5CaE}d-=&4CI^MqGNPZ(s606(nZ!I# z>0a@XZ^|A+t5-45PNcC3t!|AB;ZCpKHS&!rKPbLzE!9$S0VP!{@R4&&Hqmni@`Faq zSByrj=K7yk`q+}_p*c&1nKs?eF*IFV^Ac7pQH@=h^+;blElnL^9zt{5)+#N5%<+{a zh9#4JM|MW|gR~${$fqg`dO7v_R@Q8lD)pJ1#+!F+wAC6(?_y9)J(Wf(cG~#KRmE>P zIWw?U4+sWZX>l0`7bf2kdak9&C-S*qTpX6i@0ZIto%fCd*pQbg3hEE{Viy;y9L0>O zS65zPp+|ftJXJ_RF0H71?j~7Kdo`VVr~~T{k8224lScaM7+K(Z3>&zXeFVI2Bt`6} zC%?s_Fcfia>9qhejJXkG0!*caS!3jtikJ_=AAZ1P6>^*u}S$(Uah{c{+Oja2B z&F|ynQe0n8i^NNEg>A0xs-L4}uez?K$Yb-DO0WxtvF5c7?`JEX=IGP4a`H$s%qI3o z#~+HU>lA+n+sSOcO=1fi+4rs{<#f&2VyUtA6L2f=nVg)K)3dcbF$F~S`qoHNeS1U3 zVNGYop>I1h_wGse92SH%o(Lx7Cl4Wb`HY-5bPrBR_s3Pvsvfu#9#+up2Nkx~`t=59 zQcEU&UO!=?c%R}oP-7M80Uw1M|J0D<31qx{5|p|6(?T`F426@v#(qj-{g`E3Ebzw% z>!f!-0$1WxYgCGqyf_LrBZP|kom7>w7>ZvAa+NOTbyJ$kWPoW;%Uy{w>QC2SDAd_0 zsP}jBD0e2B&mntwc4)!8WVQM>YJ-su*H&N(ZQz>w8M1C zGJ-2L;TycGpX}u0Nj!gx&5LIe2w?$$N3cQv~ANVkL#^m5H;8r-5^ z!KdG@e+i7=n_H%-gC#iKwLCB;oMR0P2X(jvmDge>Ly!b0c-cQB$N>Qj+BBFRp|N>Y z;dL~rq~ERLD<2@Y$IAwBmG|9|KKK6j3o&`3zkqGh}Q|tEYon4#x!G?0;E_B(U;wc6Q%t3NlY4dE)0LvsvBUe-!4I znpT4t(Lph?# zS3{&sjXj8%1V#o|pA96YjFuEtB+Mn@TORDhk7VJ`PK_6>|DycZx}4SFr$?(8kfQyI zLCqG$RLLGOKGB*IaT zGdN^O$G2vU>+ij@mS#3Xt|SK8ODxJIc+q|a7h18DvU{Qtm_TGn2V@IuW6hvQK^c^q}5Ek<4BFi#T4e1`gR}3$uWxw$6RaDt7{%Ns%(A zLwm7^-fS$vd&^{<_;=7jYVmLE3beU6v!!+ov`g{hQW zfU@?4Y@;^ES@ejUoIY1SiKtcZe{a@dpErl9h%|0!*3-3RbaeJSa$Y%)9+)Z1p@2c03 z+^^`*-mKI=V{_7$WQiVHIkpD0G%`l$I;vFa^hDG`D^#rJ`0~9ClF!IyXtiuqt+>n5 zJX(6Bhd~g0Q!@*Kd0=+puUYL>yZwZAs!XSKi_#@tO$YCTIvGNKf8dDU>8JM-t}+`r z-=LM1G8cO#K^U9uRYaRZdx`P}*|Bjj6F?AzW(!|rZ+$4anF{rwtJFHbq!>8o-IBK@ z(!jy3DW~QemnVI){dxH85~gb!F>H*{%+Hu#?gu)~PS?}8O`ofVz0?rzt*K2XnR*CA zf9^4w8CN=;Z0b^=%@<7;zmMWRw6u6WHnzS74ZBt-K|mJAA(!DVLuw`Zk4;PA{MZ4Tl+ae77O$tObX8CG=IeuFI#xKwzp?}w8m$UcS z?UQ1X>Pwsn{Sh$lbXp3xwkE~01>wHzbf;@~cf*LQuZDe9F>RD|o-ACE(SZ6zXYl-~ z767uY36qgxetZ5)+P6VPeQ*y<2uF#i_~ylctQxIuoLvUrhM8lXCf5!-jpGy38$%9L|3l~V>ePz1M=K@bASylOWyT>9 z*lx&0<$V`(VLF=Hy|OVgV?KZOVl#XX;@@-GC5QV;t*>-S&epWNTRe>~YoMlv>-iq% zMZRxc@;MXt1wM-pXcgqq7uGidVeH`43UNKR;f~^mw5c4@y3m5La`xyRlvfPTwl#flu|QEAvaB3mII#&;05_%mEz5C;}z{Ea;g8Rpu8#>65;L5HK=7H z4Y7-vF6oQ#D(?=vJ8I{t9JtA28_yyhU@zj3LgX%tW_@6J5w~N;ShDNE>X%$VZ)-7& z(QR@fCQ5=x`{Ul1qtwZ7&b8g8R+Da`%p(te3LK`j)zZ;Nal%`uu~BMBhz~&v{>-;b zHp>jys2@iZ2O(%`4&Se3<9!97VMwx;<>|@u)W(bD8??nQoWe7a`Ka-w#_Ys{&=6a5 zS^ETSw?M3#2Duo$$sDal%}sfEAjC|(5{3NjTjR8VI(W}n+aVf}IM-)UR=pUmR4K?H zUY^>Nbn!l4!XD8RCTS^g&$ZxL!l~#bHeq zjm0L_lk(nA#HCy^HK2lkXAdl#rF%iP`-+}7FMi_pL$|wsRQ)iS;Im2*d^@Pt|E|)~ z&ML{^dcz*1-5l(b z4>TjX9Ej`Z%Rh8TH%zu!JZY`vpy@V8-dH`=a;)|YN%Xpe<%luMzRCk#zqSFjeP*tG zYnGIsi*_oq@PV{ONEhPdXe=&SmA1aIwx-(R9aAglqwaP-VJHFX`8nKt=7vLM{pO-| zI3^laH$4K|CI}53dq>)~4>d6e;aH(8E7yNM>!MvyX_S7169l090c|bE`co^n+=(Ci zG0;3b8w(o|jUuv=UHC{c?MQO~3lk=%Oe(RG_g%E8lP2gK%J^hESopyp;deqZ*u@w~ z`?e&{^iY3iW}Laji#V?sb%xfzApzl4bNh+*A5n50Q3M1VKB*48c-9bu2rb)_*W8Fw zA-K~XxQGnjch@hN$It)qfFn%hs}q{5Ir96!3_j1?_afxe=L~dT+eYxFl0k=HF^CjM zMy~18W>Fz-CP#XqY58{V~3H zYRD6rtg6D5EBVqGGtpM}YD&`WhOBbUip9JSmi^1Bc%%i?jq`9aco@QElqUn@R%IhL z-#}Qm_OraQ2^#yP+0ZrAoRuU>xj*Gz4Vj#?5`LR9hFQyx@bPjOb>Uyao2MjB^}all z(XRhd`-ZA1jq(PFUJvG^{cb&wCjLIM;g#GQbdi zQ_-X4joR?M>TEiv!c&mH%@YEq>T$Le*X@wLtP19d{M?J~8{l@9wW(IBtGfB0cT3dy zfAYNcwZrRpHq%0aZqv>#+jVmGKei6mH(aOW??T1rb*oyDj%%J3PRPJbo}%=vKcQ#z zOiu@U(;5#zJddAw<;`Z0WKiwije-{qH+w2#z#`11VimtzzV=#QsM>S1FC^bcXO3Pg zW}MZaS^_2N+P50Di$NL`fXN?#Gs8n130xYhO-EBcvY}?$McJFT{vf~Y5TUFvN!q_u zD~i_+2rFqvdSQOzusr2D;u6*8_$ zJa=C)=n6_jg4a4*;Y@@tT}@Bk?+D9jidLNL2hBclF32e+QcvH_R@h->%dkxX*xF+- z+`?=`ro!}6{o*y*l{Ht5tCb2ehE>zkc)n`tV*cuO_Lq#W(VmpC!U#S@!KV0uQ7zje z-4}lav&;@BP8-@&1}Pk^v(ydX_{=mqcw6tnv*TF_Ly6RQ$py)&f;Xxy-|vdGl%9C0 zdY{Q+Q)`BU%Sf0iE(d}YTOw323f@lv}> zsZ$~~oTwqgjEsL+_@(>Q)3pZ^I$~iCweV4x`UU(are}I#@3kt!l_ZSDDX|?)P2Elatg*XBkomRzgsRRB>ppGS;$nKHWGS<{_TM3lGZKz84suMct z>C2|rJB$4KTaG9r1rbhEk!q?aXXe5z=V7pOA+2-J_2=kwly+b0_a8d4EV{H?^`n}r ztZB%JsXn_{)f^DMvg&p%S9V*ZrdLJBRtGnhwux)WzgpzNBPg`%&NAj$;0}uf$^<`{ zpP(p``6y|c08y#b`DF*QnTo)_6OAyw5pua0`t8eK3H000h9~tE&|b}E-#~r-q{gVS zM*l_i2^9H?fv`-IIvq#R{FZ-TzLB3EZ8~1+M2*X`lR#XF8)?G|7qEzjGboAoU8HVm zTB3FLOrNKNxGX73zTGs=Nq6>bmCyE$l&QTAq}Cn^rar7h$Qw5c_YzJL*wID2fF%QR zFBjo-Z=Ap9dmXUnX_H*b`Q&iJ64dA=gFLD*kcuNW=IBzn=VR63Vnn=`6wHzQB_z6u z`SNx>(vDYrj^uGZAsX{N()(R$-j6~4;T6wiuZci$QW!7DO1o( z2n&42dvzO2;ZwZ58()y5ZD~8QwZqd;2jFILo|XdJHR+o%HNZMA_Y%96&RN9n7hWKiZ0SXY1=@?H zX9&NJ5Bf@51n?1FD39=3{fB>nphr169EIO*Wc%xlWb?PY6Cu}8;ysi!j#f-H%Oh4Z z5e$oy_arc4P%2gvSfCvTR?LLfY85*Blm*4dg*(Mhc=7K>^ia_ee-ydHGtLvNDMoh2 zd7Wo)C&!kO#zoB>pSIU4c@l$P19IkX9eCAj+*tQ-!GQaS&t&-(1LIDhpt&;iK*-zgB)o;PzG&fjm3ko34!0| z7J_?iXo%707=;CprY!du1~l=8R66Lnkv7Rx|9hWzzLwm(ZaNM zI%&qp@YNe>KPeONx6#fLR(nVOa8fzYFLVj=H1q$qcUU$X@ct2BO;3{=bgTLJ-^o$U zOp)m5W&60QHfQ^YG?VWnkdh)SKTlO!rR@05K#3-gHW@d;X0=ys{>dDM(FKZy?W`z4 znW7qIbf$YlMYXO!OId{MhrB`zR^zv*x38nc zc5;;f;8SB7FZUgD&r^#gu?5cKX}zhb4W1b>fYdDaXso#Esd{b~?ZK_%7x|A?4z>d# z^@tMJSfU1Ic(g)i&hxN+<%HWnT8`4p;;wDSF2R+1{<%`Sj%vOQVR234Ey?J{ z>xutjWQZ5|>r6*G6?7js&XfB|zGtZ%S_RZkNS5?S z+Z1EUlJD{Gj*)8b9#{4FT>XY_)WPM#aZHZ=J_gjEIN51R7$(J?l4B{16&rRDc}@v! z5jH5?*rkdaMjMH0VKRNx>Pny<$Fm8P)Vp6X@ntrhekocgxR^`&CSN5_EwOCxP^r}9 z`K@V+CCW^mA9MF{!OOwyqRzop(|kFtHi&~px(yehoI=cTK3Ny;?u11FsH$V6AUy9+ z?4L%PpQG}4L2}i~G5&)X#{h%9ypO0+t z>zqtyF(($sjXrm_kCRgBmsj!W6>_2WdibtcL5ciT}?NZ#2ywe2{Tx|&^ z2n!3sJ^&^;cGUDtpL`ltz!;b~a=c3J@YA?Ic({t5@I8V-x4N?-*>~G^o+l#dOQqmT zCXuwuV1yIqCRx|gQ&D3J5qp5o99&;LE#Bp)j`H=+w`Xy?(@IUuNmhgns6*r@4&nu| zTn2MO_-xTF7107c8d@vDAi^s;f`8TD5WBsn?~{?h=7;6-+(N6c2e7NX_|^ziw%lY zYMMmq_B>`^xk?i38dQ5(yE2)_LoZw_?*Yd{0QkI*n({9q(qc5i_*&klA~?1OB2K0z zpw#A4A0qMGJK|6WdVo{Q;Z*ZjcBP#r!zZ`2_b$2&p8x)aaQ2jA)19O*jvC*p6!k@4Iw^2*w|~=Ta(I)Ep6{pTB~; zhQB@usZeZAelXo6Pzs0m8v3NE1|)RvQ2ZKPFUzEs=9do!bI{<>I#KuDeO21WjVH0y z5ao6^0+jUlRdp6A%R^rFauIA|(U&rnTGjFRmB_xiEw;?yumKPnMKAu6j*XWuLDEo` zy8G=Vl5h9z2OV4{^6beE3ZGLH5-OXxTPb65UM*SNvYzlb*+>pmYR6hKk*^L~f<9dW zr}&|$7HossI-+kt9j`F6Tg&O;o(X}z`}QAN^rv--wwkk`QJ$A@s9pDl)`b9@cIO{N zp2zl0>6>*98W<%mww3R2QFpZqx!t_loOAkteOp`l+n#A& zJ98~;w9mLDCSAv!SpQ3$9 zUjZEkBzD!a}{Uj8lUTaAv&e@EnhPIynko#J#rI*5wgKf ze_+{nNSbmDUzCencu_K`aNSN+C=ArR6#=uKN=*)qeEOXcn zuAX`+j|geK=x@*lY9m{^>IcUd#4|1PQ>kILnAWvPy&|nhydEn%>u`|Sl+|KzTz)q@ zKF#QT$+7KAZIAF9dr)KlaIzj(IzzpIx|0n}|Us)Ypt=@NB;M9yjZH zHW?&od*>S;A{28b!0j~yq1Rm*hUUSWojpiM_FnwKKIX=$@tpa>bP~Sl#T@HxcI@wB zt5l08Ij0uM0!I!ZL(4Y31A@A2PR7c8HzDgi5hehG+4uWcq=^Svk~=$POC&(wlm=C+ zDkxYX^T*+=;Q8jNyQ)rCP_#7@EQP%56|=`?b;+w1>4_ClFpoAj&=IzYAl$-~zZm|j zrV(N(zcW7u1$168_B;!m7k_kppw9SGB0??90%JoFFC26tZ& z{*I5ETSqR96|5R$)^Q7K%!urKQ+{|j%M_x_ktbQoNCU>m2A2~+Q{ylmZbo=MCue4% zREY?_8e{pIC44z}g(s{3F*Zr(ScKQnz)-cgCTQMrLg|Gb8utE@s^&BM7LQV@+ z07bP#Tf0=*JYReBCwifqnW}IDrAEMeENs53*%8_^)#X&#C^Mfu?tMnXMh%Ld86sk0 z)A@S4tA(u&>O6?Jl4`rL3g;YFa`An-^G6)!mXL)0HTOVw=On zgG-XQeMH!6F-bZ|H>#S03g>Oe`f9_-ka{sN$?H1rP^5HkY5ub(=E5l2X7ZF7_-qf@ zbhf|?vN(X$35M8LLAcgfjo0hAM~2SF6hZJOY$t+?6ii$MY*l5It=W1>O~2oiS$XPK z#Apn-?m*h5>S51g>}!C`_E6*XEPa7IeqqW43b(BLkpOuXZrSrdF{rgc`re_ny3$U4 z%P`Ynp6!AC>6B|%1E}YDP0BaD)IR*pgi-*%!Mh)bKz%5X2X4(~-_MZC&x0^SQNDhW z{cEYeD?BEGDf|xW6IqFV{75QxS)qaP7_k%j&xl=gbo9{avZqGF7+JfY!sgbNEB4~I z^W$?%p%W{PLk!Bd@|JNv>ccIh;YN)9nfR5Y*44P8P@W_ZGiyRr(i-O}Vy>81rZVD1^7AWvicE5hMvT(&Y&1 z5H2o`?QjQK=tpA5m7&j*v8K9-r$J^gBJsMKU=lr7SdDR;2hFB$F?+XpgtqB4AKf<57!z z0n>cS!F<}uwQA00(E}3bZRDu*4R(`_*zd8#Tj#c8>a#9-`hs&_pL7}sA`h!ht71Kq z?;wlm{qDFDojbpR*PlU<5&IIQ|7wTN&cydU6VqQMp~kFWMVt08t?3G zb1Hz@SVjcv9!Mz6@aRNih`COE`n&*Zm2Js{sj7Q_H(B#f zx1~&yQ7}t-?%jYMh0Um>S%oX$$_xWh7lm?X@bem(3+ zV7VVqxw;}hK)mH#djavLANevn&8Qpv_ysdMIDE{>0l4ku>5}Ru28Pk@@V4q*2rW=Wxl*`koFaS3_Oa+CppWV& z<@ebY3%RIYoO2=)X*emF*a6RwoT_=2sjMq?L#wX(iX zj!@cthd=&Z-(_X<(U9EyBW_LMQ26*!G0xi^{!d^K!R`d~Ac`qD8BZDbe9Ej83wdSx zJL}HyGZ!~EB2!c^9(`+MXtt)%lmsV?ot+)D50ZA zl)e5c*!%IztN}Lq6_mgNi0UmZox2v1qRoz)cUG*Yp@LncOofhqdcCxUpk>+GYQ3>b zU;SKB^5Mp;&FobV(?w9!&d>ImFGjC@GGi~a(Lf!T(9Z$Joz=A(p(_D)sx@qZn!r!d zL*G)1+f$_YuLCe3`-Z=wzV@A+a@C*wtbr9w*p6q(r0O?eUN?9Nt2N6bV+Qj+Wgt^u zpoe3_ZE<1kdNm#Xjqyc&amLjtXw#v@Kz~mGvbSn2T!@?`w+K!eUXf_=saV2xnZB2m zxK(62eZN=@Y>tU!?F8uiHF=K_gr4gP&OzLp+TU85uH6-2rvY&NJ`r<6I%k^o^eJv# zZ}plt!2Tqo&_4KCq>6fKRJ|>qOnB|6b)b&5GZV9QS1KlwK!M5Yk1JR`XzsUYS7x|-M1v_rk%)ccYIY>WSLS4SR;}`C@Ty{2I-+k7o z?Mz|$V_VeiP(hiban39lL;2hlFzkZQ8t|$UlN-AoL2xN6 zS3qp2&QBM^3L{&Uf=Z0Rl}p8;bH}*2Nw-B=ZDa1HzJf#cFsNtMB;e^3%lOc2e|n{=AxR8rno}_J$JWF{1||hggHMFt=jFqE%??ek+A? zaK2kRaz9^f)NO_`){&BqH4}3+6Xn(6QA-Pa4dqUIKWb!-BJf>%ev(EZ3P_=ECc;Bu z&)mD4tktC&taJhUergT|qxB4ISXs__OE+H}CU%GDL&1Haook_hI5_u7^J;r2*AY6`aCP0sw~5Y&APp*_>A3c22PuzDlY`BJeYpd&5-)kyxOBxd~nt2 zsk=>a|2_k%I(1;RJd`ws@?E^faF!Wh9vMqVjV=}_SP_u=iOI27f+W0fvkc3|00f#M zm$ztXZ`V&tON+cs8CF?X`z5e@dauJY`f}hS{kCPBHI9F&GViE$IsOa^Nt!t`yT`0B z6T1PyXqgJ$Y!aa~=NIZa%heM`JI++Sa_6?(+WE_RUDhv&++UfBxrrrta>9EF`nC(|2>5-?pUs^YlCFsA^78zkGPS`;A+FVT)FD!Ac_>Wf+M)hS^`;Pufk z!cMoP4y&?plZK)vNC#yVU4clTTJp%Q3aWeI$V?aq!d3IP=MV$$n6$&lJKnwVGoxQfbs$oq4f();g@44N2Q? z$;&zXx;L-G!tW(*qwAjtHu_UCtWTNJCISp;!$Fe-q9nL7S-2{^y`6&CKNo-m1bOtNxNju!fwZxO2FZDQI-Rrd#r zm{1e`(6~k>eZ7oiq~VBYtZ3LzQ{5Q38OxkpZL6XfIvh_HJ7*aRF*kQvo#hXf*2PI0 z@gEL1bC?`H49zt85qe$KVnme<%=pyRk_u5TqPP$Gtt_K;xUX^|f;7%wyEOh%^`9Wr zd$2A_;Pn$yLXt@VwLJL0Q@u!xhBCMEzth;AI+L#wt~CXLTcdV1vf$@Yyf<>A#)|HjTY zy_270ua^Tr?fw$43|~_@zduljrtafR<#Cmi9M$dG4a0*fPk(4x^49WlYe2BD@CKrZ z1(P-KO>OrctlQm)hHZB&mga{9jm=-a^_s1>6Lz3+G%kcvkZg+LKM>@F#~`8EY+E??7nprR=E2ihX0KVUipU4+XBeL9 z)GO&WQchRM57c#9+B`&uARUWPWPd0tK?2p}=+C*Wz55>IonP3ZSnnFZS&V|3RSIQg zdpG`E4B%u+!bNN9_iDb4#n4qvHwwb(sv3lX!hd-_6diJ%hr`5O&%KN);Yj7@iFqB! zV}@K6b+O|N@Nks~E-V4hi=pHbGhNY3i2Qdg0K*HnX=$}?$u5Tq|216%kt9-~_V2u! z1;R(dHT%Lxrq>?qk3cqixtP8GNVr~mBwYXRl#H$*f}Fo24gcPY1M#C~$o1U|Jy+<^ zt>(YLuS1YjH!JFSr`3_c>#z6SvPYv2o*FlE_+-7NAPXh0r9p{oY5Bwad^J?hQiZl6 z(8BF19wSN#c0{cas;iwu6U)?@mzdTpS!{0w8QJI0X^`{c+jT9q9s9xcEdx=&idk2_ zA#cc$c?T^P9cLUM7(tp>x|?U|-NL~&DJ#a@=UEfjxtpCoNdrpJkL8U#UZt!r?1Q;U z{kDqGGR5YnQV#%v<`<}4nVFmMTm|drmiFk&ji*0D5GeuakfvhKx)24dfvUukYh)Vw z`g$X|3w$arr%9;_@n%3r0E8ijy@vj@W`+}~Ode5+QcyqpCsH*Ozf@_eu1=cjW$?M{ z!SZ!mb0~zy+#$-?b+9RwX0H{Rv|lUY8_y5dNz1GLCb9cfN3({IApLw>1Agy+v2-Q_ z-D@4a*=RSPYCi3l*V9ZMmu43JUFLuI2M%q0c?EU*nj3+cECdU)m^tKbP# z&UqQH`V(9F8TF?ZqOniRo){-(l_!@RR8&;>4*D*ScU&&C*15VXYEFOJJK#3AGv936 z%J4pL9%*BD-QBsYyH+tFr$#f+LUwA}4d`GA7fCGcnKi!@B|D|Fok&z;I}vZJt-@A* zCM$wU|CHwIi^T6Zua((OP$?|m&>Z2uP>=LMvltb{!=q~Pc)gFLy<=P`q5aQ8o%R1| z67cWs1F(6XKE;H=(S@tiV?Mpl5Wd0mNAL{G2DOu_alzS zeu=E;DorX|T(zAMb6eM~3&!^N_1IxJfBV%mDe0xdUA7{1j z|2RcP$*gBp8o*~PFA-BWhz*>AssG!GB0Y}q%m`krPydWjvR%2m&A*ya^5ENcJJ!Xs z^0TsW%JT5IMQ*n_s>coZ|C^owCZgZ$;JHEg4BRerYC%0xfLF6T=Y>AUV}}-071O2v zY8ZG*_tkj)ihYW`HRW+h*!uN)2R@Lwdk1PX&sfH3JU)o;r~TVv{57Vc2x2F2zVk__ zcrTWZr=^F-6+S5gLcXJaM121i{Pi3F`PW}`2tDn*qEeRp{6W`XfK!xL*D&C#dVGmDG84ejU5Wo2cp6q;qp#sA)g!_tf3kdWgI z7JtI=@$oHRMq2~aR^`XF%?b8?Fa}00Nd599-$TFy^k49>->a4SYm)!=;6a4gGa<~n zgz4((MZWT;VggU63T?6fX?YeOfni4iIXz5x6xct-qlPR$WuIr_TLL3}ta`Ln{-=g| z5{QNogs=X47vHkud*T020+zvzSk2LN2lx6)W3YR4#0~_pdj@>WV3_rFh1@eUcGsHe0ZFm zz-I)AU8?^9v7SKa9OwVI#sLU{rVDTl&;37w{`5~%F{27;dJ!0%z7Sf}#K7Wp_fm>r zvKl1zE=#KWwx$0_ll>&(|BHJu2kv7vD92!YXA_A2Wki1MwWzc-!mbPj znoo3S6ZYC5UAZ7tC=(ng2Rthx)~`IxplP7p&4&_pSdIT+!+3}5M!9XDGjLq`zi4~w zs3^a-ZP=hxLP8iiMmmS?ks2B#1qos3kd_XShM~KqML25P#UK!akP6{jWi#hNi;d`kN%SjJv+ z-2jv!A@GLhWElUr@{X-GGu1o?Yk?9gH*wN6a+f;5n?I*1NjsQ^&+1EOBQYH2cI|9y9KLoz8L?$uXjLP5Z<7-3x8ERYu>*zd} zKz^-jUfGq?&%Ub`{#i}>wyyzy)tZ0Q#-CO9g(oTN|Jg$zqmg+tT!Es9)zPQU;QAn4 z^QVIuh6BS5zYC4ak0!hb(s8-z2{}Y5I;MJ__?Hj{RGShu)bN$x)-ao6D*OqLltzrG{?4Q;N2V0`*pkN*?s}x$dIE4orfDc(-+0CnDf6|EBn*? zN*Na|>YmO7p;#NySiG-P>i?=#mQ&xk{whxYZl-_M+ST&@JLjp#*ZBTtC+Xz^rY$E% z81|^^Dt(10S*f)nv*$dp-k4n<9a|5`yi%qSs@kR<3!9zNa{H)5Id3A=#NbYUw56=P z($~guYuy144kW`y7pB0O+uvYTT?(P=1U}PIRlc3j+tqCecQVHwMA+-r?S86>>Dnfh zXW;kvnNkj~}D5q$Nq zilbSnJu$>v=oOI6r?=mdL-F(TPJ0LAmxm45?it*qr^;xy_xNvc)ckH;m3dsWs3Y!K z=}*^PYHRttGS>T&0pdK|j|Y_ReR<>aI0W|V)W?(eV}GKqDdIhQ*GQW8laVczfwDV8 zNRy|iJ`H4|48G55y{MZ95O^~DlR@9DiqZ>?TrwdeYY~Zy%f+g6oPC7zbCp2&L#cr23$=$JwH(|?p{NzYK zcWbM(>pSE>X0yPfI989+DHEcbm_7Duv$8{mva_d(k4VMt?DckCU~dQ&9YiG3YI6zB z9tF_ufBAa4KJumpU#l_N*USlRr0|KZR~}J2(3hUjhcfWe-h-vQ>=npiW1bWOQwZ1q zu|romI(zt}U@WTEO@Yn5Vgm}UiXAPIqBSRW#e>HY^4E|S?DT_a{>co zsL{V?3}D*TL`Qzvd3GQ?oC{rb8*QqsmV#MRc^f@xpnMB8mhX`1TeHChy5S^v!qmR5oDE|tWmjS(s(U^qMOZ^*zLxf`a*Eh%# zHNE%;tgft{HvIjD{>C2}ipUD3KTtdU2Ne&!fmvsz%zr-o4y(D_4{{BnS@Gc8U)k^D zT}~$RjD7dxcO;w;QS{DrZKbn^@R!{i#~$HJp*hcupv!H_mT;X53aUvN;L6p@r@rjJ zUAUpEYDz5f#qx`FK^@Wrz?^3gSX!!cn~svZZNQTU>y{~CsaTc-;_Okt~ zzjUQtOPeadu(3h6;nKg(ovNpn-O>ADvTyW2aQK&GmAVAay8vdqKzg#=j_$bCjP4N6 ziMo_P($cJ5lH$c1k6UWB4bK55Rw&6rO=Sc#~S^P{VW_O(+ z3-uy0%Ashq4dBM7?t|*}B!U=cej+PQpDCqZFvEswiLTe{SpAh5sk=BcqAwu}t{-b1 zF^8I|b?XQvio2Ql9&D5im`z-KKX`a@_Ih!^V%5};avE&KR*ut1X}r*1cNN4FI0^~6 zUZ+U7(VB_Aww_H}97{ZrhquFR->ncgRgnm@3p|x@3rxECY05}e*DJES+VoqXZKPgj zuqqXCa-GUqJzCBSuJg&e^9m=Ys{QGvCo=VGifcV_zqkC0iqQ@XsO3 z(`|M|57BWM;QBt!7w9G`p?8I{afsLF`_K_b?t4#k^UCn+U$uy=zbA~(C`0~8bZGYJ zDA`K#en8{2D(~C=-I|T#GqsBIt)h3ixapNue>4xj9+0V{5`Tr{>|A^;GfNTbo zQfs>x|JoS4ANaJbVypPvD9Oo1{Dy)VM#UYrJf`XpW|v*)sJC`ifvraXU4`Msn~BsO zRDJQI8J}>UYZP3dPL&8jY|&-wB!Xaau_cmL7tQhsEZ+NLYA<7Btd}BkZlmC_Dz3OV z0D5^8vO*$^++k2-#(?yTB(w>9qwkf>0E$DyFF}x>OGIn0Le{lm1<~^`U^)|ZV&Ufn zr_WL$efST)ZqZcWs2(Z|P`PeBT{pc25Fe}F#1fq`%jTu^QMJUr5>$Cbr~OETmLf}r z5QBP3S;hK$WJMCrNO1R<70-_Oi^?8)&MDJbhatJVCqdol1(QJr9kOm;LpX=^N*-XL zt8w6zhxZzub_oaj>rGtcrMo|z-Xj3wcSRSBX?=bDb9p2I!_c~)GK{9JUgR=V)01m27QVhn!$_oBUBMEF42qHt06ln`st*f(kj4)f$)R`F@)8 zb)LAo$QZiBE;sa}Tf~E5%B3?LstL-Mk3&Npyo-F#GaH9o$qG{mbaYgV8EYaU>p)~h zCy14#t}wEeqTq;A!|%$qWF_x;+T4CvG115Ll-SZl7Xv#t!;z2!sD9o#hjAGZ4v!X1 zTYnZXs(@CgQxnZtH+|=Z$qBzaO+sS!qmR&+8}IC_J5IsBz0~iNy%Cyzx`1)#n=Wj; z7#mLm%%vrL7>LvIhwVG&?n-@${Z=MUA>xi_hL?aRPRn`Ta-{^PQ!kRiRh|?L7yM|m z0tAdQ6X8iRPli_lQjGw_`_fJvrt6mP~lmMBi`_OGXFfGCnb->a+qhR4n-0z2!p2Go9{)Ja1FtRho}x{a#(KtI!B@@&{x-o z!CcDj{W!DvF>%a{l93s0fNG(yT(}E)vd69d3FZ>k`wZ%;zM&1WI@O1Q_To0Pcxp6 zI&~cSh%tsoYwzc-le>w zQxCJzP26EDY7_s+ENv-9Hnm}Lc{wJV_tY)bf#R-@278_d-jLh9Vc411mgpoGcXWE% z6c_3)9+XEB`f&{}fG$5uzueGX`HSGus<8(#eq~0D5?JDK2SnQP6La)2o9V-V=z1df9MPxtpT*R*B5PsUmcJ zKLI-#=}jQGM0)xm+_H75FC{{}WtMtp!5@E2@zdqE11O%52n@;=R%-N9*O3(buJua` zj+V|w2!sRHjVyN&vY`Q$Z~_$a!+OB`2#e)s9#67rH+C}G;LO+&)|N7(kbvyfkr)enuj+&RBxMymxGVyhw&O?hw`Ak#|gHv(F_#Z z0HpK8LNbo^A5s&D#{xE8vf0O8S%%zHm~cx^Wi~Thw>4$}KkP;HHfiSksP}D(+&6G+ z2%X2At*!sq8ep#weuImZ`R3_w!i`rCug1}P-sq8FUs8L1CD>NK-GYBP$U0G-*`;P@bhICJ?`k76Y!_LVbXAd zV9c4MS-Sn-S7{&)2=xkL>$xci6c`4LS7ER?kwp<_@@mAWtX3E8nqicnC3yZd^ zzr`jFvOY5#QF#f6B?>=I8Rz8Gu{UO5D8Qp#b@XHdFsjmgc`C6mOrhUBg#tB_NHUNd zk^c0+qH$n|o_gTM7g=K5W>fx_@)&)_lUlh>v%&_?f?v!Z0_4~k!m$Q&5N7S0@a z0i?szbYPGz;|`hVNIe2yDbF~wU}3PNJ2otw8hPSf26Yn|`V%Hbuc$Znj*qXx6&>%Y zvLBlw1jC3$CElo_$)n2>2E=lqFmK zt ze&9*)c@D-cUHLS?_+eqVu+gQ;Tj+Put<;{kc_=xDpid^8Ym%;(m^r0GMxUioR1$L3 zwT(KuA4MYV-;mzij)rDMik%)*df(`Be1(Yu5xO_ z{YB?I%JCLwg-HwUF&$XMPc$UWjV0a5&k$rKu+`EH%gR(u90qziS_j5xF(9+oF@?Ct z6d=7RqVIAtEG0&JL19z!V^J(8DP}|*9DE@G@`k4>n!@aP^4XkncUA-vI|TM#abOc{ zUw!$h#0esP>p1NeluhUM-PKB zC5iD$in+Q2-hfBKsDL;md{HL_N@7~;${^_x&0-C?Fzf}&c=gZ`8?`hr_L#2WP$nv- zqRJtRGv#ZTW2D!Vcj883aCAJwHo+!@J_kePv!j5k5A81o)#ky3N9NZ?NuFLQXT^Upay1Xsx1v^Z<*E1vRz zcpX_$^kZ|hoI^?R;InI74ENuLOxJ`!zG`!MA)wcxw9)3l1Qx=_jLp!`*U5^-ge+UtGrbH-?7T+rGV*u&#+^xwP-?ADsDde zyX(};nU?F8BQbY?m18;$g!8F>!pPIunxi*9*LsadT{I+bys=j@ugScZ=;@wMT?x(I zRW5c;+IAh%BZ&rRzLtj0!0fEC;2B*`zU&vNkhct5*{K5s%#3--vy(`UfQqN#QIlwX zkG@$)mCFIO*cQY5b}I&O8B1mNDTiuq7&IriJR}}v0zBhq(9Ta|g zesfVKoe5G2gC^k;2Nk$8XsYtZTocg8lFC{y%D0aw+rM`vR8ynI4=*XN3DtuXHePuX zQ$X5NZ*MVgugLkG`RosnrzKcEz|TyFD1U#V?1?o?id9@(54sDmP-y8=pKOGb_LvN! zea$23i<@}~%k_h%%Es$4bA|6yIWs@r_>JK%dW6>n@l*)uN5n?w9H&Fd*o-Y}Yl0H!|!>KpvVOrMhW z)7D<2gDx%dSIDtB^R7n9B1dtE!69SQPOrbNRMjzT@L1t_#a>W#4@=I+KJbrBVU3AM zqA7xH?1#U2smhZZN&qY<80kK3#b0suZf(~+ zrk5Og4|`TtVfw;mev@utG@DI|#dK|UXIQ^SBNel3sXl&AivAFqd_|D3*cdr~hL^IE z$iczoe--dtQj|w;srK28YC;8D4q4x=eJG%}sPOeQGwm`mJ_e!NksPKkh1w5nryvB7NeMwK{$ZT1~q)VbOoQ_M8g zeM(QYT1OP3yK@LGMlN`tXF53ejc74jJPmS5h6?Ei_&7&E={tX0g!(-^k5}DTct5dm zg+I>lwb>coO7%(f*o<4Qu%#(2TSqt0C-BS+0^%Wub_`SluE%m(?bm#W9IR3sZTHoR zZK#u7vRo{mivVHPvI4&-%SJ=x<*eKwRgKgTKNFHYs+|1#tMtjt?BK>uGns5WNULml z9H-NrOfY<7Q~eo4Y2G8M?HmrPLu?M9WKt`z?=wqeP#1*}&;8~y-i%!Vz*jLEJvHNq zn~oPm&e>=DdWRK(TFNKH6%p|~d@%u3gx;1UInM}W1eEt4inSAvy|EvR=E6Hg^ z?Qw_o5`1lRJKMstl*;$%GJX;9wE1*xvi!Lb_Ya-LuD#Mbw&r|juHxnC0Zn=6wuyDA zv!iL|u4rRyPP=(biNh!HY2N+j@=!TfjBnHONqKfWyz4bITPokJct)q{q*RVbp;mYM#3&W|Me1fE-+E0&6|+Rua*Y9h!$_e1!#4@=#Q*glcc#AL4XH4&OBeh7@w- zcbR8U_*8XACI?;InCbzZQINK*Xq1GRor;EV$V9Uze*va{;HWyK%EoKu`Yl{ZFoBcV z&{QBY`F3{)Va;XK1{STpi+o?z{;*oUt_pdu%vc{?0^!aV6_&K?5P1NZp}&H@V^Pd! zKy6SSA8&b0ySaa)>ge$GRa7pKT<3{|$NKU48tH+xmV@qH2 z4}b4z%=wu0&-t`&$qoz#0?1Ea!|8G?n?2BV`1rJZ$QG7V)LKdxZL?|jBgc=z?rIMj zol_F0uFO%37T-Z~#?~=sLKIm*3 zB+Bes`kn)iHS{BccbqSgdK~jPvFPL1a#y@#;zQ`ZksAM z*p{30{}d$b^6$l0wX|UcBcxs9=rvNz8}0m;cjJi4a`GQWgTEf^9wB+$j0Y2pp)-G& z+*h($D$#yBor;mGP@J%^BoXq=-vN<%<^*x@50&d#%p-yccQo=Xw+4@=y zP%Mw0?;4sXpF=EBkP*~FVfp-^WfSgh=WklLz*GXDt@ZMLP2vb3&A)*af_(u>F||#WW`L~J%l>!4Hyu-+`K3taFnqJx1q!N& zs5QgGPeecJEAoOd(c=m++KdA%qEyHZyj@VQG*Q?>lViDX6_m-rcUxV*zRerU?W6q? zPn1)P+X}eK7P}M|btNWNep$7#-wFDbR~f}optFF%@pa_|rg8@d@1_)2WvBXJ zs#ar$QHljlAlM~YMTGbTPoGTS-sf~qACmacWN;_T^owM|v}hph&%AbOaaZErh9?9S zFx|c@E`GjGSJPB#Vw6NcMr@pLhua(EL;)$bPKYJDL!W9)^$UZVQ0|bH<7sod;Vihh zpkLUU;x55|)%-9I&e4|?ca~JK((i*;_H%FPxDAywi|N9TK&Spiha7F&#~+4Daa1+o z@@h%OaIH&o_@%V`l#XtvX){p?V8_QB^KrX^n@vY&LFx;g8~gB7^OoX3hNNzTck zl7iuq9D#&HToEI$a}1kKyf6t8etN$g{!H%A_D+0vJ8jFyrx=cDxtLg(cQduZV@-Jd z`uOzZx*Np(V>3KNqnH#_5m-K~WO(hk0)erp!5Xh9)M~>3vUP&%ebh;M-6cD;);0nh ziXaF7i?2Q7(j7eo5?NJ$ebM*ch-6%(hBxq9R1K>T>7r;iLHag`g#JHUDt0uHYRE39KMHT%>(R2qA{g~35+$P*4tD~wʔ(?o#ILaasKM=2@xA}p`b#t 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 str: - return f'IMPORTANT! Last action is incorrect:\n{last_browser_action}\nThink again with the current observation of the page.\n' -def wrap_browser_action(action_func: Callable, env: BrowserEnv) -> Callable: - """ - 包装浏览器动作函数,使其能与环境交互 - - Args: - action_func: 原始的浏览器动作函数 - - Returns: - 包装后的函数,可以与环境交互 - """ - @wraps(action_func) - def wrapper(*args, **kwargs) -> Union[Result, str]: - error_prefix = "" - try: - # 执行动作 - # action = action_func(*args, **kwargs) - action_str = f"{action_func.__name__}({', '.join([f'{repr(v)}' for k, v in kwargs.items()])})" - - # 与环境交互 - obs = env.step(action_str) - - # 返回观察结果 - obs_dict = dict( - content=obs['text_content'], # text content of the page - url=obs.get('url', ''), # URL of the page - screenshot=obs.get('screenshot', None), # base64-encoded screenshot, png - open_pages_urls=obs.get('open_pages_urls', []), # list of open pages - active_page_index=obs.get( - 'active_page_index', -1 - ), # index of the active page - dom_object=obs.get('dom_object', {}), # DOM object - axtree_object=obs.get('axtree_object', {}), # accessibility tree object - extra_element_properties=obs.get('extra_element_properties', {}), - focused_element_bid=obs.get( - 'focused_element_bid', None - ), # focused element bid - last_browser_action=obs.get( - 'last_action', '' - ), # last browser env action performed - last_browser_action_error=obs.get('last_action_error', ''), - error=True if obs.get('last_action_error', '') else False, # error flag - ) - except Exception as e: - obs_dict = dict( - content=str(e), - screenshot='', - error=True, - last_browser_action_error=str(e), - ) - - if obs_dict['error']: - # add error recovery prompt prefix - error_prefix = get_error_prefix(obs_dict['last_browser_action']) - # self.error_accumulator += 1 - # if self.error_accumulator > 5: - # return MessageAction('Too many errors encountered. Task failed.') - - cur_url = obs_dict['url'] - - try: - cur_axtree_txt = flatten_axtree_to_str( - obs_dict['axtree_object'], - extra_properties=obs_dict['extra_element_properties'], - with_clickable=True, - filter_visible_only=True, - ) - except Exception as e: - print( - 'Error when trying to process the accessibility tree: %s', e - ) - return 'Error encountered when browsing.' - ret_value = f"""\ -{error_prefix} - -# Current Page URL: -{cur_url} - -# Current Accessibility Tree: -{cur_axtree_txt} - -Here is an example with chain of thought of a valid action when clicking on a button: -" -In order to accomplish my goal I need to click on the button with bid 12 -```click("12")``` -" -""".strip() - return Result( - value=ret_value, - image=obs_dict['screenshot'], - ) - - # 保留原函数的签名和文档 - wrapper.__signature__ = inspect.signature(action_func) - wrapper.__doc__ = action_func.__doc__ - - return wrapper -@register_agent(name = "Browsing Agent", func_name="get_browsing_agent") -def get_browsing_agent(model: str): - env = BrowserEnv() - demo_mode = "off" - action_set = HighLevelActionSet( - subsets=["chat", "nav", "bid"], # define a subset of the action space - # subsets=["chat", "bid", "coord", "infeas"] # allow the agent to also use x,y coordinates - strict=False, # less strict on the parsing of the actions - multiaction=False, # does not enable the agent to take multiple actions at once - demo_mode=demo_mode, # add visual effects - ) - func_list = [act for act in action_set.action_set.keys()] - func_module = importlib.import_module("browsergym.core.action.functions") - func_list = [getattr(func_module, func) for func in func_list] - wrap_func_list = [wrap_browser_action(func, env) for func in func_list] - def instructions(context_variables): - goal = context_variables.get("goal", "") - action_space = action_set.describe(with_long_description=False, with_examples=True) - return \ -f"""Review the current state of the page and all other information to find the best -possible next action to accomplish your goal. Your answer will be interpreted -and executed by a program, make sure to follow the formatting instructions. - -# Goal: -{goal} - -# Action Space -{action_space} -""" - return Agent( - name="Browsing Agent", - model=model, - instructions=instructions, - functions=wrap_func_list - ) diff --git a/metachain/agents/math/condition_extraction_agent.py.back b/metachain/agents/math/condition_extraction_agent.py.back deleted file mode 100644 index 72a697c..0000000 --- a/metachain/agents/math/condition_extraction_agent.py.back +++ /dev/null @@ -1,12 +0,0 @@ -from metachain import Agent -from metachain.registry import register_plugin_agent -@register_plugin_agent(name="Condition Extraction Agent", func_name = "get_condition_extraction_agent") -def get_condition_extraction_agent(model): - instruction = """ - This agent is specialized in identifying and extracting all relevant conditions, given values, and constraints from the math problem. - """ - return Agent( - name="Condition Extraction Agent", - description=instruction, - model=model, - ) \ No newline at end of file diff --git a/metachain/agents/math/math_solver_agent.py.back b/metachain/agents/math/math_solver_agent.py.back deleted file mode 100644 index ed1d139..0000000 --- a/metachain/agents/math/math_solver_agent.py.back +++ /dev/null @@ -1,12 +0,0 @@ -from metachain import Agent -from metachain.registry import register_plugin_agent -@register_plugin_agent(name="Math Solver Agent", func_name = "get_math_solver_agent") -def get_math_solver_agent(model): - instruction = """ - This agent is specialized in evaluating whether conditions are sufficient and solving math problems using appropriate mathematical methods. - """ - return Agent( - name="Math Solver Agent", - description=instruction, - model=model, - ) \ No newline at end of file diff --git a/metachain/agents/math/objective_extraction_agent.py.back b/metachain/agents/math/objective_extraction_agent.py.back deleted file mode 100644 index c3aadf7..0000000 --- a/metachain/agents/math/objective_extraction_agent.py.back +++ /dev/null @@ -1,12 +0,0 @@ -from metachain import Agent -from metachain.registry import register_plugin_agent -@register_plugin_agent(name="Objective Extraction Agent", func_name = "get_objective_extraction_agent") -def get_objective_extraction_agent(model): - instruction = """ - This agent is specialized in analyzing math problems and extracting the main objective or question being asked. - """ - return Agent( - name="Objective Extraction Agent", - description=instruction, - model=model, - ) \ No newline at end of file diff --git a/metachain/agents/math/result_aggregator_agent.py.back b/metachain/agents/math/result_aggregator_agent.py.back deleted file mode 100644 index 2d34826..0000000 --- a/metachain/agents/math/result_aggregator_agent.py.back +++ /dev/null @@ -1,12 +0,0 @@ -from metachain import Agent -from metachain.registry import register_plugin_agent -@register_plugin_agent(name="Result Aggregator Agent", func_name = "get_result_aggregator_agent") -def get_result_aggregator_agent(model): - instruction = """ - This agent is specialized in aggregating results from different models and determining the final answer through majority voting. - """ - return Agent( - name="Math Solver Agent", - description=instruction, - model=model, - ) \ No newline at end of file diff --git a/metachain/agents/meta_agent/agent_form/customer_service.xml b/metachain/agents/meta_agent/agent_form/customer_service.xml deleted file mode 100644 index c555797..0000000 --- a/metachain/agents/meta_agent/agent_form/customer_service.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - The user request from the specific user about the product or service, mainly categorized into 2 types: - - Purchase a product or service - - Refund a product or service - - - response - The response of the agent to the user's request. - - - - user_name - The name of the user. - John Doe - - - - Personal Sales Agent - The personal sales agent is an agent that serves as a personal sales agent for a specific user. - You are a personal sales agent that can be used to help the user {user_name} with their request. - - - recommend_product - Recommend a product to the user. - - - recommend_service - Recommend a service to the user. - - - conduct_sales - Conduct sales with the user. - - - - user_request - Request from the specific user for purchasing a product or service. - - - response - The response of the agent to the user's request. - - - - Personal Refunds Agent - The personal refunds agent is an agent that serves as a personal refunds agent for a specific user. - Help the user {user_name} with a refund. If the reason is that it was too expensive, offer the user a discount. If they insist, then process the refund. - - - process_refund - Refund an item. Refund an item. Make sure you have the item_id of the form item_... Ask for user confirmation before processing the refund. - - - apply_discount - Apply a discount to the user's cart. - - - - user_request - Request from the specific user for refunding a product or service. - - - response - The response of the agent to the user's request. - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/agent_form/financial_agent.xml b/metachain/agents/meta_agent/agent_form/financial_agent.xml deleted file mode 100644 index c4e24d4..0000000 --- a/metachain/agents/meta_agent/agent_form/financial_agent.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - Two types of financial requests: - 1. Managing private financial documents stored in the 'financial_docs' folder - 2. Searching online financial information for specific company tickers - - - financial_response - Comprehensive response containing either document analysis results or requested financial information. - - - Financial Agent - A specialized agent that handles both private financial document management and online financial information retrieval. - You are a financial assistant with two primary responsibilities: - -1. For private financial documents: - - Process and analyze documents in the 'financial_docs' folder - - Store document content for efficient retrieval - - Answer questions about stored financial documents - - Maintain document confidentiality and security - -2. For online financial information: - - Retrieve accurate financial data for specified company tickers - - Format and present financial statements clearly - - Ensure data accuracy and proper citation - - Provide context for financial metrics when needed - - - save_raw_docs_to_vector_db - Process and store private financial documents into the vector database for efficient retrieval. - - - query_db - Search through stored financial documents to find relevant information. - - - modify_query - Refine search queries for better document retrieval results. - - - answer_query - Provide answers based on information found in stored documents. - - - can_answer - Verify if sufficient information exists in stored documents to answer a query. - - - get_historical_stock_price - Retrieve historical stock price data for specified tickers. - - - visualizer - Visualize financial data and documents when needed. - - - - - get_balance_sheet - Retrieve balance sheet data for a specific company ticker over a given period. - - - get_cash_flow - Retrieve cash flow statement data for a specific company ticker over a given period. - - - get_income_statement - Retrieve income statement data for a specific company ticker over a given period. - - - - financial_request - User request for either document management or financial information retrieval, including: -- Document analysis requests for private financial documents -- Requests for specific financial statements with company ticker and time period - - - financial_response - Comprehensive response containing either: -- Analysis results from private financial documents -- Requested financial statements and data -- Relevant visualizations or summaries as needed - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/agent_form/financial_agent_2.json b/metachain/agents/meta_agent/agent_form/financial_agent_2.json deleted file mode 100644 index 6a48287..0000000 --- a/metachain/agents/meta_agent/agent_form/financial_agent_2.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "system_input": "Two types of financial requests:\n 1. Managing and analyzing private financial documents stored in the `financial_docs` folder\n 2. Retrieving and analyzing public financial information for specific company tickers", - "system_output": { - "key": "financial_analysis", - "description": "The comprehensive financial analysis or response based on either private documents or public financial data." - }, - "global_variables": {}, - "agents": [ - { - "name": "Private Financial Document Manager", - "description": "An agent specialized in managing and analyzing private financial documents stored locally.", - "instructions": "You are a financial document manager responsible for:\n1. Processing and organizing financial documents from the local `financial_docs` folder\n2. Storing document content in a searchable format using vector database\n3. Retrieving relevant financial information from stored documents\n4. Providing detailed analysis based on the stored financial documents\n\nAlways verify document processing success and maintain data confidentiality.", - "tools": { - "existing": [ - { - "name": "save_raw_docs_to_vector_db", - "description": "Save the financial documents to the vector database for efficient retrieval and analysis." - }, - { - "name": "query_db", - "description": "Search for specific financial information within stored documents." - }, - { - "name": "modify_query", - "description": "Refine search queries to get more accurate financial information." - }, - { - "name": "answer_query", - "description": "Provide detailed answers based on the financial documents." - }, - { - "name": "can_answer", - "description": "Verify if sufficient information exists in stored documents to answer a query." - } - ], - "new": [] - }, - "agent_input": { - "key": "document_request", - "description": "User's request related to private financial documents, including document processing, searching, or analysis needs." - }, - "agent_output": { - "key": "financial_analysis", - "description": "Analysis, insights, or information retrieved from private financial documents." - } - }, - { - "name": "Public Financial Data Analyst", - "description": "An agent specialized in retrieving and analyzing public financial information for specific company tickers.", - "instructions": "You are a financial data analyst responsible for:\n1. Retrieving public financial data including balance sheets, cash flow statements, and income statements\n2. Analyzing financial metrics and trends\n3. Providing detailed financial analysis based on public data\n4. Ensuring accuracy in financial data retrieval and calculations\n\nAlways verify data accuracy and provide clear sources for financial information.", - "tools": { - "existing": [ - { - "name": "get_historical_stock_price", - "description": "Retrieve historical stock price data for analysis." - } - ], - "new": [ - { - "name": "get_balance_sheet", - "description": "Retrieve balance sheet data for a specific ticker over a given period." - }, - { - "name": "get_cash_flow_statement", - "description": "Retrieve cash flow statement data for a specific ticker over a given period." - }, - { - "name": "get_income_statement", - "description": "Retrieve income statement data for a specific ticker over a given period." - }, - { - "name": "calculate_financial_metrics", - "description": "Calculate key financial metrics and ratios from the retrieved financial statements." - } - ] - }, - "agent_input": { - "key": "market_request", - "description": "User's request for public financial data, including specific ticker symbols and time periods for analysis." - }, - "agent_output": { - "key": "financial_analysis", - "description": "Analysis and insights based on public financial data, including financial statements and calculated metrics." - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/agent_form/financial_agent_2.xml b/metachain/agents/meta_agent/agent_form/financial_agent_2.xml deleted file mode 100644 index 16a768a..0000000 --- a/metachain/agents/meta_agent/agent_form/financial_agent_2.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - Two types of financial requests: - 1. Managing and analyzing private financial documents stored in the `financial_docs` folder - 2. Retrieving and analyzing public financial information for specific company tickers - - - - financial_analysis - The comprehensive financial analysis or response based on either private documents or public financial data. - - - - Private Financial Document Manager - An agent specialized in managing and analyzing private financial documents stored locally. - You are a financial document manager responsible for: -1. Processing and organizing financial documents from the local `financial_docs` folder -2. Storing document content in a searchable format using vector database -3. Retrieving relevant financial information from stored documents -4. Providing detailed analysis based on the stored financial documents - -Always verify document processing success and maintain data confidentiality. - - - save_raw_docs_to_vector_db - Save the financial documents to the vector database for efficient retrieval and analysis. - - - query_db - Search for specific financial information within stored documents. - - - modify_query - Refine search queries to get more accurate financial information. - - - answer_query - Provide detailed answers based on the financial documents. - - - can_answer - Verify if sufficient information exists in stored documents to answer a query. - - - - document_request - User's request related to private financial documents, including document processing, searching, or analysis needs. - - - financial_analysis - Analysis, insights, or information retrieved from private financial documents. - - - - - Public Financial Data Analyst - An agent specialized in retrieving and analyzing public financial information for specific company tickers. - You are a financial data analyst responsible for: -1. Retrieving public financial data including balance sheets, cash flow statements, and income statements -2. Analyzing financial metrics and trends -3. Providing detailed financial analysis based on public data -4. Ensuring accuracy in financial data retrieval and calculations - -Always verify data accuracy and provide clear sources for financial information. - - - get_historical_stock_price - Retrieve historical stock price data for analysis. - - - - - get_balance_sheet - Retrieve balance sheet data for a specific ticker over a given period. - - - get_cash_flow_statement - Retrieve cash flow statement data for a specific ticker over a given period. - - - get_income_statement - Retrieve income statement data for a specific ticker over a given period. - - - calculate_financial_metrics - Calculate key financial metrics and ratios from the retrieved financial statements. - - - - market_request - User's request for public financial data, including specific ticker symbols and time periods for analysis. - - - financial_analysis - Analysis and insights based on public financial data, including financial statements and calculated metrics. - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/agent_form/helper_bot.xml b/metachain/agents/meta_agent/agent_form/helper_bot.xml deleted file mode 100644 index 9c3cf68..0000000 --- a/metachain/agents/meta_agent/agent_form/helper_bot.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - Questions from the user about the OpenAI products. The document of the OpenAI products is available at `/workspace/docs/openai_products/`. - - - answer - The answer to the user's question. - - - Helper Center Agent - The helper center agent is an agent that serves as a helper center agent for a specific user to answer the user's question about the OpenAI products. - You are a helper center agent that can be used to help the user with their request. - - - save_raw_docs_to_vector_db - Save the raw documents to the vector database. The documents could be: - - ANY text document with the extension of pdf, docx, txt, etcs. - - A zip file containing multiple text documents - - a directory containing multiple text documents - All documents will be converted to raw text format and saved to the vector database in the chunks of 4096 tokens. - - - query_db - Query the vector database to find the answer to the user's question. - - - modify_query - Modify the user's question to a more specific question. - - - answer_query - Answer the user's question based on the answer from the vector database. - - - can_answer - Check if the user's question can be answered by the vector database. - - - - - send_email - Send an email to the user. - - - - user_question - The question from the user about the OpenAI products. - - - answer - The answer to the user's question. - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/form_complie_ori.py b/metachain/agents/meta_agent/form_complie_ori.py deleted file mode 100644 index 7932af5..0000000 --- a/metachain/agents/meta_agent/form_complie_ori.py +++ /dev/null @@ -1,137 +0,0 @@ - - -import xml.etree.ElementTree as ET -from typing import Dict, List, Optional - -class AgentForm: - def __init__(self, xml_string: str): - # Parse XML string - root = ET.fromstring(xml_string) - - # Parse system input/output - self.system_input = root.find('system_input').text.strip() - - system_output = root.find('system_output') - self.system_output = { - 'key': system_output.find('key').text.strip(), - 'description': system_output.find('description').text.strip() - } - - # Parse global variables (optional) - global_vars = root.find('global_variables') - self.global_variables = {} - if global_vars is not None: - for var in global_vars.findall('variable'): - self.global_variables[var.find('key').text.strip()] = { - 'description': var.find('description').text.strip(), - 'value': var.find('value').text.strip() - } - - # Parse agents - self.agents = [] - for agent_elem in root.findall('agent'): - agent = { - 'name': agent_elem.find('name').text.strip(), - 'description': agent_elem.find('description').text.strip(), - 'instructions': agent_elem.find('instructions').text.strip(), - - # Parse tools - 'tools': { - 'existing': [], - 'new': [] - }, - - # Parse agent input/output - 'input': { - 'key': agent_elem.find('agent_input/key').text.strip(), - 'description': agent_elem.find('agent_input/description').text.strip() - }, - 'output': { - 'key': agent_elem.find('agent_output/key').text.strip(), - 'description': agent_elem.find('agent_output/description').text.strip() - } - } - - # Parse tools for both existing and new categories - for tools_category in agent_elem.findall('tools'): - category = tools_category.get('category') - for tool in tools_category.findall('tool'): - tool_info = { - 'name': tool.find('name').text.strip(), - 'description': tool.find('description').text.strip() - } - agent['tools'][category].append(tool_info) - - self.agents.append(agent) - - def validate(self) -> bool: - """ - 验证表单是否符合规则: - 1. system_output必须只有一个key-description对 - 2. 每个agent的input/output必须只有一个key-description对 - 3. 对于单agent系统,system in/output必须与agent in/output相同 - """ - try: - # 检查是否为单agent系统 - if len(self.agents) == 1: - agent = self.agents[0] - # 检查system和agent的input/output是否匹配 - if agent['output']['key'] != self.system_output['key']: - return False - - # 检查每个agent的input/output格式 - for agent in self.agents: - if not agent['input'].get('key') or not agent['input'].get('description'): - return False - if not agent['output'].get('key') or not agent['output'].get('description'): - return False - - return True - except Exception: - return False - - def to_dict(self) -> Dict: - """将表单转换为字典格式""" - return { - 'system_input': self.system_input, - 'system_output': self.system_output, - 'global_variables': self.global_variables, - 'agents': self.agents - } - -# 使用示例 -def parse_agent_form(xml_path: str) -> Optional[Dict]: - """ - 读取并解析agent form XML文件 - - Args: - xml_path: XML文件路径 - - Returns: - 解析后的字典格式数据,如果解析失败返回None - """ - try: - with open(xml_path, 'r', encoding='utf-8') as f: - xml_content = f.read() - - form = AgentForm(xml_content) - if not form.validate(): - print("Error: Invalid agent form format") - return None - - return form.to_dict() - - except ET.ParseError as e: - print(f"Error parsing XML: {e}") - return None - except Exception as e: - print(f"Unexpected error: {e}") - return None - -# 使用示例 -if __name__ == "__main__": - import json - result = parse_agent_form("/Users/tangjiabin/Documents/reasoning/metachain/metachain/agents/meta_agent/agent_form/customer_service.xml") - if result: - print("Successfully parsed agent form:") - print(json.dumps(result, indent=4)) \ No newline at end of file diff --git a/metachain/agents/meta_agent/meta_agent.py b/metachain/agents/meta_agent/meta_agent.py deleted file mode 100644 index a519bdd..0000000 --- a/metachain/agents/meta_agent/meta_agent.py +++ /dev/null @@ -1,118 +0,0 @@ -from metachain.registry import register_agent -from metachain.types import Agent, Result -from metachain.environment import DockerEnv, LocalEnv -from metachain.tools.meta.edit_tools import list_tools -from metachain.tools.meta.edit_agents import list_agents -from metachain.agents.meta_agent.agent_editor import get_agent_editor_agent -from metachain.agents.meta_agent.tool_editor import get_tool_editor_agent -from typing import Union -from metachain.tools.inner import case_resolved, case_not_resolved -from pydantic import BaseModel -from metachain.util import function_to_json -from metachain.agents.meta_agent.meta_plan_agent import get_meta_plan_agent -class AgentDescription(BaseModel): - tools: list[str] - existing: bool - -class ToolDescription(BaseModel): - tool_functionalities: str - existing: bool - tool_docs: str - -class ToolPlan(BaseModel): - tool_name: str - tool_description: ToolDescription - -class AgentPlan(BaseModel): - agent_name: str - agent_description: AgentDescription - - - -@register_agent(name = "Meta Agent", func_name="get_meta_agent") -def get_meta_agent(model: str) -> str: - """ - The meta agent is an agent that can be used to create and run other agents. - """ - def instructions(context_variables): - code_env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - instructions = f"""\ -You are a helpful assistant that can help the user with their request by creating and running agents in the Metachain agent framework. Your responsibility is to determine which agent is best suited to handle the user's request under the current context, and transfer the conversation to that agent. And you should not stop to try to solve the user's request by transferring to another agent only until the task is completed. - -Existing tools you already have: -{list_tools(context_variables)} - -Existing agents you already have: -{list_agents(context_variables)} - -You should first transfer the conversation to the `Meta Plan Agent` to plan how to use MetaChain to solve the user's request, and the plan should follow the following constraints: - -1. If exising agents are enough for your task, you can directly use them to solve the user's request. - -2. If exising agents are not enough for your task but there are enough existing tools, you can transfer the conversation to the `Agent Editor Agent` to develop new agents by using the existing tools. - -3. If exising agents and existing tools are not enough for your task, you should first transfer the conversation to the `Tool Editor Agent` to develop new tools, then transfer the conversation to the `Agent Editor Agent` to develop new agents by using the new tools. -""" - return instructions - - tool_editor_agent: Agent = get_tool_editor_agent(model) - agent_editor_agent: Agent = get_agent_editor_agent(model) - meta_plan_agent: Agent = get_meta_plan_agent(model) - def transfer_to_tool_editor_agent(sub_task: str): - """ - Args: - sub_task: The detailed description of the sub-task that the `Meta Agent` will ask the `Tool Editor Agent` to do. - """ - return tool_editor_agent - def transfer_to_agent_editor_agent(sub_task: str): - """ - Args: - sub_task: The detailed description of the sub-task that the `Meta Agent` will ask the `Agent Editor Agent` to do. - """ - return agent_editor_agent - def transfer_to_meta_plan_agent(sub_task: str): - """ - Use this function when you want to plan how to use MetaChain to solve the user's request. - Args: - sub_task: The detailed description of the sub-task that the `Meta Agent` will ask the `Meta Plan Agent` to do. - """ - return meta_plan_agent - meta_agent = Agent( - name="Meta Agent", - model=model, - instructions=instructions, - functions=[transfer_to_meta_plan_agent, transfer_to_tool_editor_agent, transfer_to_agent_editor_agent, case_resolved, case_not_resolved], - tool_choice = "required", - parallel_tool_calls = False - ) - - def transfer_back_to_meta_agent(task_status: str): - """ - Args: - task_status: The status of the task that the `Meta Agent` will ask the `Meta Agent` to do. - """ - return meta_agent - def transfer_back_to_meta_agent_with_plans(tool_development_steps: list[ToolPlan]) -> str: - """ - This function is used to plan how to use MetaChain to solve the user's request. You can use this function only after you have fully understood the user's request and have try your best to search information from exsiting resources. - - Args: - tool_development_steps: The steps of tool development. It is a list of dictionaries, each dictionary contains the tools name you should use in the exsiting MetaChain or the tools name you should develop. If the tool is not existing, dictionaries should contain the tool documentation. - """ - tool_str = "\n".join([f"{tool['tool_name']}: {tool['tool_description']['tool_functionalities']} [{tool['tool_description']['existing']}]" for tool in tool_development_steps]) - ret_val = f"""\ - Receiving user's request, I have the following plans to use MetaChain to solve the user's request: - As for using existing tools, I have the following plans: - {tool_str} - """ - return Result( - value=ret_val, - agent=meta_agent - ) - - tool_editor_agent.functions.append(transfer_back_to_meta_agent) - agent_editor_agent.functions.append(transfer_back_to_meta_agent) - meta_plan_agent.functions.append(transfer_back_to_meta_agent_with_plans) - - return meta_agent - diff --git a/metachain/agents/meta_agent/meta_plan_agent.py b/metachain/agents/meta_agent/meta_plan_agent.py deleted file mode 100644 index 77bb334..0000000 --- a/metachain/agents/meta_agent/meta_plan_agent.py +++ /dev/null @@ -1,38 +0,0 @@ -from metachain.types import Agent -from pydantic import BaseModel -from metachain.tools.meta.tool_retriever import get_api_plugin_tools_doc -from metachain.tools.meta.search_tools import search_trending_models_on_huggingface, get_hf_model_tools_doc -from metachain.tools.meta.edit_tools import list_tools -from typing import Union -from metachain.environment import DockerEnv, LocalEnv - - -def get_meta_plan_agent(model: str) -> Agent: - def instructions(context_variables): - code_env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - instructions = f"""\ -You are a helpful planner that can help `Tool Editor Agent` how to use MetaChain to solve the user's request. - -Existing tools you already have: -{list_tools(context_variables)} - -You should first fully understand the user's request, then analyze the existing tools and determine which tools are needed to solve the user's request, finally, you should transfer the conversation to the `Meta Agent` with the plan of using the tools. - -If existing tools are not enough for your task, you should develop new tools. - -1. [IMPORTANT] If you want to use third-party api, especially for some tasks related to Finance, Entertainment, eCommerce, Food, Travel, Sports, you MUST use the `get_api_plugin_tools_doc` tool to search information from existing api documents, it contains how to implement the api and API keys. - - -2. [IMPORTANT] If you want to use Hugging Face models, especially for some tasks related to vision, audio, video, you should use the `search_trending_models_on_huggingface` tool to search trending models related to the specific task on Hugging Face, and then use the `get_hf_model_tools_doc` tool to get the detailed information about the specific model. - -3. [IMPORTANT] You can not use `transfer_back_to_meta_agent_with_plans` util you have fully understood the user's request and have try your best to search information from exsiting resources if you want to create a new tool. -""" - return instructions - return Agent( - name="Meta Plan Agent", - model=model, - instructions=instructions, - functions=[get_api_plugin_tools_doc, search_trending_models_on_huggingface, get_hf_model_tools_doc], - tool_choice = "required", - parallel_tool_calls = False - ) diff --git a/metachain/agents/meta_agent/tool_editor.py.back b/metachain/agents/meta_agent/tool_editor.py.back deleted file mode 100644 index f261889..0000000 --- a/metachain/agents/meta_agent/tool_editor.py.back +++ /dev/null @@ -1,121 +0,0 @@ -from metachain.registry import register_agent -from metachain.tools.meta.edit_tools import list_tools, create_tool, delete_tool, run_tool, get_metachain_path -from metachain.tools.meta.tool_retriever import get_api_plugin_tools_doc -from metachain.tools.meta.search_tools import search_trending_models_on_huggingface, get_hf_model_tools_doc -from metachain.types import Agent -from metachain.io_utils import read_file -from metachain.tools.terminal_tools import execute_command, terminal_page_down, terminal_page_up, terminal_page_to - -@register_agent(name = "Tool Editor Agent", func_name="get_tool_editor_agent") -def get_tool_editor_agent(model: str) -> str: - """ - The tool editor is an agent that can be used to edit the tools. - """ - def instructions(context_variables): - return f"""\ -You are a Tool Editor specialized in the MetaChain framework. Your role is to create, modify, and maintain tools that agents can use effectively. - -CURRENT TOOLS: -{list_tools(context_variables)} - -TOOL CREATION GUIDELINES: - -1. STRUCTURE AND FORMATTING - - Follow the template structure below: -```python -{read_file('metachain/tools/dummy_tool.py')} -``` - - MUST use @register_plugin_tool decorator - - Include clear docstrings with args and returns - - Handle errors gracefully - - If the tool should be used with third-part api key, you should write the api key inside the definition of the tool - - DO NOT direct return too long output (e.g., the raw content of the download file for `download_file_from_url`), instead, save the output to a file in the `workplace/outputs` directory - -2. IMPLEMENTATION PRINCIPLES: - - Keep tools GENERIC and REUSABLE - - Avoid over-specific implementations - - Focus on single responsibility - - Ensure proper error handling - - Include input validation - - Return clear, structured outputs -""" + \ -r""" - -3. TESTING REQUIREMENTS: - - All tools MUST be tested before deployment - - Use this testing template: -```python -from metachain.tools import your_tool_name - -if __name__ == "__main__": - # Setup test environment - test_args = { - "arg1": value1, - "arg2": value2 - } - - # Execute test - result = your_tool_name(**test_args) - print(f"Test result: {result}") -``` - - if the output of the tool is too long, you should use the `terminal_page_down` or `terminal_page_up` or `terminal_page_to` function to move the terminal page to the specific page with the meaningful content. - -4. DEPENDENCY MANAGEMENT: - - Use execute_command for installing dependencies - - Document all required packages - - Verify compatibility with MetaChain - -CRITICAL RULES: -1. ALWAYS use @register_plugin_tool decorator -2. NEVER create overly specific tools -3. ALWAYS test before finalizing -4. ALWAYS handle errors gracefully -5. ALWAYS document clearly - -BEST PRACTICES: -1. Keep tools modular and focused -2. Provide clear error messages -3. Include usage examples in docstrings -4. Follow Python PEP 8 style guide -5. Use type hints for better clarity - -Remember: A good tool is reusable, reliable, and well-documented. Focus on creating tools that can be effectively used across different agents and scenarios. -""" - tool_list = [list_tools, create_tool, delete_tool, run_tool, get_api_plugin_tools_doc, search_trending_models_on_huggingface, get_hf_model_tools_doc, execute_command, terminal_page_down, terminal_page_up, terminal_page_to] - return Agent( - name="Tool Editor Agent", - model=model, - instructions=instructions, - functions=tool_list, - tool_choice = "required", - parallel_tool_calls = False - ) - - -"""\ -You are a tool editor agent that can be used to edit the tools. You are working on a Agent framework named MetaChain, and your responsibility is to edit the tools in the MetaChain, so that the tools can be used by the agents to help the user with their request. - -The existing tools are shown below: -{list_tools(context_variables)} - -If you want to create a new tool, you should: -1. follow the format of the `tool_dummy` below. Note that if the tool should be used with third-part api key, you should write the api key inside the definition of the tool: -```python -{read_file('metachain/tools/dummy_tool.py')} -``` - -2. you successfully create the tool only after you have successfully tested the tool with the `test_tool` function, and an example of testing the tool is shown below.: -```python -from metachain.tools import tool_dummy - -if __name__ == "__main__": - ... # some pre-operations - print(tool_dummy(args1=args1, args2=args1, ...)) -``` - -3. If you encounter any error while creating and running the tool, like dependency missing, you should use the `execute_command` function to install the dependency. - -[IMPORTANT] The `register_plugin_tool` registry function is strictly required for a tool implementation to be recognized by the MetaChain framework. - -[IMPORTANT] Tools you create should be as general as possible, and you should not create too specific tools, so that the tools can be reused by other agents or other related tasks. -""" \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow.xml b/metachain/agents/meta_agent/workflow.xml deleted file mode 100644 index b7d5950..0000000 --- a/metachain/agents/meta_agent/workflow.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - Personal Sales Agent - The personal sales agent is an agent that serves as a personal sales agent for a specific user. - You are a personal sales agent that can be used to help the user {user_name} with their request. - - - recommend_product - Recommend a product to the user. - - - recommend_service - Recommend a service to the user. - - - transfer_customer - Transfer a customer to another sales agent. - - - search_information - Search for information for the user. - - - - - create_agent - Create a new agent. - - - - - user_name - The name of the user. - John Doe - - - user_email - The email of the user. - john.doe@example.com - - - - - - - personal_sales_agent - agent_former_agent - - user_request - create_agent - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/condition_mining.json b/metachain/agents/meta_agent/workflow_form/condition_mining.json deleted file mode 100644 index 8c8db4b..0000000 --- a/metachain/agents/meta_agent/workflow_form/condition_mining.json +++ /dev/null @@ -1,184 +0,0 @@ -{ - "name": "math_solver_chain_workflow", - "system_input": { - "key": "math_problem", - "description": "The math problem that needs to be solved." - }, - "system_output": { - "key": "solution", - "description": "The complete solution to the math problem." - }, - "global_variables": {}, - "agents": [ - { - "name": "Objective Extraction Agent", - "description": "This agent analyzes the math problem and extracts its main objective or goal.", - "category": "existing", - "tools": null - }, - { - "name": "Condition Extraction Agent", - "description": "This agent identifies and extracts all relevant conditions and given information from the math problem.", - "category": "existing", - "tools": null - }, - { - "name": "Condition Evaluator Agent", - "description": "This agent evaluates whether the extracted conditions are sufficient to solve the math problem.", - "category": "existing", - "tools": null - }, - { - "name": "Math Solver Agent", - "description": "This agent solves mathematical problems using analytical and systematic approaches.", - "category": "existing", - "tools": null - } - ], - "events": [ - { - "name": "on_start", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": null, - "outputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": null, - "agent": null - }, - { - "name": "extract_objective", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": "Extract and clearly state the main objective of the math problem.", - "outputs": [ - { - "key": "objective", - "description": "The main objective or question that needs to be answered.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Objective Extraction Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "extract_conditions", - "inputs": [ - { - "key": "objective", - "description": "The main objective or question that needs to be answered." - } - ], - "task": "Extract all relevant conditions and given information from the math problem.", - "outputs": [ - { - "key": "conditions", - "description": "The complete set of conditions and information extracted from the problem.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "extract_objective" - ], - "agent": { - "name": "Condition Extraction Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "evaluate_conditions", - "inputs": [ - { - "key": "conditions", - "description": "The complete set of conditions and information extracted from the problem." - } - ], - "task": "Evaluate if the extracted conditions are sufficient to solve the problem.", - "outputs": [ - { - "key": "merged_conditions", - "description": "The merged and organized conditions ready for problem-solving.", - "condition": "When conditions are sufficient to solve the problem.", - "action": { - "type": "RESULT", - "value": null - } - }, - { - "key": "insufficient_feedback", - "description": "Feedback on what additional information is needed.", - "condition": "When conditions are insufficient to solve the problem.", - "action": { - "type": "GOTO", - "value": "extract_conditions" - } - } - ], - "listen": [ - "extract_conditions" - ], - "agent": { - "name": "Condition Evaluator Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "solve_problem", - "inputs": [ - { - "key": "merged_conditions", - "description": "The merged and organized conditions ready for problem-solving." - } - ], - "task": "Solve the math problem using the complete set of conditions.", - "outputs": [ - { - "key": "solution", - "description": "The complete solution to the math problem.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "evaluate_conditions" - ], - "agent": { - "name": "Math Solver Agent", - "model": "claude-3-5-sonnet-20241022" - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/condition_mining.xml b/metachain/agents/meta_agent/workflow_form/condition_mining.xml deleted file mode 100644 index 97ffb89..0000000 --- a/metachain/agents/meta_agent/workflow_form/condition_mining.xml +++ /dev/null @@ -1,169 +0,0 @@ - - math_solver_chain_workflow - - math_problem - The math problem that needs to be solved. - - - solution - The complete solution to the math problem. - - - - - Objective Extraction Agent - This agent analyzes the math problem and extracts its main objective or goal. - - - Condition Extraction Agent - This agent identifies and extracts all relevant conditions and given information from the math problem. - - - Condition Evaluator Agent - This agent evaluates whether the extracted conditions are sufficient to solve the math problem. - - - Math Solver Agent - This agent solves mathematical problems using analytical and systematic approaches. - - - - - - on_start - - - math_problem - The math problem that needs to be solved. - - - - - math_problem - The math problem that needs to be solved. - - RESULT - - - - - - - extract_objective - - - math_problem - The math problem that needs to be solved. - - - Extract and clearly state the main objective of the math problem. - - - objective - The main objective or question that needs to be answered. - - RESULT - - - - - on_start - - - Objective Extraction Agent - claude-3-5-sonnet-20241022 - - - - - extract_conditions - - - objective - The main objective or question that needs to be answered. - - - Extract all relevant conditions and given information from the math problem. - - - conditions - The complete set of conditions and information extracted from the problem. - - RESULT - - - - - extract_objective - - - Condition Extraction Agent - claude-3-5-sonnet-20241022 - - - - - evaluate_conditions - - - conditions - The complete set of conditions and information extracted from the problem. - - - Evaluate if the extracted conditions are sufficient to solve the problem. - - - merged_conditions - The merged and organized conditions ready for problem-solving. - When conditions are sufficient to solve the problem. - - RESULT - - - - insufficient_feedback - Feedback on what additional information is needed. - When conditions are insufficient to solve the problem. - - GOTO - extract_conditions - - - - - extract_conditions - - - Condition Evaluator Agent - claude-3-5-sonnet-20241022 - - - - - solve_problem - - - merged_conditions - The merged and organized conditions ready for problem-solving. - - - Solve the math problem using the complete set of conditions. - - - solution - The complete solution to the math problem. - - RESULT - - - - - evaluate_conditions - - - Math Solver Agent - claude-3-5-sonnet-20241022 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_condition_mining.json b/metachain/agents/meta_agent/workflow_form/math_condition_mining.json deleted file mode 100644 index 6277557..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_condition_mining.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "name": "math_condition_mining_workflow", - "system_input": { - "key": "math_problem", - "description": "The mathematical problem that needs to be solved." - }, - "system_output": { - "key": "solution", - "description": "The detailed solution to the mathematical problem." - }, - "global_variables": {}, - "agents": [ - { - "name": "Objective Extraction Agent", - "description": "This agent is specialized in analyzing math problems and extracting the main objective or question being asked.", - "category": "existing", - "tools": null - }, - { - "name": "Condition Extraction Agent", - "description": "This agent is specialized in identifying and extracting all relevant conditions, given values, and constraints from the math problem.", - "category": "existing", - "tools": null - }, - { - "name": "Math Solver Agent", - "description": "This agent is specialized in evaluating whether conditions are sufficient and solving math problems using appropriate mathematical methods.", - "category": "existing", - "tools": null - } - ], - "events": [ - { - "name": "on_start", - "inputs": [ - { - "key": "math_problem", - "description": "The mathematical problem that needs to be solved." - } - ], - "task": null, - "outputs": [ - { - "key": "math_problem", - "description": "The mathematical problem that needs to be solved.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": null, - "agent": null - }, - { - "name": "extract_objective", - "inputs": [ - { - "key": "math_problem", - "description": "The mathematical problem that needs to be solved." - } - ], - "task": "Analyze the math problem and extract the main objective or question being asked.", - "outputs": [ - { - "key": "objective", - "description": "The main objective or question extracted from the math problem.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Objective Extraction Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "extract_conditions", - "inputs": [ - { - "key": "math_problem", - "description": "The mathematical problem that needs to be solved." - }, - { - "key": "objective", - "description": "The main objective or question extracted from the math problem." - } - ], - "task": "Extract all relevant conditions, given values, and constraints from the math problem.", - "outputs": [ - { - "key": "conditions", - "description": "The extracted conditions, values, and constraints from the math problem.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "extract_objective" - ], - "agent": { - "name": "Condition Extraction Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "solve_problem", - "inputs": [ - { - "key": "objective", - "description": "The main objective or question extracted from the math problem." - }, - { - "key": "conditions", - "description": "The extracted conditions, values, and constraints from the math problem." - } - ], - "task": "Evaluate whether conditions are sufficient and solve the math problem if possible.", - "outputs": [ - { - "key": "solution", - "description": "The complete solution to the math problem.", - "condition": "When conditions are sufficient to solve the problem.", - "action": { - "type": "RESULT", - "value": null - } - }, - { - "key": "insufficient_conditions", - "description": "Feedback about missing or unclear conditions.", - "condition": "When conditions are insufficient to solve the problem.", - "action": { - "type": "GOTO", - "value": "extract_conditions" - } - } - ], - "listen": [ - "extract_conditions" - ], - "agent": { - "name": "Math Solver Agent", - "model": "claude-3-5-sonnet-20241022" - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_condition_mining.xml b/metachain/agents/meta_agent/workflow_form/math_condition_mining.xml deleted file mode 100644 index 0af0e38..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_condition_mining.xml +++ /dev/null @@ -1,148 +0,0 @@ - - math_problem_solver_workflow - - - math_problem - The mathematical problem that needs to be solved. - - - - solution - The detailed solution to the mathematical problem. - - - - - Objective Extraction Agent - This agent is specialized in analyzing math problems and extracting the main objective or question being asked. - - - Condition Extraction Agent - This agent is specialized in identifying and extracting all relevant conditions, given values, and constraints from the math problem. - - - Math Solver Agent - This agent is specialized in evaluating whether conditions are sufficient and solving math problems using appropriate mathematical methods. - - - - - - on_start - - - math_problem - The mathematical problem that needs to be solved. - - - - - math_problem - The mathematical problem that needs to be solved. - - RESULT - - - - - - - extract_objective - - - math_problem - The mathematical problem that needs to be solved. - - - Analyze the math problem and extract the main objective or question being asked. - - - objective - The main objective or question extracted from the math problem. - - RESULT - - - - - on_start - - - Objective Extraction Agent - gpt-4o-2024-08-06 - - - - - extract_conditions - - - math_problem - The mathematical problem that needs to be solved. - - - objective - The main objective or question extracted from the math problem. - - - Extract all relevant conditions, given values, and constraints from the math problem. - - - conditions - The extracted conditions, values, and constraints from the math problem. - - RESULT - - - - - extract_objective - - - Condition Extraction Agent - gpt-4o-2024-08-06 - - - - - solve_problem - - - objective - The main objective or question extracted from the math problem. - - - conditions - The extracted conditions, values, and constraints from the math problem. - - - Evaluate whether conditions are sufficient and solve the math problem if possible. - - - solution - The complete solution to the math problem. - When conditions are sufficient to solve the problem. - - RESULT - - - - insufficient_conditions - Feedback about missing or unclear conditions. - When conditions are insufficient to solve the problem. - - GOTO - extract_conditions - - - - - extract_conditions - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_majority_voting.json b/metachain/agents/meta_agent/workflow_form/math_majority_voting.json deleted file mode 100644 index cbba29a..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_majority_voting.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "name": "math_problem_solver_workflow", - "system_input": { - "key": "math_problem", - "description": "The math problem that needs to be solved." - }, - "system_output": { - "key": "final_solution", - "description": "The final solution to the math problem determined by majority voting." - }, - "global_variables": {}, - "agents": [ - { - "name": "Math Solver Agent", - "description": "This agent is specialized in solving math problems using appropriate mathematical methods.", - "category": "existing", - "tools": null - }, - { - "name": "Result Aggregator Agent", - "description": "This agent aggregates results from different models and determines the final answer through majority voting.", - "category": "existing", - "tools": null - } - ], - "events": [ - { - "name": "on_start", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": null, - "outputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": null, - "agent": null - }, - { - "name": "solve_with_gpt4", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": "Solve the math problem using GPT-4 model.", - "outputs": [ - { - "key": "gpt4_solution", - "description": "The solution provided by GPT-4 model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "gpt-4o-2024-08-06" - } - }, - { - "name": "solve_with_claude", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": "Solve the math problem using Claude model.", - "outputs": [ - { - "key": "claude_solution", - "description": "The solution provided by Claude model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "solve_with_deepseek", - "inputs": [ - { - "key": "math_problem", - "description": "The math problem that needs to be solved." - } - ], - "task": "Solve the math problem using Deepseek model.", - "outputs": [ - { - "key": "deepseek_solution", - "description": "The solution provided by Deepseek model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "deepseek/deepseek-chat" - } - }, - { - "name": "aggregate_results", - "inputs": [ - { - "key": "gpt4_solution", - "description": "The solution provided by GPT-4 model." - }, - { - "key": "claude_solution", - "description": "The solution provided by Claude model." - }, - { - "key": "deepseek_solution", - "description": "The solution provided by Deepseek model." - } - ], - "task": "Aggregate the solutions from different models and determine the final answer through majority voting.", - "outputs": [ - { - "key": "final_solution", - "description": "The final solution determined by majority voting.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "solve_with_gpt4", - "solve_with_claude", - "solve_with_deepseek" - ], - "agent": { - "name": "Result Aggregator Agent", - "model": "gpt-4o-2024-08-06" - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_majority_voting.xml b/metachain/agents/meta_agent/workflow_form/math_majority_voting.xml deleted file mode 100644 index 496af76..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_majority_voting.xml +++ /dev/null @@ -1,161 +0,0 @@ - - math_problem_solver_workflow - - math_problem - The math problem that needs to be solved. - - - final_solution - The final solution to the math problem determined by majority voting. - - - - - Math Solver Agent - This agent is specialized in solving math problems using appropriate mathematical methods. - - - Result Aggregator Agent - This agent aggregates results from different models and determines the final answer through majority voting. - - - - - - on_start - - - math_problem - The math problem that needs to be solved. - - - - - math_problem - The math problem that needs to be solved. - - RESULT - - - - - - - solve_with_gpt4 - - - math_problem - The math problem that needs to be solved. - - - Solve the math problem using GPT-4 model. - - - gpt4_solution - The solution provided by GPT-4 model. - - RESULT - - - - - on_start - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - - solve_with_claude - - - math_problem - The math problem that needs to be solved. - - - Solve the math problem using Claude model. - - - claude_solution - The solution provided by Claude model. - - RESULT - - - - - on_start - - - Math Solver Agent - claude-3-5-sonnet-20241022 - - - - - solve_with_deepseek - - - math_problem - The math problem that needs to be solved. - - - Solve the math problem using Deepseek model. - - - deepseek_solution - The solution provided by Deepseek model. - - RESULT - - - - - on_start - - - Math Solver Agent - deepseek/deepseek-chat - - - - - aggregate_results - - - gpt4_solution - The solution provided by GPT-4 model. - - - claude_solution - The solution provided by Claude model. - - - deepseek_solution - The solution provided by Deepseek model. - - - Aggregate the solutions from different models and determine the final answer through majority voting. - - - final_solution - The final solution determined by majority voting. - - RESULT - - - - - solve_with_gpt4 - solve_with_claude - solve_with_deepseek - - - Result Aggregator Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning.xml b/metachain/agents/meta_agent/workflow_form/math_reasoning.xml deleted file mode 100644 index 3800c88..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - problem_path - The URL of the dataset containing math problems to solve: https://huggingface.co/datasets/openai/gsm8k - - - solution_results - The aggregated solution results with majority voting from multiple models - - - - - Data Fetcher Agent - This agent is responsible for downloading and processing the dataset from HuggingFace - - - Math Solver Agent - This agent is specialized in solving mathematical problems step by step - - - Result Aggregator Agent - This agent aggregates solutions from different models and performs majority voting - - - - - - dataset_url - The URL of the GSM8K dataset - https://huggingface.co/datasets/openai/gsm8k - - - - - - fetch_dataset - - problem_path - The URL of the dataset to download - - Download the GSM8K dataset and save it locally - - - dataset_content - The downloaded math problems from the dataset - - RESULT - - - - - Data Fetcher Agent - gpt-4o-2024-08-06 - - - - - solve_with_gpt4 - - dataset_content - The math problems to solve - - Solve the math problems using GPT-4 model - - - gpt4_solutions - Solutions generated by GPT-4 - - RESULT - - - - - fetch_dataset - - - Math Solver Agent - gpt-4-1106-preview - - - - - solve_with_claude - - dataset_content - The math problems to solve - - Solve the math problems using Claude model - - - claude_solutions - Solutions generated by Claude - - RESULT - - - - - fetch_dataset - - - Math Solver Agent - claude-3-opus-20240229 - - - - - solve_with_mixtral - - dataset_content - The math problems to solve - - Solve the math problems using Mixtral model - - - mixtral_solutions - Solutions generated by Mixtral - - RESULT - - - - - fetch_dataset - - - Math Solver Agent - mixtral-8x7b-instruct - - - - - aggregate_results - - model_solutions - Solutions from different models to be aggregated - - Aggregate solutions from all models using majority voting - - - solution_results - Final aggregated solutions with majority voting - - RESULT - - - - - solve_with_gpt4 - solve_with_claude - solve_with_mixtral - - - Result Aggregator Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning2.xml b/metachain/agents/meta_agent/workflow_form/math_reasoning2.xml deleted file mode 100644 index a6897cf..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning2.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - dataset_url - The URL of the math problem dataset on huggingface. - - - - final_result - The final solution of the math problem after majority voting. - - - - - Data Loader Agent - This agent is responsible for downloading and processing the dataset. - - download_file - analyze_data - load_one_instance - - - - - Math Solver Agent - This agent is responsible for solving math problems using different language models. - - - - Result Aggregator Agent - This agent aggregates results from different solvers and performs majority voting. - - - - - - dataset_path - Local path where the dataset will be stored - /workspace/data/math_dataset.json - - - - - - download_data - - dataset_url - The URL of the math problem dataset - - Download the dataset from huggingface and analyze its structure - - - problem_instance - A single math problem instance from the dataset - - RESULT - - - - - Data Loader Agent - gpt-4o-2024-08-06 - - - - - solve_with_gpt4 - - problem_instance - Math problem to solve - - Solve the math problem using GPT-4 - - - gpt4_solution - Solution from GPT-4 model - - RESULT - - - - - download_data - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - - solve_with_claude - - problem_instance - Math problem to solve - - Solve the math problem using Claude - - - claude_solution - Solution from Claude model - - RESULT - - - - - download_data - - - Math Solver Agent - claude-3-5-sonnet-20241022 - - - - - solve_with_palm - - problem_instance - Math problem to solve - - Solve the math problem using PaLM - - - palm_solution - Solution from PaLM model - - RESULT - - - - - download_data - - - Math Solver Agent - palm-2-4-chat-20240125 - - - - - aggregate_results - - solutions - Solutions from all models - - Aggregate solutions using majority voting - - - final_result - Final solution after majority voting - - RESULT - - - - - solve_with_gpt4 - solve_with_claude - solve_with_palm - - - Result Aggregator Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning3.json b/metachain/agents/meta_agent/workflow_form/math_reasoning3.json deleted file mode 100644 index 0df491a..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning3.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "name": "math_problem_solver_workflow", - "system_input": { - "key": "math_problem", - "description": "The math problem that needs to be solved." - }, - "system_output": { - "key": "final_solution", - "description": "The final solution to the math problem determined through majority voting." - }, - "global_variables": {}, - "agents": [ - { - "name": "Math Solver Agent", - "description": "This agent is specialized in solving math problems using appropriate mathematical methods.", - "category": "existing", - "tools": null - }, - { - "name": "Result Aggregator Agent", - "description": "This agent is specialized in aggregating results from different models and determining the final answer through majority voting.", - "category": "existing", - "tools": null - } - ], - "events": [ - { - "name": "on_start", - "input": { - "key": "math_problem", - "description": "The math problem that needs to be solved." - }, - "task": "Distribute the math problem to parallel solvers.", - "outputs": [ - { - "key": "problem_ready", - "description": "Math problem ready for parallel processing.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": null, - "agent": { - "name": "Math Solver Agent", - "model": "gpt-4o-2024-08-06" - } - }, - { - "name": "solve_with_gpt4", - "input": { - "key": "problem_ready", - "description": "Math problem to be solved." - }, - "task": "Solve the math problem using GPT-4 model.", - "outputs": [ - { - "key": "gpt4_solution", - "description": "Solution from GPT-4 model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "gpt-4o-2024-08-06" - } - }, - { - "name": "solve_with_claude", - "input": { - "key": "problem_ready", - "description": "Math problem to be solved." - }, - "task": "Solve the math problem using Claude model.", - "outputs": [ - { - "key": "claude_solution", - "description": "Solution from Claude model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "claude-3-5-sonnet-20241022" - } - }, - { - "name": "solve_with_deepseek", - "input": { - "key": "problem_ready", - "description": "Math problem to be solved." - }, - "task": "Solve the math problem using Deepseek model.", - "outputs": [ - { - "key": "deepseek_solution", - "description": "Solution from Deepseek model.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Math Solver Agent", - "model": "deepseek/deepseek-chat" - } - }, - { - "name": "aggregate_results", - "input": { - "key": "multiple_solutions", - "description": "Solutions from all three models." - }, - "task": "Aggregate solutions from different models and determine final answer through majority voting.", - "outputs": [ - { - "key": "final_solution", - "description": "Final solution determined through majority voting.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "solve_with_gpt4", - "solve_with_claude", - "solve_with_deepseek" - ], - "agent": { - "name": "Result Aggregator Agent", - "model": "gpt-4o-2024-08-06" - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning3.xml b/metachain/agents/meta_agent/workflow_form/math_reasoning3.xml deleted file mode 100644 index 1f6beab..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning3.xml +++ /dev/null @@ -1,148 +0,0 @@ - - math_problem_solver_workflow - - math_problem - The math problem that needs to be solved. - - - final_solution - The final solution to the math problem determined through majority voting. - - - - - Math Solver Agent - This agent is specialized in solving math problems using appropriate mathematical methods. - - - Result Aggregator Agent - This agent is specialized in aggregating results from different models and determining the final answer through majority voting. - - - - - - on_start - - math_problem - The math problem that needs to be solved. - - Distribute the math problem to parallel solvers. - - - problem_ready - Math problem ready for parallel processing. - - RESULT - - - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - - solve_with_gpt4 - - problem_ready - Math problem to be solved. - - Solve the math problem using GPT-4 model. - - - gpt4_solution - Solution from GPT-4 model. - - RESULT - - - - - on_start - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - - solve_with_claude - - problem_ready - Math problem to be solved. - - Solve the math problem using Claude model. - - - claude_solution - Solution from Claude model. - - RESULT - - - - - on_start - - - Math Solver Agent - claude-3-5-sonnet-20241022 - - - - - solve_with_deepseek - - problem_ready - Math problem to be solved. - - Solve the math problem using Deepseek model. - - - deepseek_solution - Solution from Deepseek model. - - RESULT - - - - - on_start - - - Math Solver Agent - deepseek/deepseek-chat - - - - - aggregate_results - - multiple_solutions - Solutions from all three models. - - Aggregate solutions from different models and determine final answer through majority voting. - - - final_solution - Final solution determined through majority voting. - - RESULT - - - - - solve_with_gpt4 - solve_with_claude - solve_with_deepseek - - - Result Aggregator Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning4.json b/metachain/agents/meta_agent/workflow_form/math_reasoning4.json deleted file mode 100644 index 1cd428f..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning4.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "name": "mining_conditions_workflow", - "system_input": { - "key": "math_problem", - "description": "The math problem that user wants to solve." - }, - "system_output": { - "key": "solution", - "description": "The detailed solution of the math problem, including steps and final answer." - }, - "global_variables": {}, - "agents": [ - { - "name": "Objective Extraction Agent", - "description": "This agent is specialized in analyzing math problems and extracting the main objective or question being asked.", - "category": "new", - "tools": null - }, - { - "name": "Condition Extraction Agent", - "description": "This agent is specialized in identifying and extracting all relevant conditions, given values, and constraints from the math problem.", - "category": "new", - "tools": null - }, - { - "name": "Math Solver Agent", - "description": "This agent is specialized in evaluating whether conditions are sufficient and solving math problems using appropriate mathematical methods.", - "category": "new", - "tools": null - } - ], - "events": [ - { - "name": "on_start", - "input": { - "key": "math_problem", - "description": "The original math problem text." - }, - "task": "Extract the main objective or question from the math problem.", - "outputs": [ - { - "key": "objective", - "description": "The clearly defined objective or question that needs to be solved.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": null, - "agent": { - "name": "Objective Extraction Agent", - "model": "gpt-4o-2024-08-06" - } - }, - { - "name": "extract_conditions", - "input": { - "key": "objective", - "description": "The objective of the math problem." - }, - "task": "Extract all relevant conditions, given values, and constraints from the math problem.", - "outputs": [ - { - "key": "conditions", - "description": "List of all identified conditions and constraints.", - "condition": null, - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "on_start" - ], - "agent": { - "name": "Condition Extraction Agent", - "model": "gpt-4o-2024-08-06" - } - }, - { - "name": "evaluate_and_solve", - "input": { - "key": "conditions", - "description": "The extracted conditions and constraints." - }, - "task": "Evaluate if conditions are sufficient and solve the math problem if possible.", - "outputs": [ - { - "key": "insufficient_conditions", - "description": "Conditions are not sufficient to solve the problem.", - "condition": "If the current conditions are not enough to solve the problem.", - "action": { - "type": "GOTO", - "value": "extract_conditions" - } - }, - { - "key": "solution", - "description": "Complete solution with steps and final answer.", - "condition": "If conditions are sufficient to solve the problem.", - "action": { - "type": "RESULT", - "value": null - } - } - ], - "listen": [ - "extract_conditions" - ], - "agent": { - "name": "Math Solver Agent", - "model": "gpt-4o-2024-08-06" - } - } - ] -} \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/math_reasoning4.xml b/metachain/agents/meta_agent/workflow_form/math_reasoning4.xml deleted file mode 100644 index 7868aa7..0000000 --- a/metachain/agents/meta_agent/workflow_form/math_reasoning4.xml +++ /dev/null @@ -1,113 +0,0 @@ - - mining_conditions_workflow - - math_problem - The math problem that user wants to solve. - - - - solution - The detailed solution of the math problem, including steps and final answer. - - - - - Objective Extraction Agent - This agent is specialized in analyzing math problems and extracting the main objective or question being asked. - - - - Condition Extraction Agent - This agent is specialized in identifying and extracting all relevant conditions, given values, and constraints from the math problem. - - - - Math Solver Agent - This agent is specialized in evaluating whether conditions are sufficient and solving math problems using appropriate mathematical methods. - - - - - - on_start - - math_problem - The original math problem text. - - Extract the main objective or question from the math problem. - - - objective - The clearly defined objective or question that needs to be solved. - - RESULT - - - - - Objective Extraction Agent - gpt-4o-2024-08-06 - - - - - extract_conditions - - objective - The objective of the math problem. - - Extract all relevant conditions, given values, and constraints from the math problem. - - - conditions - List of all identified conditions and constraints. - - RESULT - - - - - on_start - - - Condition Extraction Agent - gpt-4o-2024-08-06 - - - - - evaluate_and_solve - - conditions - The extracted conditions and constraints. - - Evaluate if conditions are sufficient and solve the math problem if possible. - - - insufficient_conditions - Conditions are not sufficient to solve the problem. - If the current conditions are not enough to solve the problem. - - GOTO - extract_conditions - - - - solution - Complete solution with steps and final answer. - If conditions are sufficient to solve the problem. - - RESULT - - - - - extract_conditions - - - Math Solver Agent - gpt-4o-2024-08-06 - - - - \ No newline at end of file diff --git a/metachain/agents/meta_agent/workflow_form/parallelization.xml b/metachain/agents/meta_agent/workflow_form/parallelization.xml deleted file mode 100644 index e69de29..0000000 diff --git a/metachain/agents/meta_agent/workflow_form/prompt_chaining.xml b/metachain/agents/meta_agent/workflow_form/prompt_chaining.xml deleted file mode 100644 index b043cbd..0000000 --- a/metachain/agents/meta_agent/workflow_form/prompt_chaining.xml +++ /dev/null @@ -1,144 +0,0 @@ - - - user_topic - The user's topic that user wants to write a wikipiead-like article about. - - - article - The article that satisfies the user's request. - - - - Web Surfer Agent - This agent is used to search the web for the user's topic. - - - Outline Agent - This agent is used to write an outline for the user's topic. - - - Evaluator Agent - This agent is used to evaluate the outline of the user's topic. - - - Article Writer Agent - This agent is used to write the article for the user's topic. - - - - - on_start - - user_topic - The user's topic that user wants to write a wikipiead-like article about. - - - search the information about the topic and return the result. - - - - search_result - The search result of the user's topic. - - RESULT - - - - - Web Surfer Agent - gpt-4o-2024-08-06 - - - - on_outline - - search_result - The search result of the user's topic. - - - write an outline for the user's topic. - - - - outline - The outline of the user's topic. - - RESULT - - - - - on_start - - - Outline Agent - gpt-4o-2024-08-06 - - - - on_evaluate - - outline - The outline of the user's topic. - - - evaluate the outline of the user's topic. - - - - positive_feedback - The positive feedback of the outline of the user's topic. - - If the outline is good enough, give positive feedback. - - - RESULT - - - - negative_feedback - The negative feedback of the outline of the user's topic. - - If the outline is not good enough, give negative feedback. - - - ABORT - - - - - on_outline - - - Evaluator Agent - gpt-4o-2024-08-06 - - - - on_write - - outline - The outline of user's topic. - - - write the article for the user's topic. - - - - article - The article of the user's topic. - - RESULT - - - - - on_evaluate - - - Article Writer Agent - gpt-4o-2024-08-06 - - - - diff --git a/metachain/agents/plan_agent.py b/metachain/agents/plan_agent.py deleted file mode 100644 index ae48d69..0000000 --- a/metachain/agents/plan_agent.py +++ /dev/null @@ -1,40 +0,0 @@ - - -from metachain.types import Agent -from metachain.tools import ( - get_api_plugin_tools_doc, check_agent, check_tool -) -from metachain.registry import register_agent - -@register_agent(name = "Plan Agent", func_name="get_plan_agent") -def get_plan_agent(model: str): - def instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - return \ -f"""You are a planner working on an agent project named 'metachain' which can generate a coding plan for a given user request. -I want to use existing project code to solve the task. You should use the tools `check_agent` and `check_tool` to carefully go through the existing code to find out whether you should develop a new agent or new tool. -After you have checked the existing code, you should give a detailed plan for developing agents to solve the task based on the existing code, and ask user to confirm or modify the plan. -Finally, after user confirms the plan, you should generate the final coding plan and output it, and transfer the conversation to the 'Programming Triage Agent' to use the plan to execute the task util you finish the task, otherwise I will lose a lot of money. - -Follow the following rules to develop new tools: - -1. If you want to create new tools, you should first create a new file in the `metachain/metachain/tools` directory, write the function, and then add the function to the `metachain/metachain/tools/__init__.py`. Note that when add new tools into `__init__.py`, you first read the file content and keep the original content, then add the new tools into the file. -2. The tool is python functions. -3. When developing a new tool, you should follow the coding style of the existing tools, which means you should write docstring for the function, and add some useful comments to explain the code. -4. Function should usually return a `str` (values will be attempted to be cast as a `str`). -5. If you need to develop a new tool through external API, you should use `get_api_plugin_tools_doc` tool to get the tool doc, such as websearch, news search, financial tools, etc, otherwise you should develop a new tool by yourself. -6. If you need to develop a new tool related to vector database, you should use the pre-built class `Memory` in `/{working_dir}/metachain/metachain/memory/rag_memory.py` to save and retrieve the data. - -Follow the following instructions to develop new agents: - -1. If you want to create new agents, you should first create a new file in the `metachain/metachain/agents` directory, write the function `get_xxx_agent(model: str)`, and then add the function to the `metachain/metachain/agents/__init__.py`. Note that when add new agents into `__init__.py`, you first read the file content and keep the original content, then add the new agents into the file. - -Note that your plan should fit the given rules. -""" - return Agent( - name="Plan Agent", - model=model, - instructions=instructions, - functions=[check_agent, check_tool], - parallel_tool_calls = False - ) \ No newline at end of file diff --git a/metachain/agents/programming_agent.py b/metachain/agents/programming_agent.py deleted file mode 100644 index 75c0c4d..0000000 --- a/metachain/agents/programming_agent.py +++ /dev/null @@ -1,103 +0,0 @@ -from metachain.types import Agent -from metachain.tools import ( - gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag, case_resolved, get_api_plugin_tools_doc -) -from metachain.util import make_message, make_tool_message -from metachain.registry import register_agent -def examples(context_variables): - working_dir = context_variables.get("working_dir", None) - examples_list = [] - examples_list.extend(make_message('user', "Create a list of numbers from 1 to 10, and display them in a web page at port 5000.")) - examples_list.extend(make_message('assistant', "I should first use create_file to write the python code into a file named 'app.py' for starting a web server")) - examples_list.extend(make_tool_message(create_file, {'path': f"/{working_dir}/metachain/app.py", - 'content': """ -from flask import Flask -app = Flask(__name__) - -@app.route('/') -def index(): - numbers = list(range(1, 11)) - return str(numbers) - -if __name__ == '__main__': - app.run(port=5000)"""}, f"File created at: /{working_dir}/metachain/app.py")) - examples_list.extend(make_message('assistant', 'I have created a Python file `app.py` that will display a list of numbers from 1 to 10 when you run it. Let me run the Python file for you using `run_python`')) - examples_list.extend(make_tool_message(run_python, {'code_path': f"/{working_dir}/metachain/app.py"}, f""" -Traceback (most recent call last): - File "/{working_dir}/metachain/app.py", line 2, in - from flask import Flask -ModuleNotFoundError: No module named 'flask'""")) - examples_list.extend(make_message('assistant', "It seems that Flask is not installed. Let me install Flask for you using `execute_command` by the command: pip install flask")) - examples_list.extend(make_tool_message(execute_command, {'command': 'pip install flask'}, """Defaulting to user installation because normal site-packages is not writeable -Collecting flask - Using cached flask-3.0.3-py3-none-any.whl (101 kB) -Collecting blinker>=1.6.2 - Using cached blinker-1.7.0-py3-none-any.whl (13 kB) -Collecting Werkzeug>=3.0.0 - Using cached werkzeug-3.0.2-py3-none-any.whl (226 kB) -Collecting click>=8.1.3 - Using cached click-8.1.7-py3-none-any.whl (97 kB) -Collecting itsdangerous>=2.1.2 - Using cached itsdangerous-2.2.0-py3-none-any.whl (16 kB) -Requirement already satisfied: Jinja2>=3.1.2 in /home/openhands/.local/lib/python3.10/site-packages (from flask) (3.1.3) -Requirement already satisfied: MarkupSafe>=2.0 in /home/openhands/.local/lib/python3.10/site-packages (from Jinja2>=3.1.2->flask) (2.1.5) -Installing collected packages: Werkzeug, itsdangerous, click, blinker, flask -Successfully installed Werkzeug-3.0.2 blinker-1.7.0 click-8.1.7 flask-3.0.3 itsdangerous-2.2.0""")) - examples_list.extend(make_message('assistant', "Now that Flask is installed, let me run the Python file again using `run_python`")) - examples_list.extend(make_tool_message(run_python, {'code_path': f"/{working_dir}/metachain/app.py"}, """* Serving Flask app 'app' - * Debug mode: off -WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. - * Running on http://127.0.0.1:5000 -Press CTRL+C to quit""")) - examples_list.extend(make_message('assistant', """The server is running on port 5000 with PID 124. You can access the list of numbers by visiting http://127.0.0.1:5000. Your task is completed.""")) - return examples_list - -@register_agent(name = "Programming Agent", func_name="get_programming_agent") -def get_programming_agent(model: str): - def instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - ret_instructions = \ - f"""You are a programmer working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - - Your can leverage your capabilities by using the specific functions listed below: - - 1. Creating project structures based on the user requirement using function `create_directory`. - 2. Writing clean, efficient, and well-documented code using function `create_file` and `write_file`. - 3. You must run python scripts using function `run_python` rather than using the `execute_command` function. - 4. Exam the project to re-use the existing code snippets as much as possible, you may need to use - functions like `list_files`, `read_file` and `write_file`. - 5. Writing the code into the file when creating new files, do not create empty files. - 6. If you are required to code base on the specific directory, you can use function `code_rag` to search the relatd codes in the specific directory, and remember you could only search one thing (like a function name, a class name, a variable name, etc.) in the codebase at a time. - 7. Before you write code into the existing files, you should first read the file content using function `read_file` and reserve the original content as much as possible. - 8. Decide whether the task requires execution and debugging before moving to the next or not. - 9. Generate the commands to run and test the current task, and the dependencies list for this task. - 10. You only write Python scripts, don't write Jupiter notebooks which require interactive execution. - 11. Note that every path you read, write, or search should be the absolute path (starting with '/'). - - Your task is using existing project to create agents to complete the user request. - If the existing tools or agents are not enough for your task, you should develop new tools or agents. - Follow the following routine: - 1. If there is enough pre-built tools and agents, create a python script in the `/{working_dir}/metachain` folder to run the agent to complete the user request. - 2. If you need to develop new tools, create a new tool in the `/{working_dir}/metachain/metachain/tools` folder. - 3. If you need to develop new agents, create a new agent in the `/{working_dir}/metachain/metachain/agents` folder. - 4. Create a python script in the `/{working_dir}/metachain` folder to run the new agent to complete the user request. - - Note that if you need OPENAI_API_KEY, my key is: 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 - """ - how_to_guides = context_variables.get("how_to_guides", None) - if how_to_guides: - ret_instructions += \ - f""" - If you want to develop new tools or agents, you should follow the following guides: - {how_to_guides} - """ - return ret_instructions - return Agent( - name="Programming Agent", - model=model, - instructions=instructions, - functions=[gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag, get_api_plugin_tools_doc], - # examples=examples, - tool_choice = "auto", - parallel_tool_calls = False - ) \ No newline at end of file diff --git a/metachain/agents/programming_triage_agent.py b/metachain/agents/programming_triage_agent.py deleted file mode 100644 index e0b336b..0000000 --- a/metachain/agents/programming_triage_agent.py +++ /dev/null @@ -1,415 +0,0 @@ -from metachain.types import Agent -from metachain.tools import ( - gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag, case_resolved, get_api_plugin_tools_doc -) -from metachain.util import make_message, make_tool_message -from metachain.registry import register_agent - -@register_agent(name = "Tool Creation Agent", func_name="get_tool_creation_agent") -def get_tool_creation_agent(model: str): - def tool_creation_instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - return \ - f"""You are working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - Your task is to develop new tools in the `/{working_dir}/metachain/metachain/tools` folder. - - Follow the following instructions to develop new tools: - - 1. If you want to create new tools, you should first create a new file in the `metachain/metachain/tools` directory, write the function, and then add the function to the `metachain/metachain/tools/__init__.py`. Note that when add new tools into `__init__.py`, you first read the file content and keep the original content, then add the new tools into the file. - 2. The tool is python functions. - 3. When developing a new tool, you should follow the coding style of the existing tools, which means you should write docstring for the function, and add some useful comments to explain the code. - 4. Function should usually return a `str` (values will be attempted to be cast as a `str`). - 5. If there is any error during the development process, you should use tools to debug the error and fix the error, and you should not transfer the conversation back to the 'Programming Triage Agent' util the error is fixed. - 6. If you need to develop a new tool through external API, you should use `get_api_plugin_tools_doc` tool to get the tool doc, such as websearch, news search, financial tools, etc, otherwise you should develop a new tool by yourself. - 7. If you need to develop a new tool related to vector database, you should use the pre-built class `Memory` in `/{working_dir}/metachain/metachain/memory/rag_memory.py` to save and retrieve the data. - 8. You can add `if __name__ == "__main__":` at the end of the function file to make sure the function can be executed, and after testing all functions you should develop, using `transfer_back_to_programming_triage_agent` function to transfer the conversation back to the 'Programming Triage Agent', note that you should not transfer the conversation back to the 'Programming Triage Agent' util you finish the your task that is to develop all the tools and make sure they can be executed. - - Note that if you need OPENAI_API_KEY, my key is: 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 - """ - return Agent( - name="Tool Creation Agent", - model=model, - instructions=tool_creation_instructions, - functions=[gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag, get_api_plugin_tools_doc], - tool_choice = "auto", - parallel_tool_calls = False - ) - -@register_agent(name = "Agent Creation Agent", func_name="get_agent_creation_agent") -def get_agent_creation_agent(model: str): - def agent_creation_instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - return \ - f"""You are working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - Your task is to develop new agents in the `/{working_dir}/metachain/metachain/agents` folder. - - Follow the following instructions to develop new agents: - - 1. If you want to create new agents, you should first create a new file in the `metachain/metachain/agents` directory, write the function `get_xxx_agent(model: str)`, and then add the function to the `metachain/metachain/agents/__init__.py`. Note that when add new agents into `__init__.py`, you first read the file content and keep the original content, then add the new agents into the file. - 2. In this stage, you should not run the agent, you should only develop the agent. - 3. You may need to develop more than one agent, and in this stage you should not concern the relationship between agents. - 4. After developing a new agent, you should use `transfer_back_to_programming_triage_agent` function to transfer the conversation back to the 'Programming Triage Agent', note that you should not transfer the conversation back to the 'Programming Triage Agent' util you finish the your task that is to develop all the agents. - - - And there is a guide for you to follow: - - """+\ - r"""An `Agent` simply encapsulates a set of `instructions` with a set of `functions` (plus some additional settings below), and has the capability to hand off execution to another `Agent`. - - While it's tempting to personify an `Agent` as "someone who does X", it can also be used to represent a very specific workflow or step defined by a set of `instructions` and `functions` (e.g. a set of steps, a complex retrieval, single step of data transformation, etc). This allows `Agent`s to be composed into a network of "agents", "workflows", and "tasks", all represented by the same primitive. - - ### `Agent` Fields - - | Field | Type | Description | Default | - | ---------------- | ------------------------ | ------------------------------------------------------------ | ---------------------------- | - | **name** | `str` | The name of the agent. | `"Agent"` | - | **model** | `str` | The model to be used by the agent. | `"gpt-4o"` | - | **instructions** | `str` or `func() -> str` | Instructions for the agent, can be a string or a callable returning a string. | `"You are a helpful agent."` | - | **functions** | `List` | A list of functions that the agent can call. | `[]` | - | **tool_choice** | `str` | The tool choice for the agent, if any. | `None` | - - #### Instructions - - `Agent` `instructions` are directly converted into the `system` prompt of a conversation (as the first message). Only the `instructions` of the active `Agent` will be present at any given time (e.g. if there is an `Agent` handoff, the `system` prompt will change, but the chat history will not.) - - ```python - agent = Agent( - instructions="You are a helpful agent." - ) - ``` - - The `instructions` can either be a regular `str`, or a function that returns a `str`. The function can optionally receive a `context_variables` parameter, which will be populated by the `context_variables` passed into `client.run()`. - - ```python - def instructions(context_variables): - user_name = context_variables["user_name"] - return f"Help the user, {user_name}, do whatever they want." - - agent = Agent( - instructions=instructions - ) - response = client.run( - agent=agent, - messages=[{"role":"user", "content": "Hi!"}], - context_variables={"user_name":"John"} - ) - print(response.messages[-1]["content"]) - ``` - - ``` - Hi John, how can I assist you today? - ``` - """ - return Agent( - name="Agent Creation Agent", - model=model, - instructions=agent_creation_instructions, - functions=[gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag], - tool_choice = "auto", - parallel_tool_calls = False - ) - -@register_agent(name = "Workflow Run Agent", func_name="get_workflow_run_agent") -def get_workflow_run_agent(model: str): - def workflow_run_instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - return \ - f"""You are working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - Your task is to run workflows to complete the user request. - - Follow the following instructions to run workflows: - - 1. The workflow is a directed graph represented by a dictionary, with the format: - """ +\ - r""" - { - "type": "object", - "properties": { - "nodes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "agent_name": {"type": "string"}, - "agent_tools": {"type": "array", "items": {"type": "string"}}, - "input": {"type": "string"}, - "output": {"type": "string"}, - "is_start": {"type": "boolean"}, - "is_end": {"type": "boolean"} - }, - "required": ["agent_name", "agent_tools", "input", "output", "is_start", "is_end"], - "additionalProperties": False - } - }, - "edges": { - "type": "array", - "items": { - "type": "object", - "properties": { - "start": {"type": "string"}, - "end": {"type": "string"}, - "description": {"type": "string"} - }, - "required": ["start", "end", "description"], - "additionalProperties": False - } - } - }, - "required": ["nodes", "edges"], - "additionalProperties": False - } - 2. First create a python script named `run_xxx_workflow.py` in the `/{working_dir}/metachain` directory, and the workflow graph should be instantiated by `Graph` class in `metachain/metachain/workflow/flowgraph.py`, using `Graph.from_dict()` method. - 3. After instantiating the workflow graph, you should use `FlowEngine` class in `metachain/metachain/workflow/flowengine.py`, using `FlowEngine(g = g, model=model)` to instantiate the workflow engine. - 4. Then you can use `engine.run_meta(query, context_variables = context_variables, debug = True)` to run the workflow。 - 5. After running the workflow, you should tell the 'Programming Triage Agent' final running results and use `transfer_back_to_programming_triage_agent` function to transfer the conversation back to the 'Programming Triage Agent'. - 6. If there is any error during the running process, you should use tools to debug the error and fix the error, and you should not transfer the conversation back to the 'Programming Triage Agent' util the error is fixed. - - """+\ - r""" - There is an example to run a workflow based on the 'metachain' project: - - ```python - from metachain.workflow import Graph, FlowEngine - from metachain.types import Response - import os - os.environ["OPENAI_API_KEY"] = "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" - model = 'gpt-4o-2024-08-06' - workflow_dict = { - "nodes": [ - { - "agent_name": "user_request", - "agent_tools": [], - "input": "PDF file", - "output": "PDF file", - "is_start": True, - "is_end": False - }, - { - "agent_name": "read_pdf_agent", - "agent_tools": [ - "read_pdf" - ], - "input": "PDF file", - "output": "Extracted text", - "is_start": False, - "is_end": False - }, - { - "agent_name": "chunk_text_agent", - "agent_tools": [ - "chunk_text" - ], - "input": "Extracted text", - "output": "Chunked text", - "is_start": False, - "is_end": False - }, - { - "agent_name": "vectordb_agent", - "agent_tools": [ - "vectordb_save" - ], - "input": "Chunked text", - "output": "Text saved to VectorDB", - "is_start": False, - "is_end": False - }, - { - "agent_name": "retrieve_vectordb_agent", - "agent_tools": [ - "retrieve_vectordb" - ], - "input": "Text saved to VectorDB", - "output": "Method section text", - "is_start": False, - "is_end": False - }, - { - "agent_name": "output", - "agent_tools": [], - "input": "Method section text", - "output": "Description of Method section", - "is_start": False, - "is_end": True - } - ], - "edges": [ - { - "start": "user_request", - "end": "read_pdf_agent", - "description": "Send PDF to be read." - }, - { - "start": "read_pdf_agent", - "end": "chunk_text_agent", - "description": "Send extracted text for chunking." - }, - { - "start": "chunk_text_agent", - "end": "vectordb_agent", - "description": "Save chunked text to VectorDB." - }, - { - "start": "vectordb_agent", - "end": "retrieve_vectordb_agent", - "description": "Retrieve Method section." - }, - { - "start": "retrieve_vectordb_agent", - "end": "output", - "description": "Output of Method section text." - } - ] - } - g = Graph.from_dict(workflow_dict) - engine = FlowEngine(g = g, model=model) - - query = 'I have a paper in the pdf format, and I want to know what the method section is about.' - context_variables = {} - response: Response = engine.run_meta(query, context_variables = context_variables, debug = True) - print(response.messages[-1]['content']) - ``` - """ - return Agent( - name="Workflow Run Agent", - model=model, - instructions=workflow_run_instructions, - functions=[gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag], - tool_choice = "auto", - parallel_tool_calls = False - ) -@register_agent(name = "Agent Run Agent", func_name="get_agent_run_agent") -def get_agent_run_agent(model: str): - def agent_run_instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - return \ - f"""You are working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - Your task is to run agents to complete the user request. - - Follow the following instructions to run agents: - - 1. To complete the user request using 'metachain' project, you need to run the agent by creating a python file named `run_xxx_agent.py` in the 'metachain' directory, and use `run_python` function to run the agent. - 2. If there is any error during the running process, you should use tools to debug the error and fix the error, and you should not transfer the conversation back to the 'Programming Triage Agent' util the error is fixed. - 3. After running the agent, you should tell the 'Programming Triage Agent' final running results and use `transfer_back_to_programming_triage_agent` function to transfer the conversation back to the 'Programming Triage Agent', note that you should not transfer the conversation back to the 'Programming Triage Agent' util you finish the your task that is to run all the agents. - - Note that if you need OPENAI_API_KEY, my key is: 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 - - And there is a guide for you to follow: - - """+\ - r""" - ```python - from metachain import MetaChain - from metachain.agents import get_programming_agent - - client = MetaChain() - programming_agent = get_programming_agent(model) - context_variables = {"key": value} - messages = [{"role": "user", "content": task_instructions}] - response = client.run(agent=programming_agent, messages=messages, context_variables=context_variables, debug=True) - ``` - - ### `client.run()` - - MetaChain's `run()` function is analogous to the `chat.completions.create()` function in the Chat Completions API - it takes `messages` and returns `messages` and saves no state between calls. Importantly, however, it also handles Agent function execution, hand-offs, context variable references, and can take multiple turns before returning to the user. - - At its core, MetaChain's `client.run()` implements the following loop: - - 1. Get a completion from the current Agent - 2. Execute tool calls and append results - 3. Switch Agent if necessary - 4. Update context variables, if necessary - 5. If no new function calls, return - - #### Arguments - - | Argument | Type | Description | Default | - | --------------------- | ------- | ------------------------------------------------------------ | -------------- | - | **agent** | `Agent` | The (initial) agent to be called. | (required) | - | **messages** | `List` | A list of message objects, identical to [Chat Completions `messages`](https://platform.openai.com/docs/api-reference/chat/create#chat-create-messages) | (required) | - | **context_variables** | `dict` | A dictionary of additional context variables, available to functions and Agent instructions | `{}` | - | **max_turns** | `int` | The maximum number of conversational turns allowed | `float("inf")` | - | **model_override** | `str` | An optional string to override the model being used by an Agent | `None` | - | **execute_tools** | `bool` | If `False`, interrupt execution and immediately returns `tool_calls` message when an Agent tries to call a function | `True` | - | **stream** | `bool` | If `True`, enables streaming responses | `False` | - | **debug** | `bool` | If `True`, enables debug logging | `False` | - - Once `client.run()` is finished (after potentially multiple calls to agents and tools) it will return a `Response` containing all the relevant updated state. Specifically, the new `messages`, the last `Agent` to be called, and the most up-to-date `context_variables`. You can pass these values (plus new user messages) in to your next execution of `client.run()` to continue the interaction where it left off – much like `chat.completions.create()`. (The `run_demo_loop` function implements an example of a full execution loop in `/MetaChain/repl/repl.py`.) - - #### `Response` Fields - - | Field | Type | Description | - | --------------------- | ------- | ------------------------------------------------------------ | - | **messages** | `List` | A list of message objects generated during the conversation. Very similar to [Chat Completions `messages`](https://platform.openai.com/docs/api-reference/chat/create#chat-create-messages), but with a `sender` field indicating which `Agent` the message originated from. | - | **agent** | `Agent` | The last agent to handle a message. | - | **context_variables** | `dict` | The same as the input variables, plus any changes. | - """ - return Agent( - name="Agent Run Agent", - model=model, - instructions=agent_run_instructions, - functions=[gen_code_tree_structure, execute_command, read_file, create_file, write_file, list_files, create_directory, run_python, code_rag], - tool_choice = "auto", - parallel_tool_calls = False - ) -@register_agent(name = "Programming Triage Agent", func_name="get_programming_triage_agent") -def get_programming_triage_agent(model: str): - def programming_triage_instructions(context_variables): - working_dir = context_variables.get("working_dir", None) - ret_instructions = \ - f"""You are a programmer working on an agent project named 'metachain' whose path is /{working_dir}/metachain. - - Your overall task is using existing project to create agents or workflows to complete the user request. - - If the existing tools or agents are not enough for your task, you should develop new tools or agents. - And you should determine which agent is best suited to handle the user's request, and transfer the conversation to that agent based on the following routine: - - 1. If you need to develop new tools, transfer the conversation to the 'Tool Creation Agent' to create a new tool in the `/{working_dir}/metachain/metachain/tools` folder using function `transfer_to_tool_creation_agent`. - 2. If you need to develop new agents, transfer the conversation to the 'Agent Creation Agent' to create a new agent in the `/{working_dir}/metachain/metachain/agents` folder using function `transfer_to_agent_creation_agent`. - 3. After there is enough pre-built tools and agents, transfer the conversation to the 'Agent Run Agent' or 'Workflow Run Agent' to create agents or workflows to complete the user request using function `transfer_to_agent_run_agent` or `transfer_to_workflow_run_agent`. - 4. Note that if you should create both new tools and new agents, you should create the new tools first, and then create the new agents. - - Note that if there are not enough pre-built tools, you should develop new tools first, and then develop new agents, and finally run the workflow or agent to complete the user request. - - Once you receive the develop plan, you should not stop util you finish the task. - """ - how_to_guides = context_variables.get("how_to_guides", None) - if how_to_guides: - ret_instructions += \ - f""" - If you want to develop new tools or agents, you should follow the following guides: - {how_to_guides} - """ - return ret_instructions - tool_creation_agent = get_tool_creation_agent(model) - agent_creation_agent = get_agent_creation_agent(model) - workflow_run_agent = get_workflow_run_agent(model) - agent_run_agent = get_agent_run_agent(model) - def transfer_to_tool_creation_agent(input: str): - return tool_creation_agent - def transfer_to_agent_creation_agent(input: str): - return agent_creation_agent - def transfer_to_workflow_run_agent(input: str): - return workflow_run_agent - def transfer_to_agent_run_agent(input: str): - return agent_run_agent - programming_triage_agent = Agent( - name="Programming Triage Agent", - model=model, - instructions=programming_triage_instructions, - functions=[transfer_to_tool_creation_agent, transfer_to_agent_creation_agent, transfer_to_workflow_run_agent, transfer_to_agent_run_agent], - tool_choice = "auto", - parallel_tool_calls = False - ) - def transfer_back_to_programming_triage_agent(): - """Call this function if the existing agent has already finished the sub-task.""" - return programming_triage_agent - tool_creation_agent.functions.append(transfer_back_to_programming_triage_agent) - agent_creation_agent.functions.append(transfer_back_to_programming_triage_agent) - workflow_run_agent.functions.append(transfer_back_to_programming_triage_agent) - agent_run_agent.functions.append(transfer_back_to_programming_triage_agent) - return programming_triage_agent - - -if __name__ == "__main__": - print(agent_creation_instructions({"working_dir": "metachain"})) diff --git a/metachain/agents/tool_agent/agent_editor.py b/metachain/agents/tool_agent/agent_editor.py deleted file mode 100644 index 738be60..0000000 --- a/metachain/agents/tool_agent/agent_editor.py +++ /dev/null @@ -1,38 +0,0 @@ -from metachain.registry import register_agent -from metachain.tools.meta.edit_agents import list_agents, create_agent, delete_agent, run_agent -from metachain.tools.terminal_tools import execute_command -from metachain.types import Agent -from metachain.io_utils import read_file - -@register_agent(name = "Agent Editor Agent", func_name="get_agent_editor_agent") -def get_agent_editor_agent(model: str) -> str: - """ - The agent editor is an agent that can be used to edit the agents. - """ - def instructions(context_variables): - return f"""\ -You are an agent editor agent that can be used to edit the agents. You are working on a Agent framework named MetaChain, and your responsibility is to edit the agents in the MetaChain, so that the agents can be used to help the user with their request. - -The existing agents are shown below: -{list_agents(context_variables)} - -If you want to create a new agent, you should: -1. follow the format of the `get_dummy_agent` below: -```python -{read_file('metachain/agents/dummy_agent.py')} -``` -2. you successfully create the agent only after you have successfully run the agent with the `run_agent` function to satisfy the user's request. - -3. If you encounter any error while creating and running the agent, like dependency missing, you should use the `execute_command` function to install the dependency. - -[IMPORTANT] The `register_plugin_agent` registry function is strictly required for a agent implementation to be recognized by the MetaChain framework. -""" - tool_list = [list_agents, create_agent, delete_agent, run_agent, execute_command] - return Agent( - name="Agent Editor Agent", - model=model, - instructions=instructions, - functions=tool_list, - tool_choice = "required", - parallel_tool_calls = False - ) diff --git a/metachain/agents/tool_agent/meta_plan_agent.py b/metachain/agents/tool_agent/meta_plan_agent.py deleted file mode 100644 index 03b2906..0000000 --- a/metachain/agents/tool_agent/meta_plan_agent.py +++ /dev/null @@ -1,40 +0,0 @@ -from metachain.types import Agent -from pydantic import BaseModel -from metachain.tools.meta.tool_retriever import get_api_plugin_tools_doc -from metachain.tools.meta.search_tools import search_trending_models_on_huggingface, get_hf_model_tools_doc -from metachain.tools.meta.edit_tools import list_tools -from typing import Union -from metachain.environment import DockerEnv, LocalEnv - - -def get_meta_plan_agent(model: str) -> Agent: - def instructions(context_variables): - code_env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - instructions = f"""\ -You are a helpful planner that can help `Tool Editor Agent` how to use MetaChain to solve the user's request. - -Existing tools you already have: -{list_tools(context_variables)} - -You should first fully understand the user's request, then analyze the existing tools and determine which tools are needed to solve the user's request, finally, you should transfer the conversation to the `Meta Agent` with the plan of using the tools. - -If existing tools are not enough for your task, you should develop new tools. - -1. [IMPORTANT] If you want to use third-party api, especially for some tasks related to Finance, Entertainment, eCommerce, Food, Travel, Sports, you MUST use the `get_api_plugin_tools_doc` tool to search information from existing api documents, it contains how to implement the api and API keys. - - -2. [IMPORTANT] If you want to use Hugging Face models, especially for some tasks related to vision, audio, video, you should use the `search_trending_models_on_huggingface` tool to search trending models related to the specific task on Hugging Face, and then use the `get_hf_model_tools_doc` tool to get the detailed information about the specific model. - -3. [IMPORTANT] As for the tags ['image-text-to-text', 'visual-question-answering', 'video-text-to-text'] and ANY visual tasks, you should use `visual_question_answering` tool instead of Hugging Face models. - -4. [IMPORTANT] You can not use `transfer_back_to_meta_agent_with_plans` util you have fully understood the user's request and have try your best to search information from exsiting resources if you want to create a new tool. -""" - return instructions - return Agent( - name="Meta Plan Agent", - model=model, - instructions=instructions, - functions=[get_api_plugin_tools_doc, search_trending_models_on_huggingface, get_hf_model_tools_doc], - tool_choice = "required", - parallel_tool_calls = False - ) diff --git a/metachain/agents/tool_agent/tool_agent.py b/metachain/agents/tool_agent/tool_agent.py deleted file mode 100644 index c0a5961..0000000 --- a/metachain/agents/tool_agent/tool_agent.py +++ /dev/null @@ -1,100 +0,0 @@ -from metachain.registry import register_agent -from metachain.types import Agent, Result -from metachain.environment import DockerEnv, LocalEnv -from metachain.tools.meta.edit_tools import list_tools -from metachain.agents.tool_agent.tool_editor import get_tool_editor_agent -from typing import Union -from metachain.tools.inner import case_resolved, case_not_resolved -from pydantic import BaseModel -from metachain.util import function_to_json -from metachain.agents.tool_agent.meta_plan_agent import get_meta_plan_agent - -class ToolDescription(BaseModel): - tool_functionalities: str - existing: bool - tool_docs: str - -class ToolPlan(BaseModel): - tool_name: str - tool_description: ToolDescription - -@register_agent(name = "Tool Agent", func_name="get_tool_agent") -def get_tool_agent(model: str) -> Agent: - """ - The tool agent is an agent that can be used to create and run other tools. - """ - def instructions(context_variables): - code_env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - instructions = f"""\ -You are a helpful assistant that can help the user with their request by creating and running tools in the Metachain agent framework. Your responsibility is to determine which sub-agent is best suited to handle the user's request under the current context, and transfer the conversation to that sub-agent. And you should not stop to try to solve the user's request by transferring to another sub-agent only until the task is completed. - -Your sub-agents are: -1. `Meta Plan Agent`: This agent is used to plan how to use MetaChain to solve the user's request. -2. `Tool Editor Agent`: This agent is used to run and edit tools. - -Existing tools you already have: -{list_tools(context_variables)} - -You should first transfer the conversation to the `Meta Plan Agent` to plan how to use MetaChain to solve the user's request, and the plan should follow the following constraints: - -1. If exising tools are enough for your task, you can directly use them to solve the user's request. - -2. If exising tools are not enough for your task, `Meta Plan Agent` should search information from the resources and plan how to create new tools. - -3. [IMPORTANT] As for the tags ['image-text-to-text', 'visual-question-answering', 'video-text-to-text'] and ANY visual tasks, you should use `visual_question_answering` tool instead of Hugging Face models. -""" - return instructions - - tool_editor_agent: Agent = get_tool_editor_agent(model) - meta_plan_agent: Agent = get_meta_plan_agent(model) - def transfer_to_tool_editor_agent(sub_task: str): - """ - Args: - sub_task: The detailed description of the sub-task that the `Meta Agent` will ask the `Tool Editor Agent` to do. - """ - return tool_editor_agent - def transfer_to_meta_plan_agent(sub_task: str): - """ - Use this function when you want to plan how to use MetaChain to solve the user's request. - Args: - sub_task: The detailed description of the sub-task that the `Meta Agent` will ask the `Meta Plan Agent` to do. - """ - return meta_plan_agent - meta_agent = Agent( - name="Meta Agent", - model=model, - instructions=instructions, - functions=[transfer_to_meta_plan_agent, transfer_to_tool_editor_agent, case_resolved, case_not_resolved], - tool_choice = "required", - parallel_tool_calls = False - ) - - def transfer_back_to_meta_agent(task_status: str): - """ - Args: - task_status: The status of the task that the `Meta Agent` will ask the `Meta Agent` to do. - """ - return meta_agent - def transfer_back_to_meta_agent_with_plans(tool_development_steps: list[ToolPlan]) -> str: - """ - This function is used to plan how to use MetaChain to solve the user's request. You can use this function only after you have fully understood the user's request and have try your best to search information from exsiting resources. - - Args: - tool_development_steps: The steps of tool development. It is a list of dictionaries, each dictionary contains the tools name you should use in the exsiting MetaChain or the tools name you should develop. If the tool is not existing, dictionaries should contain the tool documentation. - """ - tool_str = "\n".join([f"{tool['tool_name']}: {tool['tool_description']['tool_functionalities']} [{tool['tool_description']['existing']}]" for tool in tool_development_steps]) - ret_val = f"""\ - Receiving user's request, I have the following plans to use MetaChain to solve the user's request: - As for using existing tools, I have the following plans: - {tool_str} - """ - return Result( - value=ret_val, - agent=meta_agent - ) - - tool_editor_agent.functions.append(transfer_back_to_meta_agent) - meta_plan_agent.functions.append(transfer_back_to_meta_agent_with_plans) - - return meta_agent - diff --git a/metachain/agents/tool_agent/tool_editor.py b/metachain/agents/tool_agent/tool_editor.py deleted file mode 100644 index 9fb9a6b..0000000 --- a/metachain/agents/tool_agent/tool_editor.py +++ /dev/null @@ -1,143 +0,0 @@ -from metachain.registry import register_agent -from metachain.tools.meta.edit_tools import list_tools, create_tool, delete_tool, run_tool, get_metachain_path -from metachain.tools.meta.tool_retriever import get_api_plugin_tools_doc -from metachain.tools.meta.search_tools import search_trending_models_on_huggingface, get_hf_model_tools_doc -from metachain.types import Agent -from metachain.io_utils import read_file -from metachain.tools.terminal_tools import execute_command - -def get_tool_editor_agent(model: str) -> Agent: - """ - The tool editor is an agent that can be used to edit the tools. - """ - def instructions(context_variables): - return f"""\ -You are a tool editor agent responsible for managing plugin tools in the MetaChain framework. Your core responsibility is to edit, create, and manage plugin tools that can be used by other agents. - -[PLUGIN TOOLS SYSTEM] -- Plugin tools are the building blocks of MetaChain -- All available plugin tools are as follows: -{list_tools(context_variables)} -- Plugin tools can ONLY be executed using `run_tool(tool_name, run_code)` -- NEVER try to import and run tools directly - always use `run_tool` - -[AVAILABLE MANAGEMENT TOOLS] -1. list_tools(): - - Lists all existing plugin tools - - Returns: tool name, arguments, docstring, implementation details - - Use this FIRST to check existing tools - -2. create_tool(tool_name: str, tool_code: str): - - Creates new plugin tools - - Requires proper registration using @register_plugin_tool - -3. run_tool(tool_name: str, run_code: str,): - - REQUIRED method to execute any plugin tool - - Format: run_tool("tool_name", "from metachain.tools import tool_name; print(tool_name(args))") - -4. delete_tool(tool_name: str,): - - Removes existing plugin tools - - Use with caution - -5. get_api_plugin_tools_doc: - - Required for third-party API integrations - - Must be used for Finance, Entertainment, etc. - -6. execute_command: - - Handles system-level operations - - Use for dependency installation - -[CRITICAL PRINCIPLES FOR PLUGIN TOOLS] -1. Tools MUST be abstract, modular, and reusable: - - Use generic function names (e.g., `download_media` instead of `download_youtube_video`) - - Break complex tasks into smaller, reusable components - - Avoid task-specific implementations - - Use parameters instead of hardcoded values - -2. For ALL visual tasks (images, videos, visual analysis): - - MUST use the existing `visual_question_answering` plugin tool - - NO direct implementation of visual processing - - Chain `visual_question_answering` with other tools as needed - -[WORKFLOW FOR PLUGIN TOOL MANAGEMENT] -1. Always start with `list_tools()` to check existing tools -2. For new plugin tools: - a. Design generic, reusable interface - b. Follow the template format: -```python -{read_file('metachain/tools/dummy_tool.py')} -``` - c. Create using `create_tool` - d. Test using `run_tool` - e. Handle dependencies with `execute_command` - -[IMPORTANT RULES] -- ALL tools must be registered with @register_plugin_tool -- ALL tools must have type hints -- Each tool does ONE thing well -- Create modular tools that can be combined -- ALWAYS use `run_tool` to execute plugin tools -- NEVER modify the `visual_question_answering` tool - -[TOOL TESTING EXAMPLE] -Correct way to test a plugin tool: -```python -result = run_tool( - tool_name="your_tool", - run_code="from metachain.tools import your_tool; print(your_tool(param1='value1'))", - context_variables=context_variables -) -``` -""" - tool_list = [list_tools, create_tool, run_tool, delete_tool, get_api_plugin_tools_doc, execute_command] - return Agent( - name="Tool Editor Agent", - model=model, - instructions=instructions, - functions=tool_list, - tool_choice = "required", - parallel_tool_calls = False - ) - - -""" -5. [IMPORTANT] If you want to use Hugging Face models, especially for some tasks related to vision, audio, video, you should use the `search_trending_models_on_huggingface` tool to search trending models related to the specific task on Hugging Face, and then use the `get_hf_model_tools_doc` tool to get the detailed information about the specific model. - -6. [IMPORTANT] As for the tags ['image-text-to-text', 'visual-question-answering', 'video-text-to-text'] and ANY visual tasks, you should use `visual_question_answering` tool instead of Hugging Face models. -""" - -"""\ -You are a tool editor agent that can be used to edit the tools. You are working on a Agent framework named MetaChain, and your responsibility is to edit the tools in the MetaChain, so that the tools can be used by the agents to help the user with their request. - -The existing tools are shown below: -{list_tools(context_variables)} - -If you want to create a new tool, you should: -1. follow the format of the `tool_dummy` below. Note that if the tool should be used with third-part api key, you should write the api key inside the definition of the tool: -```python -{read_file('metachain/tools/dummy_tool.py')} -``` - -2. you successfully create the tool only after you have successfully run the tool with the `run_tool` function, and an example of testing the tool is shown below.: -```python -from metachain.tools import tool_dummy - -if __name__ == "__main__": - ... # some pre-operations - print(run_tool(tool_name="tool_dummy", run_code="from metachain.tools import tool_dummy; print(tool_dummy(args1=args1, args2=args1, ...))")) -``` - -3. If you encounter any error while creating and running the tool, like dependency missing, you should use the `execute_command` function to install the dependency. - -4. [IMPORTANT] If you want to use third-party api, especially for some tasks related to Finance, Entertainment, eCommerce, Food, Travel, Sports, you MUST use the `get_api_plugin_tools_doc` tool to search information from existing api documents, it contains how to implement the api and API keys. - -[IMPORTANT] The `register_plugin_tool` registry function is strictly required for a tool implementation to be recognized by the MetaChain framework. - -[IMPORTANT] The tool you create should be abstract, modular, and reusable. Specifically, the function name must be generic (e.g., -`count_objects` instead of `count_apples`). The function must use parameters instead of hard-coded values. The -function body must be self-contained. - -[IMPORTANT] Explicitly declare input and output data types using type hints. - -[IMPORTANT] For ANY visual tasks related to image and video, you should use `visual_question_answering` tool. -""" \ No newline at end of file diff --git a/metachain/agents/tool_check_agent.py b/metachain/agents/tool_check_agent.py deleted file mode 100644 index 7ff4ebe..0000000 --- a/metachain/agents/tool_check_agent.py +++ /dev/null @@ -1,28 +0,0 @@ -from metachain.types import Agent -from metachain.tools import ( - get_api_plugin_tools_doc, check_tool -) -from metachain.registry import register_agent - - -@register_agent(name = "Tool Check Agent", func_name="get_tool_check_agent") -def get_tool_check_agent(model: str): - def instructions(context_variables): - return \ -f"""You are a developer working on a project named 'metachain'. -You are given a user request and required to use existing project code to solve the task. -Your goal is to enrich the functionality of existing list of tools in the `tools` folder as much as possible, so that once the similar task occurs again, the agent can solve it directly by using the tools without developing new tools. -whether you should develop some new tools to integrate into the agent to directly solve the task. -If you use an external api, you should always develop a new tool, rather than using coding-related tools. -Answer 'Needed' or 'Not needed' first and then give your reason. ('Needed' means you should develop a new tool, 'Not needed' means you should not develop a new tool). -You can use `check_tool` tool to review the existing tools and check whether developing a new tool is needed. -""" - return Agent( - name="Tool Check Agent", - model=model, - instructions=instructions, - functions=[check_tool], - parallel_tool_calls = False - ) - -"""If you need to develop a new tool, you must use `get_tool_doc` tool to get the tool doc.""" \ No newline at end of file diff --git a/metachain/environment/browser_cookies.py b/metachain/environment/browser_cookies.py index ecfa24e..2437f6c 100644 --- a/metachain/environment/browser_cookies.py +++ b/metachain/environment/browser_cookies.py @@ -8,13 +8,6 @@ def load_cookies_from_json(json_path): cookies = json.load(f) return cookies -# COOKIES_LIST = [] -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "orcid.org.cookies.json") -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "www.researchgate.net.cookies.json") -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "github.com.cookies.json") -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "www.youtube.com.cookies.json") -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "www.ncbi.nlm.nih.gov.cookies.json") -# COOKIES_LIST += load_cookies_from_json(wd / "cookie_json" / "archive.org.cookies.json") def convert_cookies_to_python(): all_cookies = [] diff --git a/metachain/environment/cookie_json/README.md b/metachain/environment/cookie_json/README.md new file mode 100644 index 0000000..031e7a8 --- /dev/null +++ b/metachain/environment/cookie_json/README.md @@ -0,0 +1,36 @@ +# How to obtain cookie json files + +## What are cookies? +Cookies are small pieces of data stored by websites on users' computers, containing information like login status and preferences. They are essential for web automation as they allow automated browsers to maintain authenticated sessions, skip repeated logins, and simulate real user behavior across multiple page visits. + +## How to organize them in this folder? +We recommend you to use the Google Chrome browser with the extension "Export cookie JSON file for Puppeteer", as show in the following figure: + +![extension](../../../assets/cookies/extension.png) + +1. Go to a specific website and login. +2. Then use the extension to export the cookies, and save it as a json file in the `cookie_json` folder. + +![export](../../../assets/cookies/export.png) + +3. After you have exported all cookies, use the following command to convert them to python code: + +```bash +cd path/to/MetaChain && python metachain/environment/browser_cookies.py +``` + +## Recommended websites + +We recommend you to export the cookies from the following websites: + +- [archive.org](https://archive.org) +- [github.com](https://github.com) +- [nature.com](https://nature.com) +- [orcid.org](https://orcid.org) +- [www.collinsdictionary.com](https://www.collinsdictionary.com) +- [www.jstor.org](https://www.jstor.org) +- [www.ncbi.nlm.nih.gov](https://www.ncbi.nlm.nih.gov) +- [www.pnas.org](https://www.pnas.org) +- [www.reddit.com](https://www.reddit.com) +- [www.researchgate.net](https://www.researchgate.net) +- [www.youtube.com](https://www.youtube.com) diff --git a/metachain/environment/cookie_json/archive.org.cookies.json b/metachain/environment/cookie_json/archive.org.cookies.json deleted file mode 100644 index f608f89..0000000 --- a/metachain/environment/cookie_json/archive.org.cookies.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "name": "donation-identifier", - "value": "8ed6af4cc08b88b68b36fffcb6dd7323", - "domain": ".archive.org", - "path": "/", - "expires": 1741773847.95608, - "httpOnly": false, - "secure": false - }, - { - "name": "abtest-identifier", - "value": "ca9982a6c4240d53598f01665a3c6100", - "domain": ".archive.org", - "path": "/", - "expires": 1741773847.956153, - "httpOnly": false, - "secure": false - }, - { - "name": "test-cookie", - "value": "1", - "domain": ".archive.org", - "path": "/", - "expires": 1734348067.326946, - "httpOnly": false, - "secure": false - }, - { - "name": "g_state", - "value": "{\"i_l\":0}", - "domain": "archive.org", - "path": "/", - "expires": 1748690473, - "httpOnly": false, - "secure": false - }, - { - "name": "logged-in-sig", - "value": "1764674476%201733138476%20Y3yQCmHjxUil%2FcGs%2FgYR6m%2FHA%2F%2FtAtShDsn25N2tNIzvkGr6EkwbEsYEwDTjZ6%2Bu4Iy65eDH5gZVrZayaRZzJEa6R91agNjLC1rmw%2F47W5OXyDVFN5kLX%2Ba2OxNOzEx6Ws%2BLVwFVr%2Bdnbzhdt1vqNTEpECwy14%2Fu4n9qXGANJ5IKEO7pfu4ONymTb0RWH%2B158Wphp0Gluy9bR1a3t3TSGM%2FyhBEa37FJ56ckJJDghwIVsANhhu%2FextDlCDLXDkPtxLrwdX%2FAlbBoNFIeQ5%2BzoJX21KKQVdJxVWzSRLb4LXyFQsvhkpL221qlJ%2FDQER53IrTAIkmxrDI4cfjumUnKTQ%3D%3D", - "domain": ".archive.org", - "path": "/", - "expires": 1764674476.838234, - "httpOnly": false, - "secure": false - }, - { - "name": "logged-in-user", - "value": "jiabintang77%40gmail.com", - "domain": ".archive.org", - "path": "/", - "expires": 1764674476.838343, - "httpOnly": false, - "secure": false - }, - { - "name": "PHPSESSID", - "value": "jteta3bg9mb3t8e6dkp7r6mcd4", - "domain": ".archive.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "donation", - "value": "x", - "domain": ".archive.org", - "path": "/", - "expires": 1736767334, - "httpOnly": false, - "secure": false - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193871a38b622b1-030839df772cce-1e525636-1fa400-193871a38b71d9a%22%2C%22%24device_id%22%3A%20%22193871a38b622b1-030839df772cce-1e525636-1fa400-193871a38b71d9a%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".archive.org", - "path": "/", - "expires": 1764675133, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/dl-acm-org.eproxy.lib.hku.hk.cookies.json b/metachain/environment/cookie_json/dl-acm-org.eproxy.lib.hku.hk.cookies.json deleted file mode 100644 index 66bce88..0000000 --- a/metachain/environment/cookie_json/dl-acm-org.eproxy.lib.hku.hk.cookies.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "name": "AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20060%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733149186s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1767701986.053151, - "httpOnly": false, - "secure": false - }, - { - "name": "ezproxy", - "value": "e1~OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false - }, - { - "name": "ezproxyl", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ezproxyn", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1765083373, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/github.com.cookies.json b/metachain/environment/cookie_json/github.com.cookies.json deleted file mode 100644 index a5e0c43..0000000 --- a/metachain/environment/cookie_json/github.com.cookies.json +++ /dev/null @@ -1,159 +0,0 @@ -[ - { - "name": "_device_id", - "value": "49f9d6cfbd603c8509e73807be70a438", - "domain": "github.com", - "path": "/", - "expires": 1764674868.858374, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "MicrosoftApplicationsTelemetryDeviceId", - "value": "3966ee53-78ca-4fa3-95d7-85e299cecee4", - "domain": "github.com", - "path": "/", - "expires": 1763890136.033527, - "httpOnly": false, - "secure": true - }, - { - "name": "_octo", - "value": "GH1.1.1313590405.1727940967", - "domain": ".github.com", - "path": "/", - "expires": 1759476967, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "GHCC", - "value": "Required:1-Analytics:1-SocialMedia:1-Advertising:1", - "domain": ".github.com", - "path": "/", - "expires": 1745563377, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "MSFPC", - "value": "GUID=3452f0b49fd14d349a6dbf8ddee26d60&HASH=3452&LV=202410&V=4&LU=1730011383391", - "domain": "github.com", - "path": "/", - "expires": 1761547383.513164, - "httpOnly": false, - "secure": true - }, - { - "name": "logged_in", - "value": "yes", - "domain": ".github.com", - "path": "/", - "expires": 1762511337.053395, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "saved_user_sessions", - "value": "151511798%3A8an8gJwE3la35NvNIyacuRFRSHlup_9RBaQ5q4CThhvPV89o%7C152840453%3A2Quysh6Cns_a0IpeKcw-GAUZIt6ZndbJ7BoGdxx11qkZa9bi%7C151510669%3AMpYw2DQuFwt3NJiimm36OWLTQmoWFzVcSUbLuV8SBFRPqN8-%7C165454715%3AZSjwi4MUxVCr91r-m1ElvPL2L0DGDSoSo6uwV7pPpliml3js%7C148674909%3ALnLJclEDIxFjFcwX0eBlgOJzbDpsxKedtd6So7_EFs6HPtL7%7C56426168%3AmM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g", - "domain": "github.com", - "path": "/", - "expires": 1739599354.295483, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "user_session", - "value": "mM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g", - "domain": "github.com", - "path": "/", - "expires": 1734348468.858989, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "__Host-user_session_same_site", - "value": "mM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g", - "domain": "github.com", - "path": "/", - "expires": 1734348468.859144, - "httpOnly": true, - "secure": true, - "sameSite": "Strict" - }, - { - "name": "dotcom_user", - "value": "tjb-tech", - "domain": ".github.com", - "path": "/", - "expires": 1763647073.257243, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "color_mode", - "value": "%7B%22color_mode%22%3A%22auto%22%2C%22light_theme%22%3A%7B%22name%22%3A%22light%22%2C%22color_mode%22%3A%22light%22%7D%2C%22dark_theme%22%3A%7B%22name%22%3A%22dark%22%2C%22color_mode%22%3A%22dark%22%7D%7D", - "domain": ".github.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "cpu_bucket", - "value": "xlg", - "domain": ".github.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "preferred_color_mode", - "value": "light", - "domain": ".github.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "tz", - "value": "Asia%2FHong_Kong", - "domain": ".github.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221928eb980316cc-050dbe3db24bd2-16525637-16a7f0-1928eb980321bb8%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%7D", - "domain": ".github.com", - "path": "/", - "expires": 1764674869, - "httpOnly": false, - "secure": false - }, - { - "name": "_gh_sess", - "value": "oUZyg0XEvo5fm%2FC18yV17FMePsGYB4hM9R5q8AgiwOAjTritHx1Ux4jNGjnm7Jaxz99%2FOxD4agIy05dUdG6cnSxRP62NJE7bZxIWFV2W64ekLVCwz7ge2oaRcvVlN4HjVhw5dsl2czpD8Irn%2BZG0Dmw16tH9GZZ4yhaFW5%2Fshmte3DBYsndzLNn4rGje9B3P1IFYyz9sYx23j71xRb9wRjwoLHPYGf4Yp3vRKVAzTp3X6nrjvgr4XGU2N%2BGPH3OYDZQYCIPLckTIEmRg7a0dd2KvU2mfcm%2F%2B9N9%2FNNBFTbKvUhPwWM8kIRpv5WTzU%2FI5Y0qBv71gX2B7nNm%2FtIkWjbWUhgizf%2BpxOHAuhs89sRaicpc9NjasSUISwfxRCoH5evWqVXEifhqQvSU42iR4wkhnRHs%3D--za2vZwPq%2FBJxevj3--tEOzEYASRs0gepJUCIv8Mg%3D%3D", - "domain": "github.com", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true, - "sameSite": "Lax" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/ieeexplore-ieee-org.eproxy.lib.hku.hk.cookies.json b/metachain/environment/cookie_json/ieeexplore-ieee-org.eproxy.lib.hku.hk.cookies.json deleted file mode 100644 index 587a1e6..0000000 --- a/metachain/environment/cookie_json/ieeexplore-ieee-org.eproxy.lib.hku.hk.cookies.json +++ /dev/null @@ -1,103 +0,0 @@ -[ - { - "name": "hum_ieee_visitor", - "value": "3403d64f-1870-4601-9ff7-e5900074a6db", - "domain": ".ieeexplore-ieee-org.eproxy.lib.hku.hk", - "path": "/", - "expires": 1756280921.91082, - "httpOnly": false, - "secure": true - }, - { - "name": "_zitok", - "value": "6273c58ab3f308a07a711718187500", - "domain": ".ieeexplore-ieee-org.eproxy.lib.hku.hk", - "path": "/", - "expires": 1761551757, - "httpOnly": false, - "secure": true, - "sameSite": "Strict" - }, - { - "name": "AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20060%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733149186s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1767701986.053151, - "httpOnly": false, - "secure": false - }, - { - "name": "ezproxy", - "value": "e1~OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false - }, - { - "name": "ezproxyl", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ezproxyn", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "AMCVS_8E929CC25A1FB2B30A495C97%40AdobeOrg", - "value": "1", - "domain": ".ieeexplore-ieee-org.eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "s_cc", - "value": "true", - "domain": ".ieeexplore-ieee-org.eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1765086053, - "httpOnly": false, - "secure": false - }, - { - "name": "utag_main", - "value": "v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:2$_ss:0$_st:1733551853250$ses_id:1733549982472%3Bexp-session$_pn:2%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk", - "domain": ".hku.hk", - "path": "/", - "expires": 1765086053, - "httpOnly": false, - "secure": false - }, - { - "name": "AMCV_8E929CC25A1FB2B30A495C97%40AdobeOrg", - "value": "359503849%7CMCIDTS%7C20065%7CMCMID%7C53777252718039557930823884447397163100%7CMCAID%7CNONE%7CMCOPTOUT-1733557253s%7CNONE%7CvVersion%7C5.0.1", - "domain": ".ieeexplore-ieee-org.eproxy.lib.hku.hk", - "path": "/", - "expires": 1768110053.386389, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/link-springer-com.eproxy.lib.hku.hk.cookies.json b/metachain/environment/cookie_json/link-springer-com.eproxy.lib.hku.hk.cookies.json deleted file mode 100644 index 81524ef..0000000 --- a/metachain/environment/cookie_json/link-springer-com.eproxy.lib.hku.hk.cookies.json +++ /dev/null @@ -1,67 +0,0 @@ -[ - { - "name": "ezproxy", - "value": "e1~OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false - }, - { - "name": "ezproxyl", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ezproxyn", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "1", - "domain": ".hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "utag_main", - "value": "v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:13$_ss:0$_st:1733552707246$ses_id:1733549982472%3Bexp-session$_pn:9%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk", - "domain": ".hku.hk", - "path": "/", - "expires": 1765086907, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733558198s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1768110998.70329, - "httpOnly": false, - "secure": false - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1765087052, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/nature.com.cookies.json b/metachain/environment/cookie_json/nature.com.cookies.json deleted file mode 100644 index 1fc1e70..0000000 --- a/metachain/environment/cookie_json/nature.com.cookies.json +++ /dev/null @@ -1,247 +0,0 @@ -[ - { - "domain": "www.nature.com", - "secure": false, - "expirationDate": 1733745572000, - "hostOnly": true, - "name": "user.uuid.v2", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "\"765b07e9-028b-45d1-8abd-baa7b6c88125\"", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "hostOnly": false, - "name": "Hm_lpvt_d38bce82bcb44717ccc29a90c4b781ea", - "httpOnly": false, - "session": true, - "storeId": null, - "value": "1733140842", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1764676842000, - "hostOnly": false, - "name": "ajs_anonymous_id", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "7e4d00ab-3618-46a2-b0fb-c80b189a0584", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1764676842000, - "hostOnly": false, - "name": "ajs_user_id", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "b1ae7862-b9d6-49c5-a7a5-ad96682ac6dc_SN", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1767700841000, - "hostOnly": false, - "name": "_ga_B3E4QL2TPR", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "GS1.1.1733140776.1.1.1733140841.60.0.0", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1767700841000, - "hostOnly": false, - "name": "_ga_ERRNTNZ807", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "GS1.1.1733140776.1.1.1733140841.60.0.467679787", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1767304843000, - "hostOnly": false, - "name": "cto_bundle", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "5685XF9lQVd1dU4zd2xWRE1uZ3BpQTk3SUVXNkx2bGslMkZwTkZodjRWJTJCcGoyd0JWdiUyQjVlcGkwMVoyWHc4aGxKQkM2N3hyeGI4aFlIRzBZRDNTUTJFb1JYZVhPJTJGMUIlMkZka252a0RPZFdlbld4OU1jaUFrMHN6VDVaREYzSSUyRmFDMEtnb0FoaQ", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": true, - "expirationDate": 1766836842000, - "hostOnly": false, - "name": "__gpi", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "UID=00000fa61060e41d:T=1733140842:RT=1733140842:S=ALNI_Mai2WWloG6liac6hEyJYOSjI3WtCg", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1766836841000, - "hostOnly": false, - "name": "_uetvid", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "e6d7f220b0a411efaac753cc9ddac552", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1764676841000, - "hostOnly": false, - "name": "Hm_lvt_d38bce82bcb44717ccc29a90c4b781ea", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "1733140777", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": true, - "expirationDate": 1748692774000, - "hostOnly": false, - "name": "__eoi", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "ID=1ced890879e93934:T=1733140774:RT=1733140774:S=AA-AfjauQ5O9wXrdBjufrcsmQ-EM", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": true, - "expirationDate": 1766836842000, - "hostOnly": false, - "name": "__gads", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "ID=edf25ef88638a1b3:T=1733140842:RT=1733140842:S=ALNI_MYUdW0s3LG6IOpCKgjBo4gbGPsI1Q", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1740916843000, - "hostOnly": false, - "name": "_fbp", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "fb.1.1733140776577.688163329394303800", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1767700841000, - "hostOnly": false, - "name": "_ga", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "GA1.1.2115119478.1733140776", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1733227241000, - "hostOnly": false, - "name": "_uetsid", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "e6d7f280b0a411efaed4a5384bcc5d88", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "hostOnly": false, - "name": "HMACCOUNT", - "httpOnly": false, - "session": true, - "storeId": null, - "value": "7B6C1DFC72FE250C", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": true, - "expirationDate": 1767700841000, - "hostOnly": false, - "name": "permutive-id", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "7cbbccaf-2079-4e6d-99fc-186a9db51c90", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1767700841000, - "hostOnly": false, - "name": "permutive-session", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "%7B%22session_id%22%3A%221d3a9243-5c93-4975-ae30-63ca2047b7cf%22%2C%22last_updated%22%3A%222024-12-02T12%3A00%3A41.747Z%22%7D", - "path": "/", - "sameSite": "Lax" - }, - { - "domain": ".nature.com", - "secure": false, - "expirationDate": 1764676775000, - "hostOnly": false, - "name": "sncc", - "httpOnly": false, - "session": false, - "storeId": null, - "value": "P%3D8%3AV%3D68.0.0%26C%3DC01%2CC02%2CC03%2CC04%26D%3Dtrue", - "path": "/", - "sameSite": "Lax" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/orcid.org.cookies.json b/metachain/environment/cookie_json/orcid.org.cookies.json deleted file mode 100644 index 7d9939e..0000000 --- a/metachain/environment/cookie_json/orcid.org.cookies.json +++ /dev/null @@ -1,105 +0,0 @@ -[ - { - "name": "OptanonAlertBoxClosed", - "value": "2024-06-06T05:28:24.993Z", - "domain": ".orcid.org", - "path": "/", - "expires": 1749187704, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "AWSELB", - "value": "CBD1D7FF1216388FA48838CBCA4774FD22800B8FB55A37124459E84B59F34FE231A4AA84F4ACD29C01160D60FB2ABE4D73D23EFBBE355236CF44A8FEE381C3844BD946CF3D", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "AWSELBCORS", - "value": "CBD1D7FF1216388FA48838CBCA4774FD22800B8FB55A37124459E84B59F34FE231A4AA84F4ACD29C01160D60FB2ABE4D73D23EFBBE355236CF44A8FEE381C3844BD946CF3D", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "orcidUserConnectionId", - "value": "-114606494029392851", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "XSRF-TOKEN", - "value": "b64bcd3a-f0f5-407b-9115-a1f5183f3997", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "JSESSIONID", - "value": "48DD20615AC49336A91F9A3A6F5B1483", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "locale_v3", - "value": "en", - "domain": "orcid.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193871b8e67918-084bddcb7389ac-1e525636-1fa400-193871b8e682d76%22%2C%22%24device_id%22%3A%20%22193871b8e67918-084bddcb7389ac-1e525636-1fa400-193871b8e682d76%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".orcid.org", - "path": "/", - "expires": 1764674617, - "httpOnly": false, - "secure": false - }, - { - "name": "OptanonConsent", - "value": "isGpcEnabled=0&datestamp=Mon+Dec+02+2024+19%3A23%3A37+GMT%2B0800+(%E9%A6%99%E6%B8%AF%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202310.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=71ca593a-5b7c-4963-87cf-52c27440ac95&interactionCount=1&landingPath=NotLandingPage&groups=C0001%3A1%2CC0003%3A1%2CC0002%3A1%2CC0004%3A1&geolocation=HK%3B&AwaitingReconsent=false", - "domain": ".orcid.org", - "path": "/", - "expires": 1764674617, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "cookieName", - "value": "dont%20show%20message", - "domain": "orcid.org", - "path": "/", - "expires": 1764674620, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "closable-unique-name", - "value": "understood", - "domain": "orcid.org", - "path": "/", - "expires": 1764674620, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www-nature-com.eproxy.lib.hku.hk.cookies.json b/metachain/environment/cookie_json/www-nature-com.eproxy.lib.hku.hk.cookies.json deleted file mode 100644 index 97326f4..0000000 --- a/metachain/environment/cookie_json/www-nature-com.eproxy.lib.hku.hk.cookies.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "name": "user.uuid.v2", - "value": "\"f9248aca-ac13-40e6-8b45-eaeb5fe20825\"", - "domain": "www-nature-com.eproxy.lib.hku.hk", - "path": "/", - "expires": 1740916756.716508, - "httpOnly": false, - "secure": false - }, - { - "name": "ezproxy", - "value": "e1~OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false - }, - { - "name": "ezproxyl", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ezproxyn", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "1", - "domain": ".hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733558198s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1768110998.70329, - "httpOnly": false, - "secure": false - }, - { - "name": "utag_main", - "value": "v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:20$_ss:0$_st:1733553108768$ses_id:1733549982472%3Bexp-session$_pn:14%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk", - "domain": ".hku.hk", - "path": "/", - "expires": 1765087308, - "httpOnly": false, - "secure": false - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1765087436, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www-science-org.eproxy.lib.hku.hk.cookies.json b/metachain/environment/cookie_json/www-science-org.eproxy.lib.hku.hk.cookies.json deleted file mode 100644 index f127740..0000000 --- a/metachain/environment/cookie_json/www-science-org.eproxy.lib.hku.hk.cookies.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "name": "ezproxy", - "value": "e1~OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false - }, - { - "name": "ezproxyl", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ezproxyn", - "value": "OilZogbDH4iMWPK", - "domain": ".eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "1", - "domain": ".hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "utag_main", - "value": "v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:20$_ss:0$_st:1733553108768$ses_id:1733549982472%3Bexp-session$_pn:14%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk", - "domain": ".hku.hk", - "path": "/", - "expires": 1765087308, - "httpOnly": false, - "secure": false - }, - { - "name": "AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733559088s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1768111888.617908, - "httpOnly": false, - "secure": false - }, - { - "name": "SID", - "value": "\"EUW1ED0CAFs37MFXuY5NakcbWc5Qu\"", - "domain": ".lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "CUSTOMER", - "value": "\"UNIVERSITY OF HONG KONG\"", - "domain": ".lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "E_GROUP_NAME", - "value": "\"University of Hong Kong\"", - "domain": ".lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "__cf_bm", - "value": "dU7HSmMJl6w4XDg.tZSoewkYsxb0bX7Barvg4RvulLw-1733551961-1.0.1.1-7Um2w5HRPO8C06bwjScmRD9BaTZkbArPDfX_e8urefWlKlH50nONZAxnxeL4VbDbHzBBcAY1OzwO5TyNuuCUfQ", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1733553761.117424, - "httpOnly": false, - "secure": false - }, - { - "name": "AMCVS_242B6472541199F70A4C98A6%40AdobeOrg", - "value": "1", - "domain": ".hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "adBlockEnabled", - "value": "blocked", - "domain": "www-science-org.eproxy.lib.hku.hk", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "cookiePolicy", - "value": "iaccept", - "domain": "www-science-org.eproxy.lib.hku.hk", - "path": "/", - "expires": 1733638777.524329, - "httpOnly": false, - "secure": true - }, - { - "name": "AMCV_242B6472541199F70A4C98A6%40AdobeOrg", - "value": "179643557%7CMCIDTS%7C20065%7CMCMID%7C90810009207598809487163227219398447255%7CMCOPTOUT-1733559578s%7CNONE%7CvVersion%7C5.5.0", - "domain": ".hku.hk", - "path": "/", - "expires": 1768112378.032281, - "httpOnly": false, - "secure": false - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24search_engine%22%3A%20%22google%22%7D", - "domain": ".lib.hku.hk", - "path": "/", - "expires": 1765088378, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.collinsdictionary.com.cookies.json b/metachain/environment/cookie_json/www.collinsdictionary.com.cookies.json deleted file mode 100644 index 84d7328..0000000 --- a/metachain/environment/cookie_json/www.collinsdictionary.com.cookies.json +++ /dev/null @@ -1,103 +0,0 @@ -[ - { - "name": "_sp_id.a65e", - "value": "a151b61b-0e26-493f-9885-ed0d9579e181.1712037732.1.1712037742..381bfab3-8c2a-4e54-8d4b-44a5c8c997ef..6db53b82-8b6d-471c-b7de-194adad46810.1712037732261.2", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": 1746597742.393476, - "httpOnly": false, - "secure": true - }, - { - "name": "__cflb", - "value": "02DiuFwNDm462z9fWfJeB58usqeie1xoTDrYZciipwE2x", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": 1733223382.743499, - "httpOnly": true, - "secure": true - }, - { - "name": "XSRF-TOKEN", - "value": "64a0f62d-dc8f-40cb-8aa2-66e3ad283ad4", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "dictcode", - "value": "english", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": 1763873478.639472, - "httpOnly": false, - "secure": false - }, - { - "name": "searchPanelOpen", - "value": "true", - "domain": ".collinsdictionary.com", - "path": "/", - "expires": 1733803809.434554, - "httpOnly": false, - "secure": false - }, - { - "name": "search", - "value": "hello", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": 1763871009.434808, - "httpOnly": false, - "secure": false - }, - { - "name": "__cf_bm", - "value": "xGchgbvqtkoAYddlxWT4VgRmeTZ1qTVmI0hjpRvOj0w-1733201062-1.0.1.1-SDl6_cuGUlqEOSm4oDQpU5rJdha8wEbITIgLoxdY69GgWrSt5GO7nX47Vc2AihzcBY.yS6GZ9qXVfRKEttQyLw", - "domain": ".collinsdictionary.com", - "path": "/", - "expires": 1733202862.320396, - "httpOnly": true, - "secure": true - }, - { - "name": "last_url", - "value": "https%3A%2F%2Fwww.collinsdictionary.com%2Fdictionary%2Fspanish-english%2Fcaminata", - "domain": "www.collinsdictionary.com", - "path": "/", - "expires": 1763873068.316249, - "httpOnly": false, - "secure": false - }, - { - "name": "OptanonConsent", - "value": "isGpcEnabled=0&datestamp=Tue+Dec+03+2024+12%3A51%3A18+GMT%2B0800+(%E9%A6%99%E6%B8%AF%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202409.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&landingPath=NotLandingPage&groups=C0001%3A1%2CC0002%3A1%2CC0003%3A1%2CC0004%3A1&AwaitingReconsent=false&geolocation=JP%3B27", - "domain": ".collinsdictionary.com", - "path": "/", - "expires": 1759121478, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "OptanonAlertBoxClosed", - "value": "2024-12-03T04:51:18.738Z", - "domain": ".collinsdictionary.com", - "path": "/", - "expires": 1759121478, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193873a93591e4d-05e2471014e6fb-1e525636-1fa400-193873a935a287e%22%2C%22%24device_id%22%3A%20%22193873a93591e4d-05e2471014e6fb-1e525636-1fa400-193873a935a287e%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".collinsdictionary.com", - "path": "/", - "expires": 1764737478, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.jstor.org.cookies.json b/metachain/environment/cookie_json/www.jstor.org.cookies.json deleted file mode 100644 index 76b5b9a..0000000 --- a/metachain/environment/cookie_json/www.jstor.org.cookies.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - { - "name": "UUID", - "value": "3c4dd735-8d33-4fd0-a40f-83d399a0dc46", - "domain": "www.jstor.org", - "path": "/", - "expires": 1740190342.420181, - "httpOnly": false, - "secure": true - }, - { - "name": "_pxvid", - "value": "2dd5c1cb-b670-11ee-9186-3dd546fa1c41", - "domain": "www.jstor.org", - "path": "/", - "expires": 1737166344, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "__zlcmid", - "value": "1O1n3oDgpvApbaQ", - "domain": ".jstor.org", - "path": "/", - "expires": 1764831447, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "csrftoken", - "value": "iyx0piwZPaxHwlEjMlBpPrxRasiSrbVv", - "domain": "www.jstor.org", - "path": "/", - "expires": 1764745045.418981, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "OptanonAlertBoxClosed", - "value": "2024-12-04T06:56:48.465Z", - "domain": ".jstor.org", - "path": "/", - "expires": 1764831408, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "AccessToken", - "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiIwMTkzOTA3NGY4MTg3OTQ1OTg4NzdiNWQzMWE4NDk3MSIsInV1aWQiOiIzYzRkZDczNS04ZDMzLTRmZDAtYTQwZi04M2QzOTlhMGRjNDYiLCJ1c2VyIjp7ImlkIjoiIiwibG9nZ2VkSW4iOmZhbHNlLCJhZG1pbiI6ZmFsc2V9LCJpYXQiOjE3MzMyOTU0MDksImV4cCI6MTczMzI5NTcwOX0.lIt08pG__dm_kZ3kJUYMw_bK0Ow2kAD8i2Jf8OQA0RM", - "domain": "www.jstor.org", - "path": "/", - "expires": 1733299009.610988, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "AccessSessionTimedSignature", - "value": "1b72fc2754973a3daa1baf1b169dfda5ed067ed4113573f1a1005ce5da900999", - "domain": "www.jstor.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "AccessSession", - "value": "H4sIAAAAAAAA_42U3W7bMAyF38XXUSFKlEXlLgv2f7Gi7S62oRgYSc68uXHg2B26ou8-KW4adxu6GoEhyYfi4Scqt8Uw1KGYF9pjCFYbQUFrgVWQglFWgnTQzrEMHstiVtTbpAVLJ2DsSfop1Hk17yDBaSetQYzKuqpy1q-YfbBKckWGkm47FWJFQNahcUTWrkzQwITOQhJ2e2HFu765ESFWPDT9nBQiWXIVeAmMUCkGUtJrU6UX5AQN9ylOSYUClJB4Icu5sXOJJ1YTgrJkPmfZ8KRMQ7mX7Z5WmVHV-2Led0OcFdfc7H1PQ9whJAW4Mm2dQ7jvu10xvy2WyyRfnKel5UUatTv-wV-VzfNPaf7uNI3OlofReda8vXizeL8o7tIuQ_9t4X2fdvpyW_Q325g_b3Z93Q993W4yx7aJ-fPlrLiqN_VV_Su-anh9MLx3CyVamaGMM5BSKq3LfAxxvxSjX1HJLGLJTqAMJNhqKYB1NICUzzvH3zuoHznwXQyjwWe3mXhmwoR7iM9v3Xt7L7r25y52p1x39WZdjBhHIHeXd7MJyFBf12HgZsKx-Hj-8qx4iiai1gpB6iNRQ45caj59JOqgghBABBmsQDBOMJUovFaByKtQAkyInsZu124-Jtd_Az3kwwmQdduumyhAOmegTHfMSJsOGYg0HUF8WOTC_6g_lcYPLTWemEWrFD54V-nmhtTNwliuBAZk4TywkBwlQVm5kswxyVlcj33wL2DNfQJNWtGk3m4ftK83H8hIMbXlEaCLJG2IXlTargR6awR7SjfOAzk2fiVZHk287tph-6QHNcm-zuoxeaLxffzL-s_zGONvRDIvs1UFAAA", - "domain": "www.jstor.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "AccessSessionSignature", - "value": "78ecce97f2a2de3ffb4af7c87424885165a11fe7d2e29bf960edff5c48167a35", - "domain": "www.jstor.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "_pxhd", - "value": "xbR2aQnYKWrHiFs3JKCUojuB1cOv3M4cNFTMhSdjqxqtIsdgsSi8ehBRY7OxVo9kz4W0VVvgcv6IyY0Ta0SJPA==:medf83pfHV213oGcCOKWmgsZc4Kr8q2rEC2GEWBrpMBibA5DYuL7eKs10ANKfVD8qmvJUfcosZrIkQ83XUVKtKmZa4Y6lK04fy46yN254wo=", - "domain": "www.jstor.org", - "path": "/", - "expires": 1764831425.214494, - "httpOnly": false, - "secure": false - }, - { - "name": "pxcts", - "value": "f8fbc8a1-b20c-11ef-a65c-4947163db9b8", - "domain": "www.jstor.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "_px2", - "value": "eyJ1IjoiZjhjZDk4ZjAtYjIwYy0xMWVmLWFkYzctZGQxMTkxM2QxNDlkIiwidiI6IjJkZDVjMWNiLWI2NzAtMTFlZS05MTg2LTNkZDU0NmZhMWM0MSIsInQiOjE3MzMyOTU3MjY4NjgsImgiOiIyMTFhMjMyMTRlZmQwOWE5OTNhZjlmODU2MDU1ZmI1N2U4MTcwY2RmNDNlZjM0MGFhYzg1Yzk2NzQ0NmVjOWI5In0=", - "domain": "www.jstor.org", - "path": "/", - "expires": 1733296026, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ReferringRequestId", - "value": "fastly-default:258d2927284d8837614cc35365d11c1d", - "domain": "www.jstor.org", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%221939074fba7618-0aaf84ba8a423a-1e525636-16a7f0-1939074fba82966%22%2C%22%24device_id%22%3A%20%221939074fba7618-0aaf84ba8a423a-1e525636-16a7f0-1939074fba82966%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%7D", - "domain": ".jstor.org", - "path": "/", - "expires": 1764831445, - "httpOnly": false, - "secure": false - }, - { - "name": "OptanonConsent", - "value": "isGpcEnabled=0&datestamp=Wed+Dec+04+2024+14%3A57%3A25+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202303.1.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=e6c4a174-c538-4f9f-8632-f5f8e9ff428d&interactionCount=2&landingPath=NotLandingPage&groups=C0001%3A1%2CC0002%3A1%2CC0005%3A1%2CC0004%3A1%2CC0003%3A1&AwaitingReconsent=false&geolocation=JP%3B27", - "domain": ".jstor.org", - "path": "/", - "expires": 1764831445, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.ncbi.nlm.nih.gov.cookies.json b/metachain/environment/cookie_json/www.ncbi.nlm.nih.gov.cookies.json deleted file mode 100644 index 7416a53..0000000 --- a/metachain/environment/cookie_json/www.ncbi.nlm.nih.gov.cookies.json +++ /dev/null @@ -1,111 +0,0 @@ -[ - { - "name": "ncbi_sid", - "value": "015E11D6531E8483_1525SID", - "domain": ".nih.gov", - "path": "/", - "expires": 1764675079.027761, - "httpOnly": false, - "secure": false - }, - { - "name": "pmc-frontend-csrftoken", - "value": "L3uvd1o5Uu2efxgCXWDzwxfDTl5QIFDR", - "domain": "www.ncbi.nlm.nih.gov", - "path": "/", - "expires": 1753769052.705813, - "httpOnly": false, - "secure": false, - "sameSite": "Lax" - }, - { - "name": "ncbi-login-route", - "value": "google", - "domain": ".ncbi.nlm.nih.gov", - "path": "/", - "expires": 1741001395.405247, - "httpOnly": false, - "secure": false - }, - { - "name": "PRESERVTARGET", - "value": "%2FtYTXpgzJne16bwfb4ZN2lGInyYoZNk58TVbSvhIR0njSJplCp65%2BiF2SZAktvmmznDxgJBJhBCH%0ANoo2je1cMk0RXykLSXa4UwW7u0%2B%2Fc1X7WzHdCi209NjSVDPLNfOmFzmtz50Uuh6EfD95OQ%2BYQ2B%2B%0Aq7BP3es9s8ArLlZd9XW7NS72Ulu8cigULF%2FZADnu%2FPZf8DmPLOXuV6xWf0fqcNlZXwWhiCjrPJiU%0AU594rDm20QBWFe5y0VjWXnJtzYm7uSPkWDQYJ8htbKyWwjn4aG0xcYfTBSBUTOi9A%2Bo1BnUPHLIi%0A8V9%2Fi7S2i2vLCCwVTCSGS0pctKKWZRmzEmP9NB4rA167%2FSMuyX6ezHZNUyztiKaga84g5monl5bT%0AjNlmWeBFQV90piriK2wjmey3mIoTu2eJyDi%2Bx%2FO7pwMTfeiU2WXZ5h3U4kRBxw%2FR6%2FrCMYtVrzXp%0A%2FexiuMJDHQmiDPowP8dxw97tgs353jnBRGe8jpoCPoPG2hywQnwXtxW8SjWp19yTypxVFl4KnD1e%0A5aoPyq%2F7tPDRPbW7UikYuihFvX0mD1TH7A0G9Bk%2B36y%2F7jL8oW7OArzEbESjcx2aVRL%2B3VqzX1Oc%0AZcFWXfVarYgckE8EeyNwFwhPDoASs2T4SVNAJAQ38A0bYzCAxc6mQLqADqesOuuveClDDgB8WITg%0A1QnE32rGsLz37nzAQ89V", - "domain": ".nih.gov", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "NIHSMPROFILE", - "value": "9i9xFyZxcZ3DeEBWJ1M%2B1ygJsb2LhWqfanAC3W20fjIpeXaMrRQ%2F9L3R6DUjYzq5%2FqUDVLhYywfn1%2BT0RJpzID8efN8zNczLDneXLM7waIbhTdfwbIh%2BCnmN0fucHtqYylLU1altZcOhSRTow47jYwyEUFsmJ6kz3T1%2BnZWx3Ol0zaFC8onzZCtl4YHbCxMJVbHYuMcGM4f4YxpiDefQvlDdwY1soBI8z9nvb%2BKMs1B3GgplTzyllWIbC1RHxGLvdlNaz8Zlzw6MU4B3piqrAiCWAvoMF3%2FSShIchSdP0utP%2BMROhcGaoWBU%2FKfkjjDc3lHCPfydE%2F895aasf6uvrL7uccokjb6HxdVs0FA%2FHxfBNJXURVRSpRl9%2BPOd9%2FOOlXQQqhBh1FyAZs6WIxDvLhegMvLITcLh7ahcahuJnoeImSla4b4kK0Ayy6736mJCa0hhXUzGjab4Yhht11PliHlAlh4wLEXj0Dp7X9pj7Ws1%2BdCx8QZyiTWrbauCQJtS1hNXn%2Blg4BoQ2sIq%2FxltuA%3D%3D", - "domain": ".nih.gov", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "NIHSMSESSION", - "value": "ZITCB6DlveT31D7iO+eVBnrLBxVxrCJGSz/5hVXNSYwvjuPpvd0O7dD6XqsFf6LKdJXktiX+hhtPWtsNok2mgiSvcpYTBHJxHVefyBt+KiLTVm12lBwYTkx9Gb9OxZNQsMS/Hvoj45/ShvSKut3d7c8e2cEhtjA7DWjHEYHj0tuk3fEoQ4t0UAWkhj6bFt5Vo5tm6dyqen/1EH2o6cBZrVSLbk67LctlbRyV4pc5099Il2lTMPo6LqtyVI1AC/bcSioge+LqDbpDiuP4NOF3EPj/yFSWvBz76/bqQ0Hu5oRGCC1zVPhSGJ1iukio91F6IfYr5vTtMrN00vSuxHRnxj0BYCEuGKtCeNDohuGAZvQVkjhc1aI53oWFu8UNHZvYA+Xo2lpLZUOT+2pkjk1Z/WpAPzE8L+O6mRjwaq8/2b3rUS8gq4Y/2vQYhqmNxeHOBsM01BhpJdRF3Urp3dnIIYakYeCgzC/3Kww+p8ImsBTjvXDO1ivVEjKB4AdnCsRdLpGPszS9xF7439aXXCWHDItM4Wl458T12QWeV+DXiiwzD/kis1QQBWibzsZOzo9KDM3oapKa8I2ouKXb797Z7s+eLR1+Z10lyWZuNVLLZK5ckFT5riayLYeT8+IjFYVER/nfDzm3KpgVPnep/k4DANpDgAOK78iuTv3sBndNMoKrXz2qCZtfi3/gLGZTKcOy90meluFZy9+iLyb+M01VBWuDp/v0a2jSdsJPVmgUQqz7hLVvtc4KpMfiDhfxXGMQnaieP9jREFK3NutAiUrkjS96WS3v5eLK80o/aG1j5IsAvxU/0lMnEri3Yz6Qw1f0ymS6giKiFIUBRUWGXcm5S1qCjwL5GiU71r3nOcaC8T9T1pVLf1R558WqH6Ha95aJVqN6CnEHo8TsZl25lb5tlJgbgb2OFvLSrbUZwuM3R5mA9zP7ciQBywxNm7xFO8sX8QQk0bRhrhgk458KE72Ci/8lhZmvpYy5aqbI4OtaLkuFuu3lX3c7/LsGt+iTFkO6eDSS4CFEnFqg3W5Glvs7WZkTasVI7L0mN0q8DCPXaIDFVPlXEA0shxZuB6Iz+mx4MshQHwY9fMRSWB7gOF5cHjHYUBLfHT/gOwl35rkoJfVf9ikpcgT88mJyk9KTQpVM+CZAGUFDbgHsRqA0jPE19sBum3cqaA6fzh9AnWXfOlAY5KNDdTB4yip4UakCXWsiXVng0GfQ7KvxAguC59L7iZyFjdsIDESi7ZozcPHOpFZleeAU3yFTvMGHmO3G3RFrxyIGCwgWehus3YCqQxZPSE6+yLjXeXTqhqgk0kxcV/MlOFgzMcAhgKEYJS045sLZsmohsIVLV0ONY4uqogSxd3YUzc0WImi1mYdNbzYwbX5tPngah4SK61Nia8Z6xjZuKfXnxNFEkNneezPoPy97Hvd+9wzI+DkU5sa844DzGxeSY/ySE3DTtpowf440r5rX", - "domain": ".nih.gov", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "MyNcbiSigninPreferences", - "value": "O2dvb2dsZSY%3D", - "domain": ".nih.gov", - "path": "/", - "expires": 1740915025.611341, - "httpOnly": false, - "secure": false - }, - { - "name": "ncbi_prevPHID", - "value": "CE88342C74D8A32100000000003B0036", - "domain": ".ncbi.nlm.nih.gov", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "WebCubbyUser", - "value": "3GX25AI24DLUXL8LVDJFIVTH6LJRZBE1%3Blogged-in%3Dtrue%3Bmy-name%3Djiabintang77%2540gmail.com%3Bpersistent%3Dfalse%40015E11D6531E8483_1525SID", - "domain": ".nih.gov", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "WebEnv", - "value": "1D7wJH%40015E11D6531E8483_1525SID", - "domain": ".nlm.nih.gov", - "path": "/", - "expires": 1733167826.636953, - "httpOnly": true, - "secure": true - }, - { - "name": "ncbi_pinger", - "value": "N4IgDgTgpgbg+mAFgSwCYgFwgAwEYCsAorrgCIBs+AzLoQBwAsdAnLgOxU1XPZt354AygElSIAL5A===", - "domain": ".ncbi.nlm.nih.gov", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22193872246ca871-06560f33a3902-1e525636-1fa400-193872246cb267c%22%2C%22%24device_id%22%3A%20%22193872246ca871-06560f33a3902-1e525636-1fa400-193872246cb267c%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%7D", - "domain": ".nih.gov", - "path": "/", - "expires": 1764675078, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.pnas.org.cookies.json b/metachain/environment/cookie_json/www.pnas.org.cookies.json deleted file mode 100644 index 6fff493..0000000 --- a/metachain/environment/cookie_json/www.pnas.org.cookies.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "name": "MAID", - "value": "+O8mvi2rAtZrnJqF+2cRIQ==", - "domain": ".pnas.org", - "path": "/", - "expires": 1759078802.198648, - "httpOnly": true, - "secure": true - }, - { - "name": "MACHINE_LAST_SEEN", - "value": "2024-12-02T09%3A00%3A01.960-08%3A00", - "domain": ".pnas.org", - "path": "/", - "expires": 1759078802.198711, - "httpOnly": true, - "secure": true - }, - { - "name": "JSESSIONID", - "value": "CEDD494D14F0052C199B1D7AE667EF42", - "domain": ".pnas.org", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "__cf_bm", - "value": "YJQBFxCTLG1d3d9R0fVmwlmAgP9kqVl3zwf02v.COMQ-1733158802-1.0.1.1-tLccs1jD809lM7_9Bhy35sLQdM1TaakBEYvhdDEi1w9cWJS9IGjovTwKGdYQtse6_rWkJNYt._LsHQI2WCwDUQ", - "domain": ".pnas.org", - "path": "/", - "expires": 1733160603.504839, - "httpOnly": true, - "secure": true - }, - { - "name": "cookiePolicy", - "value": "accept", - "domain": ".pnas.org", - "path": "/", - "expires": 1767718816.994233, - "httpOnly": true, - "secure": true - }, - { - "name": "connect_auto_login", - "value": "true", - "domain": ".pnas.org", - "path": "/", - "expires": 1735750875.510643, - "httpOnly": true, - "secure": true - }, - { - "name": "PLUID", - "value": "l8nplDdx7mN9Xh4lErbknypxfmo=", - "domain": ".pnas.org", - "path": "/", - "expires": 1759078875.9476, - "httpOnly": true, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%221938850d07a6d2-0446945abb35c6-1e525636-16a7f0-1938850d07c132a%22%2C%22%24device_id%22%3A%20%221938850d07a6d2-0446945abb35c6-1e525636-16a7f0-1938850d07c132a%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D", - "domain": ".pnas.org", - "path": "/", - "expires": 1764694876, - "httpOnly": false, - "secure": false - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.reddit.com.cookies.json b/metachain/environment/cookie_json/www.reddit.com.cookies.json deleted file mode 100644 index bdd2a6c..0000000 --- a/metachain/environment/cookie_json/www.reddit.com.cookies.json +++ /dev/null @@ -1,122 +0,0 @@ -[ - { - "name": "edgebucket", - "value": "lyxOSFtqXnsQEn0H9C", - "domain": ".reddit.com", - "path": "/", - "expires": 1738484736.570167, - "httpOnly": false, - "secure": true - }, - { - "name": "loid", - "value": "000000000r0luy1m5t.2.1703924736813.Z0FBQUFBQmxqOVFBLVZ2UHJIRWswQW4zQnlJZGtYU2ZBS1dSQlpncW1hQ2o2TmVLMk12QkFYRlBEMFpaOGpqTndjcXhuQjhFS3hhc0dSMXRyZ1o4SUg1cTZvSTNHejk5NW5xdlRTRUtfeUdSU250alJhQTFDY3RSeDJrekdnWG90bk1CWmhhc2hlMWU", - "domain": ".reddit.com", - "path": "/", - "expires": 1763278221.514142, - "httpOnly": false, - "secure": true - }, - { - "name": "csv", - "value": "2", - "domain": ".reddit.com", - "path": "/", - "expires": 1738484736.97362, - "httpOnly": false, - "secure": true - }, - { - "name": "g_state", - "value": "{\"i_l\":0}", - "domain": "www.reddit.com", - "path": "/", - "expires": 1744270240, - "httpOnly": false, - "secure": false - }, - { - "name": "pc", - "value": "nd", - "domain": ".reddit.com", - "path": "/", - "expires": 1760254304, - "httpOnly": false, - "secure": true - }, - { - "name": "__stripe_mid", - "value": "104997eb-5535-4dd4-a71a-5a7f697b8a4650cc1f", - "domain": ".www.reddit.com", - "path": "/", - "expires": 1761300348, - "httpOnly": false, - "secure": true, - "sameSite": "Strict" - }, - { - "name": "t2_r0luy1m5t_recentclicks3", - "value": "t3_o9s5iv%2Ct3_1ga952r%2Ct3_1eefr4x%2Ct3_1fs5q5b", - "domain": ".reddit.com", - "path": "/", - "expires": 1762676289, - "httpOnly": false, - "secure": false, - "sameSite": "Strict" - }, - { - "name": "reddit_session", - "value": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlNIQTI1NjpsVFdYNlFVUEloWktaRG1rR0pVd1gvdWNFK01BSjBYRE12RU1kNzVxTXQ4IiwidHlwIjoiSldUIn0.eyJzdWIiOiJ0Ml9yMGx1eTFtNXQiLCJleHAiOjE3NDg4MzgwNzkuNzc0MDEzLCJpYXQiOjE3MzMxOTk2NzkuNzc0MDEzLCJqdGkiOiJyT3l6V2hFUmtxNDA0b0YzX1FSSVR3R240Y0gzS0EiLCJjaWQiOiJjb29raWUiLCJsY2EiOjE3MDM5MjQ3MzY4MTMsInNjcCI6ImVKeUtqZ1VFQUFEX193RVZBTGsiLCJ2MSI6Ijc2MjE3NTUxMDk3OTY5LDIwMjQtMTAtMTJUMDc6MzA6NDEsYWU3Y2U5ZDdiMjU3OGQ3MWVmMTEwYjFiNTc2NTU2NmNmYzJkNDljNiIsImZsbyI6Mn0.NUhfjOfX7pWC5FFUfJvTw0Ts8b0ZICrmmg_Eh4_O6hvnqEH5UHVjjwtS7YNGyxTRv5k0AJTx-GW5CWTUJvhciPOYokV1iM4RirTbijGfqyvSlbl7YIARX8gUMrm6X2TmFvHmQHem4S-0YcrhvBakEXb2TAk0e4KLiPBS6jbEa5c4EoIkp8PjvFVkWZhY_FMge6SxAmPlx2Xksk2c_9s_rJ-UTZkyOWP5ighh7TmA3B_0ZWEPRme7yDBtV-AJ1UH533suaBukxD_-O3afm1AtjMiQAygZ4tl78T7unCopK1_c8PGiunpfLCMTdTTb07NnI2_fo-8AfARF-9O1MPdYFQ", - "domain": ".reddit.com", - "path": "/", - "expires": 1748838078.887127, - "httpOnly": true, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221929b3d4cbd13e0-01d450fe6d3301-16525637-16a7f0-1929b3d4cbe2033%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%7D", - "domain": ".reddit.com", - "path": "/", - "expires": 1764735681, - "httpOnly": false, - "secure": false - }, - { - "name": "reddit_chat_view", - "value": "closed", - "domain": "www.reddit.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": false - }, - { - "name": "token_v2", - "value": "eyJhbGciOiJSUzI1NiIsImtpZCI6IlNIQTI1NjpzS3dsMnlsV0VtMjVmcXhwTU40cWY4MXE2OWFFdWFyMnpLMUdhVGxjdWNZIiwidHlwIjoiSldUIn0.eyJzdWIiOiJ1c2VyIiwiZXhwIjoxNzMzMjg2MDgxLjgwMjc1NywiaWF0IjoxNzMzMTk5NjgxLjgwMjc1NywianRpIjoiTkFrUGZVTVVwRGZ1SmFNbjZkV3dqbnB4U0REMEFnIiwiY2lkIjoiMFItV0FNaHVvby1NeVEiLCJsaWQiOiJ0Ml9yMGx1eTFtNXQiLCJhaWQiOiJ0Ml9yMGx1eTFtNXQiLCJsY2EiOjE3MDM5MjQ3MzY4MTMsInNjcCI6ImVKeGtrZEdPdERBSWhkLWwxejdCX3lwX05odHNjWWFzTFFhb2szbjdEVm9jazcwN2NMNGlIUDhuS0lxRkxFMnVCS0drS1dFRld0T1VOaUx2NTh5OU9aRUZTeUZUUjg0M3l3b2thVXBQVW1ONXB5bFJ3V1prTGxmYXNVS0RCNllwVlM2WjIwS1BTNXZRM0kxRnowNk1xbHhXSHRUWW8zSnBiR01LMnhQanpjWnFReXF1eTZsTVlGa29uOFdMZnZ5Ry10WS1mN2JmaEhZd3JLZ0tEX1RPdUZ4d1lfSERGSGJfbnByMGJGMndxTDNYZzlRLTEtTjI3Yk5tb2RtNV9WelB2emFTY1RtRzVpZll2N3QtQ1IxNDVIbVpVUWN3WWcwX3lyQWo2X0N2T29ES0JRV01KWWhQSTVBcmwyX19KZGl1VGY4YXR5ZC0tR2JFVFdfNHJSbW81eExFb1VfajZ6Y0FBUF9fWERfZTR3IiwicmNpZCI6Ill6STUzaXNuVVRQUm42M3NQbjRSNFBNbVdOcjE4SU1uUU93T2VfaHFuem8iLCJmbG8iOjJ9.F_24jXHdZDXCmMx4aubrjT94AtnYDzD7eg7SjV1Rwa6ymrvrXW8uZnIqgqVkHJio-mZW_JsxlSKzlIDMJ_lrWtgxFHhgGFWnWkS-raKhYrrQt3gwN-C5VPc3iF-1pVUaf0Jf0gX1aYyvdtRD48rRd8sjCoAwHcGiNH8B7abUPN8JJuQcAEH2GzYSc9Zarb0jANLyw7fGdTdWXfWjUXjy33alItwyhMVcgCIXlVf5wlayRBsRXS_ObpKiril2BuAgCrrVuOWDdflpi58FTA0pki4F0wTdcJfORP9yjZ_L7AJUXhXhswx5Lcf0kTU1hFy4RqFRRd95Q0xZg7Yj2uIC7w", - "domain": ".reddit.com", - "path": "/", - "expires": 1733286081.968748, - "httpOnly": true, - "secure": true - }, - { - "name": "session_tracker", - "value": "hhjeikkilpgneqelrj.0.1733199684513.Z0FBQUFBQm5Ub2RFN25sX3lzSVRyLUFxSEtEcmozdW1BbGdaQUtmZUZCMVNteW1PSGhxRHNEdkhrR0lneUNCTUgzUlE2QkdUb2tRRHVyTnNNNlpnOV80TVZzd2hlSzFCRUtLLVZmREYwejhDSXIyX1Q4T04yMnlrSGJkMlVla2h5R1huYnFGOUFleGU", - "domain": ".reddit.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true - }, - { - "name": "csrf_token", - "value": "04b1407f1ebd23723b261a469d4dac84", - "domain": ".reddit.com", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Strict" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.researchgate.net.cookies.json b/metachain/environment/cookie_json/www.researchgate.net.cookies.json deleted file mode 100644 index fe06670..0000000 --- a/metachain/environment/cookie_json/www.researchgate.net.cookies.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "name": "did", - "value": "iXxy5Y0Lo7cY1c90Riq7yRkq4VdJdrz9F1T7N0fqKOFKoaNbUas5EeVE3Oo7jl4M", - "domain": ".www.researchgate.net", - "path": "/", - "expires": 1764671442.13171, - "httpOnly": true, - "secure": true - }, - { - "name": "ptc", - "value": "RG1.8779880038783811042.1696569455", - "domain": ".www.researchgate.net", - "path": "/", - "expires": 1767695442.13179, - "httpOnly": true, - "secure": true - }, - { - "name": "pl", - "value": "wbbzs5zjXc51gyzsE5huVpQxOu7nxEnyZDiQcl7KEpwjXmoGTD064RedCDxz696tPbB38xaV8xe1oIJFEAAanE6P4MKWta1rUAq6iCLxSGnCYhfeB9JhdfN5cz70vq1R", - "domain": ".www.researchgate.net", - "path": "/", - "expires": 1764671442.13175, - "httpOnly": true, - "secure": true - }, - { - "name": "didomi_token", - "value": "eyJ1c2VyX2lkIjoiMTkxOTNiYWQtMDhhMS02Njg5LWE4NTUtMzAwN2VhYzA5MjAwIiwiY3JlYXRlZCI6IjIwMjQtMDgtMjdUMTI6MDY6MTkuNTMwWiIsInVwZGF0ZWQiOiIyMDI0LTA4LTI3VDEyOjA2OjI4LjQ4M1oiLCJ2ZW5kb3JzIjp7ImVuYWJsZWQiOlsiZ29vZ2xlIiwiYzpnb29nbGVhbmEtNFRYbkppZ1IiLCJjOnBvc3Rob2ctQmpKeEZkRjkiLCJjOmRpZG9taSJdfSwidmVuZG9yc19saSI6eyJlbmFibGVkIjpbImdvb2dsZSJdfSwidmVyc2lvbiI6Mn0=", - "domain": ".researchgate.net", - "path": "/", - "expires": 1756382788, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "euconsent-v2-didomi", - "value": "CQEAuYAQEAuYAAHABBENBDFgALHAAELAAAYgF5wAQF5gXnABAXmAAAAA.djgACFgAAAAA", - "domain": ".researchgate.net", - "path": "/", - "expires": 1756382788, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "dmd-tag", - "value": "29c64880-8f9e-11ef-aabb-5bb25e381cbc", - "domain": ".www.researchgate.net", - "path": "/", - "expires": 1767695450.916031, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "sid", - "value": "TCoR8Z544diaoyMwqLA8X9TS7HfkN6SpWX1ropwuTqxNP2j10bZlYc7YIVBKPyVcfem0NqbdChel00sIOkOeF5GtceLW00ubTrpe4dAD5xLJ81ocWo9svlf6J9gynIf6", - "domain": ".www.researchgate.net", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "cili", - "value": "_2_MjZhMmQ5N2FmMzgyNmJkYTJiZjc2ZjE0ZjRmMDUxYjMzYjJkZmQxYWY0Njg4Nzc4MTM4ZDE1MGVmNWRhYTc0Nl8yOTU3MzAzNjsw", - "domain": ".www.researchgate.net", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "cirgu", - "value": "_1_SaiBmdG2CNFFXfi8YLMIIkC%2BD5oxd2H0CqLqIhkm0V8y0ncsQEoe%2FGUZOhACuKUy5feYcA%3D%3D", - "domain": ".www.researchgate.net", - "path": "/", - "expires": 1764692368.131654, - "httpOnly": false, - "secure": true - }, - { - "name": "_cfuvid", - "value": "GehzRPPGzCCv.nPAiw9L7tRQCAi.hQAAinF5RqUksz0-1733135442009-0.0.1.1-604800000", - "domain": ".researchgate.net", - "path": "/", - "expires": -1, - "httpOnly": true, - "secure": true - }, - { - "name": "dmd-sid4", - "value": "{%22id%22:%227cce57f0-b098-11ef-924a-5d9117969fc2%22%2C%22timestamp%22:1733135444000%2C%22lastUpdate%22:1733135450000}", - "domain": ".www.researchgate.net", - "path": "/", - "expires": -1, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%22192aea49fbae19-0a0ceb4f539c6b-16525637-16a7f0-192aea49fbb210e%22%2C%22utm_source%22%3A%20%22researchgate%22%2C%22utm_medium%22%3A%20%22email%22%2C%22utm_campaign%22%3A%20%22re442%22%2C%22utm_content%22%3A%20%22re442_up_pb_hnsg_nnaas_p110%22%2C%22utm_term%22%3A%20%22re442_up_pb_hnsg_nnaas%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24search_engine%22%3A%20%22google%22%7D", - "domain": ".researchgate.net", - "path": "/", - "expires": 1764671451, - "httpOnly": false, - "secure": false - }, - { - "name": "__cf_bm", - "value": "X2xX99VpHc3Xm_TRnIRhN7Wp533PLOt.311xMWQYn28-1733136361-1.0.1.1-qskSGITd3dmHUV3UswCd8O6ygg3jdBOF9Wz1PxlPQq66VUx0blvFKst7fH33pTnkl2W1VBjBjlF8CgPVLesusQ", - "domain": ".researchgate.net", - "path": "/", - "expires": 1733138161.246979, - "httpOnly": true, - "secure": true - }, - { - "name": "ph_phc_ma1XTQyee96N1GML6qUTgLQRiDifnRcE9STiHTZ0CfZ_posthog", - "value": "%7B%22distinct_id%22%3A%22AC%3A29573036%22%2C%22%24sesid%22%3A%5B1733137066914%2C%22019386ec-50e4-79f9-9b7b-d8ed5854cf9f%22%2C1733135454436%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FJiabin_Tang4%2Fpublications%3FeditMode%3D1%26sorting%3DrecentlyAdded%26utm_medium%3Demail%26utm_source%3Dresearchgate%26utm_campaign%3Dre214%26loginT%3DeX2d52IqLj-iYd58KHUvU88w6Ub-0Rjh_XCM-6tyfVf3Goy3Bf0swonajNlIbQg6gax3uaL6ulhi_ik9eMs%26pli%3D1%26utm_term%3Dre214_x%26utm_content%3Dre214_x_p2%26cp%3Dre214_x_p2%26uid%3D2aJ4s09Uf8rvZLKbNnk9UiFVrlZcTRXt51G2%26ch%3Dreg%22%7D%7D", - "domain": ".researchgate.net", - "path": "/", - "expires": 1764673066, - "httpOnly": false, - "secure": true, - "sameSite": "Lax" - } -] \ No newline at end of file diff --git a/metachain/environment/cookie_json/www.youtube.com.cookies.json b/metachain/environment/cookie_json/www.youtube.com.cookies.json deleted file mode 100644 index a46a633..0000000 --- a/metachain/environment/cookie_json/www.youtube.com.cookies.json +++ /dev/null @@ -1,173 +0,0 @@ -[ - { - "name": "PREF", - "value": "f7=4100&tz=Asia.Hong_Kong&f4=4000000", - "domain": ".youtube.com", - "path": "/", - "expires": 1767698936.819909, - "httpOnly": false, - "secure": true - }, - { - "name": "HSID", - "value": "AuvRBV-Q9GEReACoE", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.11147, - "httpOnly": true, - "secure": false - }, - { - "name": "SSID", - "value": "AHum7OsxEOAD-Ibp4", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111503, - "httpOnly": true, - "secure": true - }, - { - "name": "APISID", - "value": "FRZgwlTWYfVE-B2B/A7FrDbUAZCyMOb6ue", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111539, - "httpOnly": false, - "secure": false - }, - { - "name": "SAPISID", - "value": "mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111575, - "httpOnly": false, - "secure": true - }, - { - "name": "__Secure-1PAPISID", - "value": "mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111613, - "httpOnly": false, - "secure": true - }, - { - "name": "__Secure-3PAPISID", - "value": "mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111646, - "httpOnly": false, - "secure": true - }, - { - "name": "LOGIN_INFO", - "value": "AFmmF2swRgIhALZXJQRg7B6iILvfx41A-mHr8rh7RMGV3cNkppAPlxxvAiEA38fh68Ct3o4p-ywc1zHhWZxrJ5Dpcd0AcsMp4RZONUs:QUQ3MjNmeTdGelpVWXZuN1RTeUMzQkYwNEZhVXY1emtGT1pycWFmWC1LU0txanZReHBLaDRxVHJEZGRyOV8wajFIajdyLWYwcE1rSFZfRVlBM3BNaXZSQlMtLVlLR3RmSURpQjhKRlJaU0xJcHQySmZVNUp6eWFFak9rbE4yWDg5WGdjSkM4QjJhcFRYZTAwVEF6a3RPUzhsSzV0R05YWkVB", - "domain": ".youtube.com", - "path": "/", - "expires": 1766493681.602721, - "httpOnly": true, - "secure": true - }, - { - "name": "SID", - "value": "g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsOzHaI33jRkuMY7qPd2ZFEAACgYKAUMSARYSFQHGX2Miunh4qpdUynkY2PXqPSvzGxoVAUF8yKqW-lS90SUYH-cprrTRIWDZ0076", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111199, - "httpOnly": false, - "secure": false - }, - { - "name": "__Secure-1PSID", - "value": "g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsSADU_B-86vJipiHTuQxp3gACgYKATgSARYSFQHGX2MinsKT7OE3L_H9SEzrOgndQRoVAUF8yKqLdTsMTC89NTlwps9-uRSu0076", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111393, - "httpOnly": true, - "secure": true - }, - { - "name": "__Secure-3PSID", - "value": "g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsvr3qlDZAuj7i33G332SpFwACgYKAekSARYSFQHGX2Mi9DYKrElENMuHNeaGctBCdBoVAUF8yKrmoWXREkhXzva2a6J3B2ps0076", - "domain": ".youtube.com", - "path": "/", - "expires": 1766544331.111431, - "httpOnly": true, - "secure": true - }, - { - "name": "NID", - "value": "519=I7v3EQhK2PGhnXSOCZyz5QYVGbJ383LEPRVqShP2G15ip3zj5VjyDJWEAlJtS3ifC0qs-7cxlwk_vCTqntg_LWW_hfONxTqG6JVJ8JvpMEr2eM_Fqb9n8nVbc_YNrwSIUEorM5N5FUoZmW2u4Qksi_a0-ssHJWsOBEwdxpDONaY", - "domain": ".youtube.com", - "path": "/", - "expires": 1747984059.767459, - "httpOnly": true, - "secure": true - }, - { - "name": "mp_94085d51c4102efbb82a71d85705cdcf_mixpanel", - "value": "%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221928f27a2a80-04cb41970e6945-16525637-16a7f0-1928f27a2a920cc%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22utm_source%22%3A%20%22ythp%22%2C%22utm_medium%22%3A%20%22LeftNav%22%2C%22utm_campaign%22%3A%20%22ytgen%22%2C%22utm_content%22%3A%20%22txt%22%7D", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674936, - "httpOnly": false, - "secure": false - }, - { - "name": "ST-xuwub9", - "value": "session_logininfo=AFmmF2swRgIhALZXJQRg7B6iILvfx41A-mHr8rh7RMGV3cNkppAPlxxvAiEA38fh68Ct3o4p-ywc1zHhWZxrJ5Dpcd0AcsMp4RZONUs%3AQUQ3MjNmeTdGelpVWXZuN1RTeUMzQkYwNEZhVXY1emtGT1pycWFmWC1LU0txanZReHBLaDRxVHJEZGRyOV8wajFIajdyLWYwcE1rSFZfRVlBM3BNaXZSQlMtLVlLR3RmSURpQjhKRlJaU0xJcHQySmZVNUp6eWFFak9rbE4yWDg5WGdjSkM4QjJhcFRYZTAwVEF6a3RPUzhsSzV0R05YWkVB", - "domain": ".youtube.com", - "path": "/", - "expires": 1733138942, - "httpOnly": false, - "secure": false - }, - { - "name": "__Secure-1PSIDTS", - "value": "sidts-CjIBQT4rXxBz2VTDVx5cMn6A_YgFHPgo9Z-eWATlXeINT58ZUInn2_vTeUb4czgvWV-j5BAA", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674938.226552, - "httpOnly": true, - "secure": true - }, - { - "name": "__Secure-3PSIDTS", - "value": "sidts-CjIBQT4rXxBz2VTDVx5cMn6A_YgFHPgo9Z-eWATlXeINT58ZUInn2_vTeUb4czgvWV-j5BAA", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674938.226624, - "httpOnly": true, - "secure": true - }, - { - "name": "SIDCC", - "value": "AKEyXzWXdf72zjmIboZNkzmg9VURwnmM1MpJVRgAxjRuMRib1b7iu5SkCZccexcK6jf2abrLEoQ", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674940.01384, - "httpOnly": false, - "secure": false - }, - { - "name": "__Secure-1PSIDCC", - "value": "AKEyXzXWzx9lRoJCEXrHvqZeWtAugc_tFou4ucmylPeSpc0nRX2EZ-t3QGTGqberRiTB3QIHjQ", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674940.013891, - "httpOnly": true, - "secure": true - }, - { - "name": "__Secure-3PSIDCC", - "value": "AKEyXzVyGt5J-awGqBrP5_hTnwTmCMsUu5oWISlljhXbP9P7vrGxlzOg05O_vwlgbuGOKRUQGYA", - "domain": ".youtube.com", - "path": "/", - "expires": 1764674940.013962, - "httpOnly": true, - "secure": true - } -] \ No newline at end of file diff --git a/metachain/environment/cookies_data.py b/metachain/environment/cookies_data.py index a9d819b..e1453a6 100644 --- a/metachain/environment/cookies_data.py +++ b/metachain/environment/cookies_data.py @@ -1,195 +1,2 @@ COOKIES_LIST = [ - {'name': 'edgebucket', 'value': 'lyxOSFtqXnsQEn0H9C', 'domain': '.reddit.com', 'path': '/', 'expires': 1738484736.570167, 'httpOnly': False, 'secure': True}, - {'name': 'loid', 'value': '000000000r0luy1m5t.2.1703924736813.Z0FBQUFBQmxqOVFBLVZ2UHJIRWswQW4zQnlJZGtYU2ZBS1dSQlpncW1hQ2o2TmVLMk12QkFYRlBEMFpaOGpqTndjcXhuQjhFS3hhc0dSMXRyZ1o4SUg1cTZvSTNHejk5NW5xdlRTRUtfeUdSU250alJhQTFDY3RSeDJrekdnWG90bk1CWmhhc2hlMWU', 'domain': '.reddit.com', 'path': '/', 'expires': 1763278221.514142, 'httpOnly': False, 'secure': True}, - {'name': 'csv', 'value': '2', 'domain': '.reddit.com', 'path': '/', 'expires': 1738484736.97362, 'httpOnly': False, 'secure': True}, - {'name': 'g_state', 'value': '{"i_l":0}', 'domain': 'www.reddit.com', 'path': '/', 'expires': 1744270240, 'httpOnly': False, 'secure': False}, - {'name': 'pc', 'value': 'nd', 'domain': '.reddit.com', 'path': '/', 'expires': 1760254304, 'httpOnly': False, 'secure': True}, - {'name': '__stripe_mid', 'value': '104997eb-5535-4dd4-a71a-5a7f697b8a4650cc1f', 'domain': '.www.reddit.com', 'path': '/', 'expires': 1761300348, 'httpOnly': False, 'secure': True, 'sameSite': 'Strict'}, - {'name': 't2_r0luy1m5t_recentclicks3', 'value': 't3_o9s5iv%2Ct3_1ga952r%2Ct3_1eefr4x%2Ct3_1fs5q5b', 'domain': '.reddit.com', 'path': '/', 'expires': 1762676289, 'httpOnly': False, 'secure': False, 'sameSite': 'Strict'}, - {'name': 'reddit_session', 'value': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IlNIQTI1NjpsVFdYNlFVUEloWktaRG1rR0pVd1gvdWNFK01BSjBYRE12RU1kNzVxTXQ4IiwidHlwIjoiSldUIn0.eyJzdWIiOiJ0Ml9yMGx1eTFtNXQiLCJleHAiOjE3NDg4MzgwNzkuNzc0MDEzLCJpYXQiOjE3MzMxOTk2NzkuNzc0MDEzLCJqdGkiOiJyT3l6V2hFUmtxNDA0b0YzX1FSSVR3R240Y0gzS0EiLCJjaWQiOiJjb29raWUiLCJsY2EiOjE3MDM5MjQ3MzY4MTMsInNjcCI6ImVKeUtqZ1VFQUFEX193RVZBTGsiLCJ2MSI6Ijc2MjE3NTUxMDk3OTY5LDIwMjQtMTAtMTJUMDc6MzA6NDEsYWU3Y2U5ZDdiMjU3OGQ3MWVmMTEwYjFiNTc2NTU2NmNmYzJkNDljNiIsImZsbyI6Mn0.NUhfjOfX7pWC5FFUfJvTw0Ts8b0ZICrmmg_Eh4_O6hvnqEH5UHVjjwtS7YNGyxTRv5k0AJTx-GW5CWTUJvhciPOYokV1iM4RirTbijGfqyvSlbl7YIARX8gUMrm6X2TmFvHmQHem4S-0YcrhvBakEXb2TAk0e4KLiPBS6jbEa5c4EoIkp8PjvFVkWZhY_FMge6SxAmPlx2Xksk2c_9s_rJ-UTZkyOWP5ighh7TmA3B_0ZWEPRme7yDBtV-AJ1UH533suaBukxD_-O3afm1AtjMiQAygZ4tl78T7unCopK1_c8PGiunpfLCMTdTTb07NnI2_fo-8AfARF-9O1MPdYFQ', 'domain': '.reddit.com', 'path': '/', 'expires': 1748838078.887127, 'httpOnly': True, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221929b3d4cbd13e0-01d450fe6d3301-16525637-16a7f0-1929b3d4cbe2033%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%7D', 'domain': '.reddit.com', 'path': '/', 'expires': 1764735681, 'httpOnly': False, 'secure': False}, - {'name': 'reddit_chat_view', 'value': 'closed', 'domain': 'www.reddit.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'token_v2', 'value': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IlNIQTI1NjpzS3dsMnlsV0VtMjVmcXhwTU40cWY4MXE2OWFFdWFyMnpLMUdhVGxjdWNZIiwidHlwIjoiSldUIn0.eyJzdWIiOiJ1c2VyIiwiZXhwIjoxNzMzMjg2MDgxLjgwMjc1NywiaWF0IjoxNzMzMTk5NjgxLjgwMjc1NywianRpIjoiTkFrUGZVTVVwRGZ1SmFNbjZkV3dqbnB4U0REMEFnIiwiY2lkIjoiMFItV0FNaHVvby1NeVEiLCJsaWQiOiJ0Ml9yMGx1eTFtNXQiLCJhaWQiOiJ0Ml9yMGx1eTFtNXQiLCJsY2EiOjE3MDM5MjQ3MzY4MTMsInNjcCI6ImVKeGtrZEdPdERBSWhkLWwxejdCX3lwX05odHNjWWFzTFFhb2szbjdEVm9jazcwN2NMNGlIUDhuS0lxRkxFMnVCS0drS1dFRld0T1VOaUx2NTh5OU9aRUZTeUZUUjg0M3l3b2thVXBQVW1ONXB5bFJ3V1prTGxmYXNVS0RCNllwVlM2WjIwS1BTNXZRM0kxRnowNk1xbHhXSHRUWW8zSnBiR01LMnhQanpjWnFReXF1eTZsTVlGa29uOFdMZnZ5Ry10WS1mN2JmaEhZd3JLZ0tEX1RPdUZ4d1lfSERGSGJfbnByMGJGMndxTDNYZzlRLTEtTjI3Yk5tb2RtNV9WelB2emFTY1RtRzVpZll2N3QtQ1IxNDVIbVpVUWN3WWcwX3lyQWo2X0N2T29ES0JRV01KWWhQSTVBcmwyX19KZGl1VGY4YXR5ZC0tR2JFVFdfNHJSbW81eExFb1VfajZ6Y0FBUF9fWERfZTR3IiwicmNpZCI6Ill6STUzaXNuVVRQUm42M3NQbjRSNFBNbVdOcjE4SU1uUU93T2VfaHFuem8iLCJmbG8iOjJ9.F_24jXHdZDXCmMx4aubrjT94AtnYDzD7eg7SjV1Rwa6ymrvrXW8uZnIqgqVkHJio-mZW_JsxlSKzlIDMJ_lrWtgxFHhgGFWnWkS-raKhYrrQt3gwN-C5VPc3iF-1pVUaf0Jf0gX1aYyvdtRD48rRd8sjCoAwHcGiNH8B7abUPN8JJuQcAEH2GzYSc9Zarb0jANLyw7fGdTdWXfWjUXjy33alItwyhMVcgCIXlVf5wlayRBsRXS_ObpKiril2BuAgCrrVuOWDdflpi58FTA0pki4F0wTdcJfORP9yjZ_L7AJUXhXhswx5Lcf0kTU1hFy4RqFRRd95Q0xZg7Yj2uIC7w', 'domain': '.reddit.com', 'path': '/', 'expires': 1733286081.968748, 'httpOnly': True, 'secure': True}, - {'name': 'session_tracker', 'value': 'hhjeikkilpgneqelrj.0.1733199684513.Z0FBQUFBQm5Ub2RFN25sX3lzSVRyLUFxSEtEcmozdW1BbGdaQUtmZUZCMVNteW1PSGhxRHNEdkhrR0lneUNCTUgzUlE2QkdUb2tRRHVyTnNNNlpnOV80TVZzd2hlSzFCRUtLLVZmREYwejhDSXIyX1Q4T04yMnlrSGJkMlVla2h5R1huYnFGOUFleGU', 'domain': '.reddit.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'csrf_token', 'value': '04b1407f1ebd23723b261a469d4dac84', 'domain': '.reddit.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Strict'}, - {'name': 'hum_ieee_visitor', 'value': '3403d64f-1870-4601-9ff7-e5900074a6db', 'domain': '.ieeexplore-ieee-org.eproxy.lib.hku.hk', 'path': '/', 'expires': 1756280921.91082, 'httpOnly': False, 'secure': True}, - {'name': '_zitok', 'value': '6273c58ab3f308a07a711718187500', 'domain': '.ieeexplore-ieee-org.eproxy.lib.hku.hk', 'path': '/', 'expires': 1761551757, 'httpOnly': False, 'secure': True, 'sameSite': 'Strict'}, - {'name': 'AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20060%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733149186s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1767701986.053151, 'httpOnly': False, 'secure': False}, - {'name': 'ezproxy', 'value': 'e1~OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False}, - {'name': 'ezproxyl', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxyn', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'AMCVS_8E929CC25A1FB2B30A495C97%40AdobeOrg', 'value': '1', 'domain': '.ieeexplore-ieee-org.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 's_cc', 'value': 'true', 'domain': '.ieeexplore-ieee-org.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1765086053, 'httpOnly': False, 'secure': False}, - {'name': 'utag_main', 'value': 'v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:2$_ss:0$_st:1733551853250$ses_id:1733549982472%3Bexp-session$_pn:2%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk', 'domain': '.hku.hk', 'path': '/', 'expires': 1765086053, 'httpOnly': False, 'secure': False}, - {'name': 'AMCV_8E929CC25A1FB2B30A495C97%40AdobeOrg', 'value': '359503849%7CMCIDTS%7C20065%7CMCMID%7C53777252718039557930823884447397163100%7CMCAID%7CNONE%7CMCOPTOUT-1733557253s%7CNONE%7CvVersion%7C5.0.1', 'domain': '.ieeexplore-ieee-org.eproxy.lib.hku.hk', 'path': '/', 'expires': 1768110053.386389, 'httpOnly': False, 'secure': False}, - {'name': 'did', 'value': 'iXxy5Y0Lo7cY1c90Riq7yRkq4VdJdrz9F1T7N0fqKOFKoaNbUas5EeVE3Oo7jl4M', 'domain': '.www.researchgate.net', 'path': '/', 'expires': 1764671442.13171, 'httpOnly': True, 'secure': True}, - {'name': 'ptc', 'value': 'RG1.8779880038783811042.1696569455', 'domain': '.www.researchgate.net', 'path': '/', 'expires': 1767695442.13179, 'httpOnly': True, 'secure': True}, - {'name': 'pl', 'value': 'wbbzs5zjXc51gyzsE5huVpQxOu7nxEnyZDiQcl7KEpwjXmoGTD064RedCDxz696tPbB38xaV8xe1oIJFEAAanE6P4MKWta1rUAq6iCLxSGnCYhfeB9JhdfN5cz70vq1R', 'domain': '.www.researchgate.net', 'path': '/', 'expires': 1764671442.13175, 'httpOnly': True, 'secure': True}, - {'name': 'didomi_token', 'value': 'eyJ1c2VyX2lkIjoiMTkxOTNiYWQtMDhhMS02Njg5LWE4NTUtMzAwN2VhYzA5MjAwIiwiY3JlYXRlZCI6IjIwMjQtMDgtMjdUMTI6MDY6MTkuNTMwWiIsInVwZGF0ZWQiOiIyMDI0LTA4LTI3VDEyOjA2OjI4LjQ4M1oiLCJ2ZW5kb3JzIjp7ImVuYWJsZWQiOlsiZ29vZ2xlIiwiYzpnb29nbGVhbmEtNFRYbkppZ1IiLCJjOnBvc3Rob2ctQmpKeEZkRjkiLCJjOmRpZG9taSJdfSwidmVuZG9yc19saSI6eyJlbmFibGVkIjpbImdvb2dsZSJdfSwidmVyc2lvbiI6Mn0=', 'domain': '.researchgate.net', 'path': '/', 'expires': 1756382788, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'euconsent-v2-didomi', 'value': 'CQEAuYAQEAuYAAHABBENBDFgALHAAELAAAYgF5wAQF5gXnABAXmAAAAA.djgACFgAAAAA', 'domain': '.researchgate.net', 'path': '/', 'expires': 1756382788, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'dmd-tag', 'value': '29c64880-8f9e-11ef-aabb-5bb25e381cbc', 'domain': '.www.researchgate.net', 'path': '/', 'expires': 1767695450.916031, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'sid', 'value': 'TCoR8Z544diaoyMwqLA8X9TS7HfkN6SpWX1ropwuTqxNP2j10bZlYc7YIVBKPyVcfem0NqbdChel00sIOkOeF5GtceLW00ubTrpe4dAD5xLJ81ocWo9svlf6J9gynIf6', 'domain': '.www.researchgate.net', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'cili', 'value': '_2_MjZhMmQ5N2FmMzgyNmJkYTJiZjc2ZjE0ZjRmMDUxYjMzYjJkZmQxYWY0Njg4Nzc4MTM4ZDE1MGVmNWRhYTc0Nl8yOTU3MzAzNjsw', 'domain': '.www.researchgate.net', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'cirgu', 'value': '_1_SaiBmdG2CNFFXfi8YLMIIkC%2BD5oxd2H0CqLqIhkm0V8y0ncsQEoe%2FGUZOhACuKUy5feYcA%3D%3D', 'domain': '.www.researchgate.net', 'path': '/', 'expires': 1764692368.131654, 'httpOnly': False, 'secure': True}, - {'name': '_cfuvid', 'value': 'GehzRPPGzCCv.nPAiw9L7tRQCAi.hQAAinF5RqUksz0-1733135442009-0.0.1.1-604800000', 'domain': '.researchgate.net', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'dmd-sid4', 'value': '{%22id%22:%227cce57f0-b098-11ef-924a-5d9117969fc2%22%2C%22timestamp%22:1733135444000%2C%22lastUpdate%22:1733135450000}', 'domain': '.www.researchgate.net', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%22192aea49fbae19-0a0ceb4f539c6b-16525637-16a7f0-192aea49fbb210e%22%2C%22utm_source%22%3A%20%22researchgate%22%2C%22utm_medium%22%3A%20%22email%22%2C%22utm_campaign%22%3A%20%22re442%22%2C%22utm_content%22%3A%20%22re442_up_pb_hnsg_nnaas_p110%22%2C%22utm_term%22%3A%20%22re442_up_pb_hnsg_nnaas%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24search_engine%22%3A%20%22google%22%7D', 'domain': '.researchgate.net', 'path': '/', 'expires': 1764671451, 'httpOnly': False, 'secure': False}, - {'name': '__cf_bm', 'value': 'X2xX99VpHc3Xm_TRnIRhN7Wp533PLOt.311xMWQYn28-1733136361-1.0.1.1-qskSGITd3dmHUV3UswCd8O6ygg3jdBOF9Wz1PxlPQq66VUx0blvFKst7fH33pTnkl2W1VBjBjlF8CgPVLesusQ', 'domain': '.researchgate.net', 'path': '/', 'expires': 1733138161.246979, 'httpOnly': True, 'secure': True}, - {'name': 'ph_phc_ma1XTQyee96N1GML6qUTgLQRiDifnRcE9STiHTZ0CfZ_posthog', 'value': '%7B%22distinct_id%22%3A%22AC%3A29573036%22%2C%22%24sesid%22%3A%5B1733137066914%2C%22019386ec-50e4-79f9-9b7b-d8ed5854cf9f%22%2C1733135454436%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22https%3A%2F%2Fwww.researchgate.net%2Fprofile%2FJiabin_Tang4%2Fpublications%3FeditMode%3D1%26sorting%3DrecentlyAdded%26utm_medium%3Demail%26utm_source%3Dresearchgate%26utm_campaign%3Dre214%26loginT%3DeX2d52IqLj-iYd58KHUvU88w6Ub-0Rjh_XCM-6tyfVf3Goy3Bf0swonajNlIbQg6gax3uaL6ulhi_ik9eMs%26pli%3D1%26utm_term%3Dre214_x%26utm_content%3Dre214_x_p2%26cp%3Dre214_x_p2%26uid%3D2aJ4s09Uf8rvZLKbNnk9UiFVrlZcTRXt51G2%26ch%3Dreg%22%7D%7D', 'domain': '.researchgate.net', 'path': '/', 'expires': 1764673066, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'user.uuid.v2', 'value': '"f9248aca-ac13-40e6-8b45-eaeb5fe20825"', 'domain': 'www-nature-com.eproxy.lib.hku.hk', 'path': '/', 'expires': 1740916756.716508, 'httpOnly': False, 'secure': False}, - {'name': 'ezproxy', 'value': 'e1~OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False}, - {'name': 'ezproxyl', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxyn', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '1', 'domain': '.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733558198s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1768110998.70329, 'httpOnly': False, 'secure': False}, - {'name': 'utag_main', 'value': 'v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:20$_ss:0$_st:1733553108768$ses_id:1733549982472%3Bexp-session$_pn:14%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk', 'domain': '.hku.hk', 'path': '/', 'expires': 1765087308, 'httpOnly': False, 'secure': False}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1765087436, 'httpOnly': False, 'secure': False}, - {'name': '_sp_id.a65e', 'value': 'a151b61b-0e26-493f-9885-ed0d9579e181.1712037732.1.1712037742..381bfab3-8c2a-4e54-8d4b-44a5c8c997ef..6db53b82-8b6d-471c-b7de-194adad46810.1712037732261.2', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': 1746597742.393476, 'httpOnly': False, 'secure': True}, - {'name': '__cflb', 'value': '02DiuFwNDm462z9fWfJeB58usqeie1xoTDrYZciipwE2x', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': 1733223382.743499, 'httpOnly': True, 'secure': True}, - {'name': 'XSRF-TOKEN', 'value': '64a0f62d-dc8f-40cb-8aa2-66e3ad283ad4', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'dictcode', 'value': 'english', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': 1763873478.639472, 'httpOnly': False, 'secure': False}, - {'name': 'searchPanelOpen', 'value': 'true', 'domain': '.collinsdictionary.com', 'path': '/', 'expires': 1733803809.434554, 'httpOnly': False, 'secure': False}, - {'name': 'search', 'value': 'hello', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': 1763871009.434808, 'httpOnly': False, 'secure': False}, - {'name': '__cf_bm', 'value': 'xGchgbvqtkoAYddlxWT4VgRmeTZ1qTVmI0hjpRvOj0w-1733201062-1.0.1.1-SDl6_cuGUlqEOSm4oDQpU5rJdha8wEbITIgLoxdY69GgWrSt5GO7nX47Vc2AihzcBY.yS6GZ9qXVfRKEttQyLw', 'domain': '.collinsdictionary.com', 'path': '/', 'expires': 1733202862.320396, 'httpOnly': True, 'secure': True}, - {'name': 'last_url', 'value': 'https%3A%2F%2Fwww.collinsdictionary.com%2Fdictionary%2Fspanish-english%2Fcaminata', 'domain': 'www.collinsdictionary.com', 'path': '/', 'expires': 1763873068.316249, 'httpOnly': False, 'secure': False}, - {'name': 'OptanonConsent', 'value': 'isGpcEnabled=0&datestamp=Tue+Dec+03+2024+12%3A51%3A18+GMT%2B0800+(%E9%A6%99%E6%B8%AF%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202409.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&landingPath=NotLandingPage&groups=C0001%3A1%2CC0002%3A1%2CC0003%3A1%2CC0004%3A1&AwaitingReconsent=false&geolocation=JP%3B27', 'domain': '.collinsdictionary.com', 'path': '/', 'expires': 1759121478, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'OptanonAlertBoxClosed', 'value': '2024-12-03T04:51:18.738Z', 'domain': '.collinsdictionary.com', 'path': '/', 'expires': 1759121478, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873a93591e4d-05e2471014e6fb-1e525636-1fa400-193873a935a287e%22%2C%22%24device_id%22%3A%20%22193873a93591e4d-05e2471014e6fb-1e525636-1fa400-193873a935a287e%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.collinsdictionary.com', 'path': '/', 'expires': 1764737478, 'httpOnly': False, 'secure': False}, - {'name': 'UUID', 'value': '3c4dd735-8d33-4fd0-a40f-83d399a0dc46', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1740190342.420181, 'httpOnly': False, 'secure': True}, - {'name': '_pxvid', 'value': '2dd5c1cb-b670-11ee-9186-3dd546fa1c41', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1737166344, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': '__zlcmid', 'value': '1O1n3oDgpvApbaQ', 'domain': '.jstor.org', 'path': '/', 'expires': 1764831447, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'csrftoken', 'value': 'iyx0piwZPaxHwlEjMlBpPrxRasiSrbVv', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1764745045.418981, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'OptanonAlertBoxClosed', 'value': '2024-12-04T06:56:48.465Z', 'domain': '.jstor.org', 'path': '/', 'expires': 1764831408, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'AccessToken', 'value': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZXNzaW9uSWQiOiIwMTkzOTA3NGY4MTg3OTQ1OTg4NzdiNWQzMWE4NDk3MSIsInV1aWQiOiIzYzRkZDczNS04ZDMzLTRmZDAtYTQwZi04M2QzOTlhMGRjNDYiLCJ1c2VyIjp7ImlkIjoiIiwibG9nZ2VkSW4iOmZhbHNlLCJhZG1pbiI6ZmFsc2V9LCJpYXQiOjE3MzMyOTU0MDksImV4cCI6MTczMzI5NTcwOX0.lIt08pG__dm_kZ3kJUYMw_bK0Ow2kAD8i2Jf8OQA0RM', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1733299009.610988, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'AccessSessionTimedSignature', 'value': '1b72fc2754973a3daa1baf1b169dfda5ed067ed4113573f1a1005ce5da900999', 'domain': 'www.jstor.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'AccessSession', 'value': 'H4sIAAAAAAAA_42U3W7bMAyF38XXUSFKlEXlLgv2f7Gi7S62oRgYSc68uXHg2B26ou8-KW4adxu6GoEhyYfi4Scqt8Uw1KGYF9pjCFYbQUFrgVWQglFWgnTQzrEMHstiVtTbpAVLJ2DsSfop1Hk17yDBaSetQYzKuqpy1q-YfbBKckWGkm47FWJFQNahcUTWrkzQwITOQhJ2e2HFu765ESFWPDT9nBQiWXIVeAmMUCkGUtJrU6UX5AQN9ylOSYUClJB4Icu5sXOJJ1YTgrJkPmfZ8KRMQ7mX7Z5WmVHV-2Led0OcFdfc7H1PQ9whJAW4Mm2dQ7jvu10xvy2WyyRfnKel5UUatTv-wV-VzfNPaf7uNI3OlofReda8vXizeL8o7tIuQ_9t4X2fdvpyW_Q325g_b3Z93Q993W4yx7aJ-fPlrLiqN_VV_Su-anh9MLx3CyVamaGMM5BSKq3LfAxxvxSjX1HJLGLJTqAMJNhqKYB1NICUzzvH3zuoHznwXQyjwWe3mXhmwoR7iM9v3Xt7L7r25y52p1x39WZdjBhHIHeXd7MJyFBf12HgZsKx-Hj-8qx4iiai1gpB6iNRQ45caj59JOqgghBABBmsQDBOMJUovFaByKtQAkyInsZu124-Jtd_Az3kwwmQdduumyhAOmegTHfMSJsOGYg0HUF8WOTC_6g_lcYPLTWemEWrFD54V-nmhtTNwliuBAZk4TywkBwlQVm5kswxyVlcj33wL2DNfQJNWtGk3m4ftK83H8hIMbXlEaCLJG2IXlTargR6awR7SjfOAzk2fiVZHk287tph-6QHNcm-zuoxeaLxffzL-s_zGONvRDIvs1UFAAA', 'domain': 'www.jstor.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'AccessSessionSignature', 'value': '78ecce97f2a2de3ffb4af7c87424885165a11fe7d2e29bf960edff5c48167a35', 'domain': 'www.jstor.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': '_pxhd', 'value': 'xbR2aQnYKWrHiFs3JKCUojuB1cOv3M4cNFTMhSdjqxqtIsdgsSi8ehBRY7OxVo9kz4W0VVvgcv6IyY0Ta0SJPA==:medf83pfHV213oGcCOKWmgsZc4Kr8q2rEC2GEWBrpMBibA5DYuL7eKs10ANKfVD8qmvJUfcosZrIkQ83XUVKtKmZa4Y6lK04fy46yN254wo=', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1764831425.214494, 'httpOnly': False, 'secure': False}, - {'name': 'pxcts', 'value': 'f8fbc8a1-b20c-11ef-a65c-4947163db9b8', 'domain': 'www.jstor.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': '_px2', 'value': 'eyJ1IjoiZjhjZDk4ZjAtYjIwYy0xMWVmLWFkYzctZGQxMTkxM2QxNDlkIiwidiI6IjJkZDVjMWNiLWI2NzAtMTFlZS05MTg2LTNkZDU0NmZhMWM0MSIsInQiOjE3MzMyOTU3MjY4NjgsImgiOiIyMTFhMjMyMTRlZmQwOWE5OTNhZjlmODU2MDU1ZmI1N2U4MTcwY2RmNDNlZjM0MGFhYzg1Yzk2NzQ0NmVjOWI5In0=', 'domain': 'www.jstor.org', 'path': '/', 'expires': 1733296026, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ReferringRequestId', 'value': 'fastly-default:258d2927284d8837614cc35365d11c1d', 'domain': 'www.jstor.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%221939074fba7618-0aaf84ba8a423a-1e525636-16a7f0-1939074fba82966%22%2C%22%24device_id%22%3A%20%221939074fba7618-0aaf84ba8a423a-1e525636-16a7f0-1939074fba82966%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%7D', 'domain': '.jstor.org', 'path': '/', 'expires': 1764831445, 'httpOnly': False, 'secure': False}, - {'name': 'OptanonConsent', 'value': 'isGpcEnabled=0&datestamp=Wed+Dec+04+2024+14%3A57%3A25+GMT%2B0800+(%E4%B8%AD%E5%9B%BD%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202303.1.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=e6c4a174-c538-4f9f-8632-f5f8e9ff428d&interactionCount=2&landingPath=NotLandingPage&groups=C0001%3A1%2CC0002%3A1%2CC0005%3A1%2CC0004%3A1%2CC0003%3A1&AwaitingReconsent=false&geolocation=JP%3B27', 'domain': '.jstor.org', 'path': '/', 'expires': 1764831445, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20060%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733149186s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1767701986.053151, 'httpOnly': False, 'secure': False}, - {'name': 'ezproxy', 'value': 'e1~OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False}, - {'name': 'ezproxyl', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxyn', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1765083373, 'httpOnly': False, 'secure': False}, - {'name': 'ezproxy', 'value': 'e1~OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False}, - {'name': 'ezproxyl', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxyn', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '1', 'domain': '.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'utag_main', 'value': 'v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:20$_ss:0$_st:1733553108768$ses_id:1733549982472%3Bexp-session$_pn:14%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk', 'domain': '.hku.hk', 'path': '/', 'expires': 1765087308, 'httpOnly': False, 'secure': False}, - {'name': 'AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733559088s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1768111888.617908, 'httpOnly': False, 'secure': False}, - {'name': 'SID', 'value': '"EUW1ED0CAFs37MFXuY5NakcbWc5Qu"', 'domain': '.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'CUSTOMER', 'value': '"UNIVERSITY OF HONG KONG"', 'domain': '.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'E_GROUP_NAME', 'value': '"University of Hong Kong"', 'domain': '.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': '__cf_bm', 'value': 'dU7HSmMJl6w4XDg.tZSoewkYsxb0bX7Barvg4RvulLw-1733551961-1.0.1.1-7Um2w5HRPO8C06bwjScmRD9BaTZkbArPDfX_e8urefWlKlH50nONZAxnxeL4VbDbHzBBcAY1OzwO5TyNuuCUfQ', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1733553761.117424, 'httpOnly': False, 'secure': False}, - {'name': 'AMCVS_242B6472541199F70A4C98A6%40AdobeOrg', 'value': '1', 'domain': '.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'adBlockEnabled', 'value': 'blocked', 'domain': 'www-science-org.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'cookiePolicy', 'value': 'iaccept', 'domain': 'www-science-org.eproxy.lib.hku.hk', 'path': '/', 'expires': 1733638777.524329, 'httpOnly': False, 'secure': True}, - {'name': 'AMCV_242B6472541199F70A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20065%7CMCMID%7C90810009207598809487163227219398447255%7CMCOPTOUT-1733559578s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1768112378.032281, 'httpOnly': False, 'secure': False}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24search_engine%22%3A%20%22google%22%7D', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1765088378, 'httpOnly': False, 'secure': False}, - {'name': 'OptanonAlertBoxClosed', 'value': '2024-06-06T05:28:24.993Z', 'domain': '.orcid.org', 'path': '/', 'expires': 1749187704, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'AWSELB', 'value': 'CBD1D7FF1216388FA48838CBCA4774FD22800B8FB55A37124459E84B59F34FE231A4AA84F4ACD29C01160D60FB2ABE4D73D23EFBBE355236CF44A8FEE381C3844BD946CF3D', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'AWSELBCORS', 'value': 'CBD1D7FF1216388FA48838CBCA4774FD22800B8FB55A37124459E84B59F34FE231A4AA84F4ACD29C01160D60FB2ABE4D73D23EFBBE355236CF44A8FEE381C3844BD946CF3D', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'orcidUserConnectionId', 'value': '-114606494029392851', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'XSRF-TOKEN', 'value': 'b64bcd3a-f0f5-407b-9115-a1f5183f3997', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'JSESSIONID', 'value': '48DD20615AC49336A91F9A3A6F5B1483', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'locale_v3', 'value': 'en', 'domain': 'orcid.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193871b8e67918-084bddcb7389ac-1e525636-1fa400-193871b8e682d76%22%2C%22%24device_id%22%3A%20%22193871b8e67918-084bddcb7389ac-1e525636-1fa400-193871b8e682d76%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.orcid.org', 'path': '/', 'expires': 1764674617, 'httpOnly': False, 'secure': False}, - {'name': 'OptanonConsent', 'value': 'isGpcEnabled=0&datestamp=Mon+Dec+02+2024+19%3A23%3A37+GMT%2B0800+(%E9%A6%99%E6%B8%AF%E6%A0%87%E5%87%86%E6%97%B6%E9%97%B4)&version=202310.2.0&browserGpcFlag=0&isIABGlobal=false&hosts=&consentId=71ca593a-5b7c-4963-87cf-52c27440ac95&interactionCount=1&landingPath=NotLandingPage&groups=C0001%3A1%2CC0003%3A1%2CC0002%3A1%2CC0004%3A1&geolocation=HK%3B&AwaitingReconsent=false', 'domain': '.orcid.org', 'path': '/', 'expires': 1764674617, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'cookieName', 'value': 'dont%20show%20message', 'domain': 'orcid.org', 'path': '/', 'expires': 1764674620, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'closable-unique-name', 'value': 'understood', 'domain': 'orcid.org', 'path': '/', 'expires': 1764674620, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxy', 'value': 'e1~OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False}, - {'name': 'ezproxyl', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ezproxyn', 'value': 'OilZogbDH4iMWPK', 'domain': '.eproxy.lib.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'AMCVS_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '1', 'domain': '.hku.hk', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'utag_main', 'value': 'v_id:01939fa183070055958b6429f88c05075005506d00bd0$_sn:1$_se:13$_ss:0$_st:1733552707246$ses_id:1733549982472%3Bexp-session$_pn:9%3Bexp-session$vapi_domain:ieeexplore-ieee-org.eproxy.lib.hku.hk', 'domain': '.hku.hk', 'path': '/', 'expires': 1765086907, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'AMCV_4D6368F454EC41940A4C98A6%40AdobeOrg', 'value': '179643557%7CMCIDTS%7C20065%7CMCMID%7C09958998665032490705964449674769238820%7CMCAID%7CNONE%7CMCOPTOUT-1733558198s%7CNONE%7CvVersion%7C5.5.0', 'domain': '.hku.hk', 'path': '/', 'expires': 1768110998.70329, 'httpOnly': False, 'secure': False}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24device_id%22%3A%20%22193873d31db19b2-00bbd0bd5ad31-1e525636-1fa400-193873d31dc28b3%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.lib.hku.hk', 'path': '/', 'expires': 1765087052, 'httpOnly': False, 'secure': False}, - {'name': 'PREF', 'value': 'f7=4100&tz=Asia.Hong_Kong&f4=4000000', 'domain': '.youtube.com', 'path': '/', 'expires': 1767698936.819909, 'httpOnly': False, 'secure': True}, - {'name': 'HSID', 'value': 'AuvRBV-Q9GEReACoE', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.11147, 'httpOnly': True, 'secure': False}, - {'name': 'SSID', 'value': 'AHum7OsxEOAD-Ibp4', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111503, 'httpOnly': True, 'secure': True}, - {'name': 'APISID', 'value': 'FRZgwlTWYfVE-B2B/A7FrDbUAZCyMOb6ue', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111539, 'httpOnly': False, 'secure': False}, - {'name': 'SAPISID', 'value': 'mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111575, 'httpOnly': False, 'secure': True}, - {'name': '__Secure-1PAPISID', 'value': 'mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111613, 'httpOnly': False, 'secure': True}, - {'name': '__Secure-3PAPISID', 'value': 'mPwGiY6zyqe8IurQ/An35YGZHoL6Ged8z8', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111646, 'httpOnly': False, 'secure': True}, - {'name': 'LOGIN_INFO', 'value': 'AFmmF2swRgIhALZXJQRg7B6iILvfx41A-mHr8rh7RMGV3cNkppAPlxxvAiEA38fh68Ct3o4p-ywc1zHhWZxrJ5Dpcd0AcsMp4RZONUs:QUQ3MjNmeTdGelpVWXZuN1RTeUMzQkYwNEZhVXY1emtGT1pycWFmWC1LU0txanZReHBLaDRxVHJEZGRyOV8wajFIajdyLWYwcE1rSFZfRVlBM3BNaXZSQlMtLVlLR3RmSURpQjhKRlJaU0xJcHQySmZVNUp6eWFFak9rbE4yWDg5WGdjSkM4QjJhcFRYZTAwVEF6a3RPUzhsSzV0R05YWkVB', 'domain': '.youtube.com', 'path': '/', 'expires': 1766493681.602721, 'httpOnly': True, 'secure': True}, - {'name': 'SID', 'value': 'g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsOzHaI33jRkuMY7qPd2ZFEAACgYKAUMSARYSFQHGX2Miunh4qpdUynkY2PXqPSvzGxoVAUF8yKqW-lS90SUYH-cprrTRIWDZ0076', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111199, 'httpOnly': False, 'secure': False}, - {'name': '__Secure-1PSID', 'value': 'g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsSADU_B-86vJipiHTuQxp3gACgYKATgSARYSFQHGX2MinsKT7OE3L_H9SEzrOgndQRoVAUF8yKqLdTsMTC89NTlwps9-uRSu0076', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111393, 'httpOnly': True, 'secure': True}, - {'name': '__Secure-3PSID', 'value': 'g.a000qQgZRYfZgm7ZwgtAwFbDQEBvZXpLRLlzTLW27vxVIiEvbgDsvr3qlDZAuj7i33G332SpFwACgYKAekSARYSFQHGX2Mi9DYKrElENMuHNeaGctBCdBoVAUF8yKrmoWXREkhXzva2a6J3B2ps0076', 'domain': '.youtube.com', 'path': '/', 'expires': 1766544331.111431, 'httpOnly': True, 'secure': True}, - {'name': 'NID', 'value': '519=I7v3EQhK2PGhnXSOCZyz5QYVGbJ383LEPRVqShP2G15ip3zj5VjyDJWEAlJtS3ifC0qs-7cxlwk_vCTqntg_LWW_hfONxTqG6JVJ8JvpMEr2eM_Fqb9n8nVbc_YNrwSIUEorM5N5FUoZmW2u4Qksi_a0-ssHJWsOBEwdxpDONaY', 'domain': '.youtube.com', 'path': '/', 'expires': 1747984059.767459, 'httpOnly': True, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221928f27a2a80-04cb41970e6945-16525637-16a7f0-1928f27a2a920cc%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22utm_source%22%3A%20%22ythp%22%2C%22utm_medium%22%3A%20%22LeftNav%22%2C%22utm_campaign%22%3A%20%22ytgen%22%2C%22utm_content%22%3A%20%22txt%22%7D', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674936, 'httpOnly': False, 'secure': False}, - {'name': 'ST-xuwub9', 'value': 'session_logininfo=AFmmF2swRgIhALZXJQRg7B6iILvfx41A-mHr8rh7RMGV3cNkppAPlxxvAiEA38fh68Ct3o4p-ywc1zHhWZxrJ5Dpcd0AcsMp4RZONUs%3AQUQ3MjNmeTdGelpVWXZuN1RTeUMzQkYwNEZhVXY1emtGT1pycWFmWC1LU0txanZReHBLaDRxVHJEZGRyOV8wajFIajdyLWYwcE1rSFZfRVlBM3BNaXZSQlMtLVlLR3RmSURpQjhKRlJaU0xJcHQySmZVNUp6eWFFak9rbE4yWDg5WGdjSkM4QjJhcFRYZTAwVEF6a3RPUzhsSzV0R05YWkVB', 'domain': '.youtube.com', 'path': '/', 'expires': 1733138942, 'httpOnly': False, 'secure': False}, - {'name': '__Secure-1PSIDTS', 'value': 'sidts-CjIBQT4rXxBz2VTDVx5cMn6A_YgFHPgo9Z-eWATlXeINT58ZUInn2_vTeUb4czgvWV-j5BAA', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674938.226552, 'httpOnly': True, 'secure': True}, - {'name': '__Secure-3PSIDTS', 'value': 'sidts-CjIBQT4rXxBz2VTDVx5cMn6A_YgFHPgo9Z-eWATlXeINT58ZUInn2_vTeUb4czgvWV-j5BAA', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674938.226624, 'httpOnly': True, 'secure': True}, - {'name': 'SIDCC', 'value': 'AKEyXzWXdf72zjmIboZNkzmg9VURwnmM1MpJVRgAxjRuMRib1b7iu5SkCZccexcK6jf2abrLEoQ', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674940.01384, 'httpOnly': False, 'secure': False}, - {'name': '__Secure-1PSIDCC', 'value': 'AKEyXzXWzx9lRoJCEXrHvqZeWtAugc_tFou4ucmylPeSpc0nRX2EZ-t3QGTGqberRiTB3QIHjQ', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674940.013891, 'httpOnly': True, 'secure': True}, - {'name': '__Secure-3PSIDCC', 'value': 'AKEyXzVyGt5J-awGqBrP5_hTnwTmCMsUu5oWISlljhXbP9P7vrGxlzOg05O_vwlgbuGOKRUQGYA', 'domain': '.youtube.com', 'path': '/', 'expires': 1764674940.013962, 'httpOnly': True, 'secure': True}, - {'name': 'MAID', 'value': '+O8mvi2rAtZrnJqF+2cRIQ==', 'domain': '.pnas.org', 'path': '/', 'expires': 1759078802.198648, 'httpOnly': True, 'secure': True}, - {'name': 'MACHINE_LAST_SEEN', 'value': '2024-12-02T09%3A00%3A01.960-08%3A00', 'domain': '.pnas.org', 'path': '/', 'expires': 1759078802.198711, 'httpOnly': True, 'secure': True}, - {'name': 'JSESSIONID', 'value': 'CEDD494D14F0052C199B1D7AE667EF42', 'domain': '.pnas.org', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': '__cf_bm', 'value': 'YJQBFxCTLG1d3d9R0fVmwlmAgP9kqVl3zwf02v.COMQ-1733158802-1.0.1.1-tLccs1jD809lM7_9Bhy35sLQdM1TaakBEYvhdDEi1w9cWJS9IGjovTwKGdYQtse6_rWkJNYt._LsHQI2WCwDUQ', 'domain': '.pnas.org', 'path': '/', 'expires': 1733160603.504839, 'httpOnly': True, 'secure': True}, - {'name': 'cookiePolicy', 'value': 'accept', 'domain': '.pnas.org', 'path': '/', 'expires': 1767718816.994233, 'httpOnly': True, 'secure': True}, - {'name': 'connect_auto_login', 'value': 'true', 'domain': '.pnas.org', 'path': '/', 'expires': 1735750875.510643, 'httpOnly': True, 'secure': True}, - {'name': 'PLUID', 'value': 'l8nplDdx7mN9Xh4lErbknypxfmo=', 'domain': '.pnas.org', 'path': '/', 'expires': 1759078875.9476, 'httpOnly': True, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%221938850d07a6d2-0446945abb35c6-1e525636-16a7f0-1938850d07c132a%22%2C%22%24device_id%22%3A%20%221938850d07a6d2-0446945abb35c6-1e525636-16a7f0-1938850d07c132a%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.pnas.org', 'path': '/', 'expires': 1764694876, 'httpOnly': False, 'secure': False}, - {'name': 'donation-identifier', 'value': '8ed6af4cc08b88b68b36fffcb6dd7323', 'domain': '.archive.org', 'path': '/', 'expires': 1741773847.95608, 'httpOnly': False, 'secure': False}, - {'name': 'abtest-identifier', 'value': 'ca9982a6c4240d53598f01665a3c6100', 'domain': '.archive.org', 'path': '/', 'expires': 1741773847.956153, 'httpOnly': False, 'secure': False}, - {'name': 'test-cookie', 'value': '1', 'domain': '.archive.org', 'path': '/', 'expires': 1734348067.326946, 'httpOnly': False, 'secure': False}, - {'name': 'g_state', 'value': '{"i_l":0}', 'domain': 'archive.org', 'path': '/', 'expires': 1748690473, 'httpOnly': False, 'secure': False}, - {'name': 'logged-in-sig', 'value': '1764674476%201733138476%20Y3yQCmHjxUil%2FcGs%2FgYR6m%2FHA%2F%2FtAtShDsn25N2tNIzvkGr6EkwbEsYEwDTjZ6%2Bu4Iy65eDH5gZVrZayaRZzJEa6R91agNjLC1rmw%2F47W5OXyDVFN5kLX%2Ba2OxNOzEx6Ws%2BLVwFVr%2Bdnbzhdt1vqNTEpECwy14%2Fu4n9qXGANJ5IKEO7pfu4ONymTb0RWH%2B158Wphp0Gluy9bR1a3t3TSGM%2FyhBEa37FJ56ckJJDghwIVsANhhu%2FextDlCDLXDkPtxLrwdX%2FAlbBoNFIeQ5%2BzoJX21KKQVdJxVWzSRLb4LXyFQsvhkpL221qlJ%2FDQER53IrTAIkmxrDI4cfjumUnKTQ%3D%3D', 'domain': '.archive.org', 'path': '/', 'expires': 1764674476.838234, 'httpOnly': False, 'secure': False}, - {'name': 'logged-in-user', 'value': 'jiabintang77%40gmail.com', 'domain': '.archive.org', 'path': '/', 'expires': 1764674476.838343, 'httpOnly': False, 'secure': False}, - {'name': 'PHPSESSID', 'value': 'jteta3bg9mb3t8e6dkp7r6mcd4', 'domain': '.archive.org', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'donation', 'value': 'x', 'domain': '.archive.org', 'path': '/', 'expires': 1736767334, 'httpOnly': False, 'secure': False}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193871a38b622b1-030839df772cce-1e525636-1fa400-193871a38b71d9a%22%2C%22%24device_id%22%3A%20%22193871a38b622b1-030839df772cce-1e525636-1fa400-193871a38b71d9a%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D', 'domain': '.archive.org', 'path': '/', 'expires': 1764675133, 'httpOnly': False, 'secure': False}, - {'name': 'ncbi_sid', 'value': '015E11D6531E8483_1525SID', 'domain': '.nih.gov', 'path': '/', 'expires': 1764675079.027761, 'httpOnly': False, 'secure': False}, - {'name': 'pmc-frontend-csrftoken', 'value': 'L3uvd1o5Uu2efxgCXWDzwxfDTl5QIFDR', 'domain': 'www.ncbi.nlm.nih.gov', 'path': '/', 'expires': 1753769052.705813, 'httpOnly': False, 'secure': False, 'sameSite': 'Lax'}, - {'name': 'ncbi-login-route', 'value': 'google', 'domain': '.ncbi.nlm.nih.gov', 'path': '/', 'expires': 1741001395.405247, 'httpOnly': False, 'secure': False}, - {'name': 'PRESERVTARGET', 'value': '%2FtYTXpgzJne16bwfb4ZN2lGInyYoZNk58TVbSvhIR0njSJplCp65%2BiF2SZAktvmmznDxgJBJhBCH%0ANoo2je1cMk0RXykLSXa4UwW7u0%2B%2Fc1X7WzHdCi209NjSVDPLNfOmFzmtz50Uuh6EfD95OQ%2BYQ2B%2B%0Aq7BP3es9s8ArLlZd9XW7NS72Ulu8cigULF%2FZADnu%2FPZf8DmPLOXuV6xWf0fqcNlZXwWhiCjrPJiU%0AU594rDm20QBWFe5y0VjWXnJtzYm7uSPkWDQYJ8htbKyWwjn4aG0xcYfTBSBUTOi9A%2Bo1BnUPHLIi%0A8V9%2Fi7S2i2vLCCwVTCSGS0pctKKWZRmzEmP9NB4rA167%2FSMuyX6ezHZNUyztiKaga84g5monl5bT%0AjNlmWeBFQV90piriK2wjmey3mIoTu2eJyDi%2Bx%2FO7pwMTfeiU2WXZ5h3U4kRBxw%2FR6%2FrCMYtVrzXp%0A%2FexiuMJDHQmiDPowP8dxw97tgs353jnBRGe8jpoCPoPG2hywQnwXtxW8SjWp19yTypxVFl4KnD1e%0A5aoPyq%2F7tPDRPbW7UikYuihFvX0mD1TH7A0G9Bk%2B36y%2F7jL8oW7OArzEbESjcx2aVRL%2B3VqzX1Oc%0AZcFWXfVarYgckE8EeyNwFwhPDoASs2T4SVNAJAQ38A0bYzCAxc6mQLqADqesOuuveClDDgB8WITg%0A1QnE32rGsLz37nzAQ89V', 'domain': '.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'NIHSMPROFILE', 'value': '9i9xFyZxcZ3DeEBWJ1M%2B1ygJsb2LhWqfanAC3W20fjIpeXaMrRQ%2F9L3R6DUjYzq5%2FqUDVLhYywfn1%2BT0RJpzID8efN8zNczLDneXLM7waIbhTdfwbIh%2BCnmN0fucHtqYylLU1altZcOhSRTow47jYwyEUFsmJ6kz3T1%2BnZWx3Ol0zaFC8onzZCtl4YHbCxMJVbHYuMcGM4f4YxpiDefQvlDdwY1soBI8z9nvb%2BKMs1B3GgplTzyllWIbC1RHxGLvdlNaz8Zlzw6MU4B3piqrAiCWAvoMF3%2FSShIchSdP0utP%2BMROhcGaoWBU%2FKfkjjDc3lHCPfydE%2F895aasf6uvrL7uccokjb6HxdVs0FA%2FHxfBNJXURVRSpRl9%2BPOd9%2FOOlXQQqhBh1FyAZs6WIxDvLhegMvLITcLh7ahcahuJnoeImSla4b4kK0Ayy6736mJCa0hhXUzGjab4Yhht11PliHlAlh4wLEXj0Dp7X9pj7Ws1%2BdCx8QZyiTWrbauCQJtS1hNXn%2Blg4BoQ2sIq%2FxltuA%3D%3D', 'domain': '.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'NIHSMSESSION', 'value': 'ZITCB6DlveT31D7iO+eVBnrLBxVxrCJGSz/5hVXNSYwvjuPpvd0O7dD6XqsFf6LKdJXktiX+hhtPWtsNok2mgiSvcpYTBHJxHVefyBt+KiLTVm12lBwYTkx9Gb9OxZNQsMS/Hvoj45/ShvSKut3d7c8e2cEhtjA7DWjHEYHj0tuk3fEoQ4t0UAWkhj6bFt5Vo5tm6dyqen/1EH2o6cBZrVSLbk67LctlbRyV4pc5099Il2lTMPo6LqtyVI1AC/bcSioge+LqDbpDiuP4NOF3EPj/yFSWvBz76/bqQ0Hu5oRGCC1zVPhSGJ1iukio91F6IfYr5vTtMrN00vSuxHRnxj0BYCEuGKtCeNDohuGAZvQVkjhc1aI53oWFu8UNHZvYA+Xo2lpLZUOT+2pkjk1Z/WpAPzE8L+O6mRjwaq8/2b3rUS8gq4Y/2vQYhqmNxeHOBsM01BhpJdRF3Urp3dnIIYakYeCgzC/3Kww+p8ImsBTjvXDO1ivVEjKB4AdnCsRdLpGPszS9xF7439aXXCWHDItM4Wl458T12QWeV+DXiiwzD/kis1QQBWibzsZOzo9KDM3oapKa8I2ouKXb797Z7s+eLR1+Z10lyWZuNVLLZK5ckFT5riayLYeT8+IjFYVER/nfDzm3KpgVPnep/k4DANpDgAOK78iuTv3sBndNMoKrXz2qCZtfi3/gLGZTKcOy90meluFZy9+iLyb+M01VBWuDp/v0a2jSdsJPVmgUQqz7hLVvtc4KpMfiDhfxXGMQnaieP9jREFK3NutAiUrkjS96WS3v5eLK80o/aG1j5IsAvxU/0lMnEri3Yz6Qw1f0ymS6giKiFIUBRUWGXcm5S1qCjwL5GiU71r3nOcaC8T9T1pVLf1R558WqH6Ha95aJVqN6CnEHo8TsZl25lb5tlJgbgb2OFvLSrbUZwuM3R5mA9zP7ciQBywxNm7xFO8sX8QQk0bRhrhgk458KE72Ci/8lhZmvpYy5aqbI4OtaLkuFuu3lX3c7/LsGt+iTFkO6eDSS4CFEnFqg3W5Glvs7WZkTasVI7L0mN0q8DCPXaIDFVPlXEA0shxZuB6Iz+mx4MshQHwY9fMRSWB7gOF5cHjHYUBLfHT/gOwl35rkoJfVf9ikpcgT88mJyk9KTQpVM+CZAGUFDbgHsRqA0jPE19sBum3cqaA6fzh9AnWXfOlAY5KNDdTB4yip4UakCXWsiXVng0GfQ7KvxAguC59L7iZyFjdsIDESi7ZozcPHOpFZleeAU3yFTvMGHmO3G3RFrxyIGCwgWehus3YCqQxZPSE6+yLjXeXTqhqgk0kxcV/MlOFgzMcAhgKEYJS045sLZsmohsIVLV0ONY4uqogSxd3YUzc0WImi1mYdNbzYwbX5tPngah4SK61Nia8Z6xjZuKfXnxNFEkNneezPoPy97Hvd+9wzI+DkU5sa844DzGxeSY/ySE3DTtpowf440r5rX', 'domain': '.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True}, - {'name': 'MyNcbiSigninPreferences', 'value': 'O2dvb2dsZSY%3D', 'domain': '.nih.gov', 'path': '/', 'expires': 1740915025.611341, 'httpOnly': False, 'secure': False}, - {'name': 'ncbi_prevPHID', 'value': 'CE88342C74D8A32100000000003B0036', 'domain': '.ncbi.nlm.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'WebCubbyUser', 'value': '3GX25AI24DLUXL8LVDJFIVTH6LJRZBE1%3Blogged-in%3Dtrue%3Bmy-name%3Djiabintang77%2540gmail.com%3Bpersistent%3Dfalse%40015E11D6531E8483_1525SID', 'domain': '.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': False}, - {'name': 'WebEnv', 'value': '1D7wJH%40015E11D6531E8483_1525SID', 'domain': '.nlm.nih.gov', 'path': '/', 'expires': 1733167826.636953, 'httpOnly': True, 'secure': True}, - {'name': 'ncbi_pinger', 'value': 'N4IgDgTgpgbg+mAFgSwCYgFwgAwEYCsAorrgCIBs+AzLoQBwAsdAnLgOxU1XPZt354AygElSIAL5A===', 'domain': '.ncbi.nlm.nih.gov', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22193872246ca871-06560f33a3902-1e525636-1fa400-193872246cb267c%22%2C%22%24device_id%22%3A%20%22193872246ca871-06560f33a3902-1e525636-1fa400-193872246cb267c%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%7D', 'domain': '.nih.gov', 'path': '/', 'expires': 1764675078, 'httpOnly': False, 'secure': False}, - {'name': '_device_id', 'value': '49f9d6cfbd603c8509e73807be70a438', 'domain': 'github.com', 'path': '/', 'expires': 1764674868.858374, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'MicrosoftApplicationsTelemetryDeviceId', 'value': '3966ee53-78ca-4fa3-95d7-85e299cecee4', 'domain': 'github.com', 'path': '/', 'expires': 1763890136.033527, 'httpOnly': False, 'secure': True}, - {'name': '_octo', 'value': 'GH1.1.1313590405.1727940967', 'domain': '.github.com', 'path': '/', 'expires': 1759476967, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'GHCC', 'value': 'Required:1-Analytics:1-SocialMedia:1-Advertising:1', 'domain': '.github.com', 'path': '/', 'expires': 1745563377, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'MSFPC', 'value': 'GUID=3452f0b49fd14d349a6dbf8ddee26d60&HASH=3452&LV=202410&V=4&LU=1730011383391', 'domain': 'github.com', 'path': '/', 'expires': 1761547383.513164, 'httpOnly': False, 'secure': True}, - {'name': 'logged_in', 'value': 'yes', 'domain': '.github.com', 'path': '/', 'expires': 1762511337.053395, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'saved_user_sessions', 'value': '151511798%3A8an8gJwE3la35NvNIyacuRFRSHlup_9RBaQ5q4CThhvPV89o%7C152840453%3A2Quysh6Cns_a0IpeKcw-GAUZIt6ZndbJ7BoGdxx11qkZa9bi%7C151510669%3AMpYw2DQuFwt3NJiimm36OWLTQmoWFzVcSUbLuV8SBFRPqN8-%7C165454715%3AZSjwi4MUxVCr91r-m1ElvPL2L0DGDSoSo6uwV7pPpliml3js%7C148674909%3ALnLJclEDIxFjFcwX0eBlgOJzbDpsxKedtd6So7_EFs6HPtL7%7C56426168%3AmM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g', 'domain': 'github.com', 'path': '/', 'expires': 1739599354.295483, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'user_session', 'value': 'mM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g', 'domain': 'github.com', 'path': '/', 'expires': 1734348468.858989, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'name': '__Host-user_session_same_site', 'value': 'mM073me2REE4yufnvYBKQ84KsG54oHKLBiTSs5tXYCoyQx4g', 'domain': 'github.com', 'path': '/', 'expires': 1734348468.859144, 'httpOnly': True, 'secure': True, 'sameSite': 'Strict'}, - {'name': 'dotcom_user', 'value': 'tjb-tech', 'domain': '.github.com', 'path': '/', 'expires': 1763647073.257243, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'color_mode', 'value': '%7B%22color_mode%22%3A%22auto%22%2C%22light_theme%22%3A%7B%22name%22%3A%22light%22%2C%22color_mode%22%3A%22light%22%7D%2C%22dark_theme%22%3A%7B%22name%22%3A%22dark%22%2C%22color_mode%22%3A%22dark%22%7D%7D', 'domain': '.github.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'cpu_bucket', 'value': 'xlg', 'domain': '.github.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'preferred_color_mode', 'value': 'light', 'domain': '.github.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'tz', 'value': 'Asia%2FHong_Kong', 'domain': '.github.com', 'path': '/', 'expires': -1, 'httpOnly': False, 'secure': True, 'sameSite': 'Lax'}, - {'name': 'mp_94085d51c4102efbb82a71d85705cdcf_mixpanel', 'value': '%7B%22distinct_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%2C%22%24device_id%22%3A%20%221928eb980316cc-050dbe3db24bd2-16525637-16a7f0-1928eb980321bb8%22%2C%22%24search_engine%22%3A%20%22google%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fwww.google.com%2F%22%2C%22%24initial_referring_domain%22%3A%20%22www.google.com%22%2C%22%24user_id%22%3A%20%22cm28oqri501xjtwbjzt1prdzm%22%7D', 'domain': '.github.com', 'path': '/', 'expires': 1764674869, 'httpOnly': False, 'secure': False}, - {'name': '_gh_sess', 'value': 'oUZyg0XEvo5fm%2FC18yV17FMePsGYB4hM9R5q8AgiwOAjTritHx1Ux4jNGjnm7Jaxz99%2FOxD4agIy05dUdG6cnSxRP62NJE7bZxIWFV2W64ekLVCwz7ge2oaRcvVlN4HjVhw5dsl2czpD8Irn%2BZG0Dmw16tH9GZZ4yhaFW5%2Fshmte3DBYsndzLNn4rGje9B3P1IFYyz9sYx23j71xRb9wRjwoLHPYGf4Yp3vRKVAzTp3X6nrjvgr4XGU2N%2BGPH3OYDZQYCIPLckTIEmRg7a0dd2KvU2mfcm%2F%2B9N9%2FNNBFTbKvUhPwWM8kIRpv5WTzU%2FI5Y0qBv71gX2B7nNm%2FtIkWjbWUhgizf%2BpxOHAuhs89sRaicpc9NjasSUISwfxRCoH5evWqVXEifhqQvSU42iR4wkhnRHs%3D--za2vZwPq%2FBJxevj3--tEOzEYASRs0gepJUCIv8Mg%3D%3D', 'domain': 'github.com', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': True, 'sameSite': 'Lax'}, - {'domain': 'www.nature.com', 'secure': False, 'expirationDate': 1733745572000, 'hostOnly': True, 'name': 'user.uuid.v2', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '"765b07e9-028b-45d1-8abd-baa7b6c88125"', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'hostOnly': False, 'name': 'Hm_lpvt_d38bce82bcb44717ccc29a90c4b781ea', 'httpOnly': False, 'session': True, 'storeId': None, 'value': '1733140842', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1764676842000, 'hostOnly': False, 'name': 'ajs_anonymous_id', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '7e4d00ab-3618-46a2-b0fb-c80b189a0584', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1764676842000, 'hostOnly': False, 'name': 'ajs_user_id', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'b1ae7862-b9d6-49c5-a7a5-ad96682ac6dc_SN', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1767700841000, 'hostOnly': False, 'name': '_ga_B3E4QL2TPR', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'GS1.1.1733140776.1.1.1733140841.60.0.0', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1767700841000, 'hostOnly': False, 'name': '_ga_ERRNTNZ807', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'GS1.1.1733140776.1.1.1733140841.60.0.467679787', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1767304843000, 'hostOnly': False, 'name': 'cto_bundle', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '5685XF9lQVd1dU4zd2xWRE1uZ3BpQTk3SUVXNkx2bGslMkZwTkZodjRWJTJCcGoyd0JWdiUyQjVlcGkwMVoyWHc4aGxKQkM2N3hyeGI4aFlIRzBZRDNTUTJFb1JYZVhPJTJGMUIlMkZka252a0RPZFdlbld4OU1jaUFrMHN6VDVaREYzSSUyRmFDMEtnb0FoaQ', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': True, 'expirationDate': 1766836842000, 'hostOnly': False, 'name': '__gpi', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'UID=00000fa61060e41d:T=1733140842:RT=1733140842:S=ALNI_Mai2WWloG6liac6hEyJYOSjI3WtCg', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1766836841000, 'hostOnly': False, 'name': '_uetvid', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'e6d7f220b0a411efaac753cc9ddac552', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1764676841000, 'hostOnly': False, 'name': 'Hm_lvt_d38bce82bcb44717ccc29a90c4b781ea', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '1733140777', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': True, 'expirationDate': 1748692774000, 'hostOnly': False, 'name': '__eoi', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'ID=1ced890879e93934:T=1733140774:RT=1733140774:S=AA-AfjauQ5O9wXrdBjufrcsmQ-EM', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': True, 'expirationDate': 1766836842000, 'hostOnly': False, 'name': '__gads', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'ID=edf25ef88638a1b3:T=1733140842:RT=1733140842:S=ALNI_MYUdW0s3LG6IOpCKgjBo4gbGPsI1Q', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1740916843000, 'hostOnly': False, 'name': '_fbp', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'fb.1.1733140776577.688163329394303800', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1767700841000, 'hostOnly': False, 'name': '_ga', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'GA1.1.2115119478.1733140776', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1733227241000, 'hostOnly': False, 'name': '_uetsid', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'e6d7f280b0a411efaed4a5384bcc5d88', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'hostOnly': False, 'name': 'HMACCOUNT', 'httpOnly': False, 'session': True, 'storeId': None, 'value': '7B6C1DFC72FE250C', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': True, 'expirationDate': 1767700841000, 'hostOnly': False, 'name': 'permutive-id', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '7cbbccaf-2079-4e6d-99fc-186a9db51c90', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1767700841000, 'hostOnly': False, 'name': 'permutive-session', 'httpOnly': False, 'session': False, 'storeId': None, 'value': '%7B%22session_id%22%3A%221d3a9243-5c93-4975-ae30-63ca2047b7cf%22%2C%22last_updated%22%3A%222024-12-02T12%3A00%3A41.747Z%22%7D', 'path': '/', 'sameSite': 'Lax'}, - {'domain': '.nature.com', 'secure': False, 'expirationDate': 1764676775000, 'hostOnly': False, 'name': 'sncc', 'httpOnly': False, 'session': False, 'storeId': None, 'value': 'P%3D8%3AV%3D68.0.0%26C%3DC01%2CC02%2CC03%2CC04%26D%3Dtrue', 'path': '/', 'sameSite': 'Lax'}, ] diff --git a/metachain/environment/docker_container.py b/metachain/environment/docker_container.py deleted file mode 100644 index 364ccfe..0000000 --- a/metachain/environment/docker_container.py +++ /dev/null @@ -1,95 +0,0 @@ -import os -import subprocess -from constant import GITHUB_AI_TOKEN, AI_USER, BASE_IMAGES -import time -from metachain.util import run_command_in_container - -def init_container(workplace_name, container_name, test_pull_name = 'test_pull_1010', task_name = 'test_task', git_clone = False, setup_package = 'setup_package'): - # get the current working directory's subfolder path - workplace = os.path.join(os.getcwd(), workplace_name) - - # check if the container exists - container_check_command = ["docker", "ps", "-a", "--filter", f"name={container_name}", "--format", "{{.Names}}"] - existing_container = subprocess.run(container_check_command, capture_output=True, text=True) - - os.makedirs(workplace, exist_ok=True) - # cp_command = ["cp", "tcp_server.py", workplace] - if not os.path.exists(os.path.join(workplace, 'tcp_server.py')): - unzip_command = ["tar", "-xzvf", f"packages/{setup_package}.tar.gz", "-C", workplace] - subprocess.run(unzip_command) - if git_clone: - if not os.path.exists(os.path.join(workplace, 'metachain')): - git_command = ["cd", workplace, "&&", "git", "clone", "-b", test_pull_name, f"https://{AI_USER}:{GITHUB_AI_TOKEN}@github.com/tjb-tech/metachain.git"] - git_command = " ".join(git_command) - - result = subprocess.run(git_command, shell=True) - if result.returncode != 0: - raise Exception(f"Failed to clone the repository. Please check your internet connection and try again.") - # create a new branch - new_branch_name = f"{test_pull_name}_{task_name}" - create_branch_command = f"cd {workplace}/metachain && git checkout -b {new_branch_name}" - result = subprocess.run(create_branch_command, shell=True, capture_output=True, text=True) - if result.returncode != 0: - print(Exception(f"Failed to create and switch to new branch. Error: {result.stderr}")) - switch_branch_command = f"cd {workplace}/metachain && git checkout {new_branch_name}" - result = subprocess.run(switch_branch_command, shell=True, capture_output=True, text=True) - if result.returncode != 0: - raise Exception(f"Failed to switch to new branch. Error: {result.stderr}") - else: - print(f"Successfully switched to new branch: {new_branch_name}") - else: - print(f"Successfully created and switched to new branch: {new_branch_name}") - - if existing_container.stdout.strip() == container_name: - # check if the container is running - running_check_command = ["docker", "ps", "--filter", f"name={container_name}", "--format", "{{.Names}}"] - running_container = subprocess.run(running_check_command, capture_output=True, text=True) - - if running_container.stdout.strip() == container_name: - print(f"Container '{container_name}' is already running. Skipping creation.") - return # container is already running, skip creation - else: - # container exists but is not running, start it - start_command = ["docker", "start", container_name] - subprocess.run(start_command) - print(f"Container '{container_name}' has been started.") - return - - # if the container does not exist, create and start a new container - docker_command = [ - "docker", "run", "-d", "--name", container_name, "--user", "root", - "-v", f"{workplace}:/{workplace_name}", - "-w", f"/{workplace_name}", "-p", "12345:12345", BASE_IMAGES, - "/bin/bash", "-c", - f"python3 /{workplace_name}/tcp_server.py --workplace {workplace_name}" - ] - # execute the docker command - result = subprocess.run(docker_command, capture_output=True, text=True) - if result.returncode != 0: - raise Exception(f"Failed to start container: {result.stderr}") - if wait_for_container_ready(container_name, timeout=60): - print(f"Container '{container_name}' has been created and started.") - -def wait_for_container_ready(container_name, timeout=30): - """using subprocess to check if the container is running""" - start_time = time.time() - - while time.time() - start_time < timeout: - result = subprocess.run( - ["docker", "inspect", "--format", "{{.State.Running}}", container_name], - capture_output=True, - text=True - ) - - if result.returncode == 0 and "true" in result.stdout.lower(): - # 额外检查 tcp_server 是否运行 - try: - result = run_command_in_container('ps aux') - if "tcp_server.py" in result['result']: - return True - except Exception as e: - pass - - time.sleep(1) - - raise TimeoutError(f"Container {container_name} failed to start within {timeout} seconds") \ No newline at end of file diff --git a/metachain/environment/docker_env.py b/metachain/environment/docker_env.py index a5d39bd..dd6963e 100644 --- a/metachain/environment/docker_env.py +++ b/metachain/environment/docker_env.py @@ -52,24 +52,25 @@ class DockerEnv: unzip_command = ["tar", "-xzvf", f"packages/{self.setup_package}.tar.gz", "-C", self.local_workplace] subprocess.run(unzip_command) if self.git_clone: - if not os.path.exists(os.path.join(self.local_workplace, 'metachain')): - git_command = ["cd", self.local_workplace, "&&", "git", "clone", "-b", self.test_pull_name, f"https://{AI_USER}:{GITHUB_AI_TOKEN}@github.com/tjb-tech/metachain.git"] + if not os.path.exists(os.path.join(self.local_workplace, 'MetaChain')): + git_command = ["cd", self.local_workplace, "&&", "git", "clone", "-b", self.test_pull_name, f"https://{AI_USER}:{GITHUB_AI_TOKEN}@github.com/HKUDS/MetaChain.git"] + print(git_command) git_command = " ".join(git_command) result = subprocess.run(git_command, shell=True) if result.returncode != 0: - raise Exception(f"Failed to clone the repository. Please check your internet connection and try again.") - copy_env_command = f"cp .env {self.local_workplace}/metachain" + raise Exception(f"Failed to clone the repository. The error is: {result.stdout}") + copy_env_command = f"cp .env {self.local_workplace}/MetaChain" result = subprocess.run(copy_env_command, shell=True, capture_output=True, text=True) if result.returncode != 0: - raise Exception(f"Failed to copy .env file to the metachain directory. Error: {result.stderr}") + raise Exception(f"Failed to copy .env file to the MetaChain directory. Error: {result.stderr}") # create a new branch new_branch_name = f"{self.test_pull_name}_{self.task_name}" - create_branch_command = f"cd {self.local_workplace}/metachain && git checkout -b {new_branch_name}" + create_branch_command = f"cd {self.local_workplace}/MetaChain && git checkout -b {new_branch_name}" result = subprocess.run(create_branch_command, shell=True, capture_output=True, text=True) if result.returncode != 0: print(Exception(f"Failed to create and switch to new branch. Error: {result.stderr}")) - switch_branch_command = f"cd {self.local_workplace}/metachain && git checkout {new_branch_name}" + switch_branch_command = f"cd {self.local_workplace}/MetaChain && git checkout {new_branch_name}" result = subprocess.run(switch_branch_command, shell=True, capture_output=True, text=True) if result.returncode != 0: raise Exception(f"Failed to switch to new branch. Error: {result.stderr}") diff --git a/metachain/environment/download_helper.py b/metachain/environment/download_helper.py deleted file mode 100644 index d9c9a17..0000000 --- a/metachain/environment/download_helper.py +++ /dev/null @@ -1,76 +0,0 @@ -import os -import shutil -import time -from seleniumbase.config import settings -from seleniumbase.fixtures import constants - -# The "downloads_folder" is a folder for saving downloaded files. -# Works for downloads initiated by Chromium and Firefox WebDriver clicks. -# Browser type doesn't matter if using self.download_file(file_url) -# or self.save_file_as(file_url, new_file_name) -# The "downloads_folder" is cleaned out at the start of each pytest run, -# but there is an option to save existing files in "archived_files". -DOWNLOADS_DIR = constants.Files.DOWNLOADS_FOLDER -abs_path = os.path.abspath("./examples") -downloads_path = os.path.join(abs_path, DOWNLOADS_DIR) - - -def get_downloads_folder(): - return downloads_path - - -def reset_downloads_folder(): - """Clears the downloads folder. - If settings.ARCHIVE_EXISTING_DOWNLOADS is set to True, archives it.""" - downloads_dir = constants.Files.DOWNLOADS_FOLDER - archive_dir = constants.Files.ARCHIVED_DOWNLOADS_FOLDER - if downloads_dir.endswith("/"): - downloads_dir = downloads_dir[:-1] - if downloads_dir.startswith("/"): - downloads_dir = downloads_dir[1:] - if archive_dir.endswith("/"): - archive_dir = archive_dir[:-1] - if archive_dir.startswith("/"): - archive_dir = archive_dir[1:] - if len(downloads_dir) < 10 or len(archive_dir) < 10: - return # Prevent accidental deletions if constants are renamed - archived_downloads_folder = os.path.join(os.getcwd(), archive_dir) + os.sep - if os.path.exists(downloads_path) and not os.listdir(downloads_path) == []: - reset_downloads_folder_assistant(archived_downloads_folder) - if os.path.exists(downloads_path) and os.listdir(downloads_path) == []: - try: - os.rmdir(downloads_path) - except OSError: - pass - if ( - os.path.exists(archived_downloads_folder) - and os.listdir(archived_downloads_folder) == [] - ): - try: - os.rmdir(archived_downloads_folder) - except OSError: - pass - - -def reset_downloads_folder_assistant(archived_downloads_folder): - if not os.path.exists(archived_downloads_folder): - try: - os.makedirs(archived_downloads_folder, exist_ok=True) - except Exception: - pass # Should only be reachable during multi-threaded test runs - new_archived_downloads_sub_folder = "%s/downloads_%s" % ( - archived_downloads_folder, - int(time.time()), - ) - if os.path.exists(downloads_path): - if not os.listdir(downloads_path) == []: - try: - shutil.move(downloads_path, new_archived_downloads_sub_folder) - os.makedirs(downloads_path, exist_ok=True) - except Exception: - pass - if not settings.ARCHIVE_EXISTING_DOWNLOADS: - try: - shutil.rmtree(new_archived_downloads_sub_folder) - except OSError: - pass \ No newline at end of file diff --git a/metachain/environment/new.py b/metachain/environment/new.py deleted file mode 100644 index 1ccb6f0..0000000 --- a/metachain/environment/new.py +++ /dev/null @@ -1,568 +0,0 @@ -import base64 -import io -import logging -import pkgutil -import re -from typing import Literal - -import numpy as np -import PIL.Image -import playwright.sync_api - -from .constants import BROWSERGYM_ID_ATTRIBUTE as BID_ATTR -from .constants import BROWSERGYM_SETOFMARKS_ATTRIBUTE as SOM_ATTR -from .constants import BROWSERGYM_VISIBILITY_ATTRIBUTE as VIS_ATTR - -MARK_FRAMES_MAX_TRIES = 3 - - -logger = logging.getLogger(__name__) - - -class MarkingError(Exception): - pass - - -def _pre_extract( - page: playwright.sync_api.Page, - tags_to_mark: Literal["all", "standard_html"] = "standard_html", - lenient: bool = False, -): - """ - pre-extraction routine, marks dom elements (set bid and dynamic attributes like value and checked) - """ - js_frame_mark_elements = pkgutil.get_data(__name__, "javascript/frame_mark_elements.js").decode( - "utf-8" - ) - - # we can't run this loop in JS due to Same-Origin Policy - # (can't access the content of an iframe from a another one) - def mark_frames_recursive(frame, frame_bid: str): - assert frame_bid == "" or re.match(r"^[a-z][a-zA-Z]*$", frame_bid) - logger.debug(f"Marking frame {repr(frame_bid)}") - - # mark all DOM elements in the frame (it will use the parent frame element's bid as a prefix) - warning_msgs = frame.evaluate( - js_frame_mark_elements, - [frame_bid, BID_ATTR, tags_to_mark], - ) - # print warning messages if any - for msg in warning_msgs: - logger.warning(msg) - - # recursively mark all descendant frames - for child_frame in frame.child_frames: - # deal with detached frames - if child_frame.is_detached(): - continue - # deal with weird frames (pdf viewer in ) - child_frame_elem = child_frame.frame_element() - if not child_frame_elem.content_frame() == child_frame: - logger.warning( - f"Skipping frame '{child_frame.name}' for marking, seems problematic." - ) - continue - # deal with sandboxed frames with blocked script execution - sandbox_attr = child_frame_elem.get_attribute("sandbox") - if sandbox_attr is not None and "allow-scripts" not in sandbox_attr.split(): - continue - child_frame_bid = child_frame_elem.get_attribute(BID_ATTR) - if child_frame_bid is None: - if lenient: - logger.warning("Cannot mark a child frame without a bid. Skipping frame.") - continue - else: - raise MarkingError("Cannot mark a child frame without a bid.") - mark_frames_recursive(child_frame, frame_bid=child_frame_bid) - - # mark all frames recursively - mark_frames_recursive(page.main_frame, frame_bid="") - - -def _post_extract(page: playwright.sync_api.Page): - js_frame_unmark_elements = pkgutil.get_data( - __name__, "javascript/frame_unmark_elements.js" - ).decode("utf-8") - - # we can't run this loop in JS due to Same-Origin Policy - # (can't access the content of an iframe from a another one) - for frame in page.frames: - try: - if not frame == page.main_frame: - # deal with weird frames (pdf viewer in ) - if not frame.frame_element().content_frame() == frame: - logger.warning( - f"Skipping frame '{frame.name}' for unmarking, seems problematic." - ) - continue - # deal with sandboxed frames with blocked script execution - sandbox_attr = frame.frame_element().get_attribute("sandbox") - if sandbox_attr is not None and "allow-scripts" not in sandbox_attr.split(): - continue - # deal with frames without a BID - bid = frame.frame_element().get_attribute(BID_ATTR) - if bid is None: - continue - - frame.evaluate(js_frame_unmark_elements) - except playwright.sync_api.Error as e: - if any(msg in str(e) for msg in ("Frame was detached", "Frame has been detached")): - pass - else: - raise e - - -def extract_screenshot(page: playwright.sync_api.Page): - """ - Extracts the screenshot image of a Playwright page using Chrome DevTools Protocol. - - Args: - page: the playwright page of which to extract the screenshot. - - Returns: - A screenshot of the page, in the form of a 3D array (height, width, rgb). - - """ - - cdp = page.context.new_cdp_session(page) - cdp_answer = cdp.send( - "Page.captureScreenshot", - { - "format": "png", - }, - ) - cdp.detach() - - # bytes of a png file - png_base64 = cdp_answer["data"] - png_bytes = base64.b64decode(png_base64) - with io.BytesIO(png_bytes) as f: - # load png as a PIL image - img = PIL.Image.open(f) - # convert to RGB (3 channels) - img = img.convert(mode="RGB") - # convert to a numpy array - img = np.array(img) - - return img - - -# we could handle more data items here if needed -__BID_EXPR = r"([a-zA-Z0-9]+)" -__DATA_REGEXP = re.compile(r"^browsergym_id_" + __BID_EXPR + r"\s?" + r"(.*)") - - -def extract_data_items_from_aria(string: str, log_level: int = logging.NOTSET): - """ - Utility function to extract temporary data stored in the ARIA attributes of a node - """ - - match = __DATA_REGEXP.fullmatch(string) - if not match: - logger.log( - level=log_level, - msg=f"Failed to extract BrowserGym data from ARIA string: {repr(string)}", - ) - return [], string - - groups = match.groups() - data_items = groups[:-1] - original_aria = groups[-1] - return data_items, original_aria - - -def extract_dom_snapshot( - page: playwright.sync_api.Page, - computed_styles=[], - include_dom_rects: bool = True, - include_paint_order: bool = True, - temp_data_cleanup: bool = True, -): - """ - Extracts the DOM snapshot of a Playwright page using Chrome DevTools Protocol. - - Args: - page: the playwright page of which to extract the screenshot. - computed_styles: whitelist of computed styles to return. - include_dom_rects: whether to include DOM rectangles (offsetRects, clientRects, scrollRects) in the snapshot. - include_paint_order: whether to include paint orders in the snapshot. - temp_data_cleanup: whether to clean up the temporary data stored in the ARIA attributes. - - Returns: - A document snapshot, including the full DOM tree of the root node (including iframes, - template contents, and imported documents) in a flattened array, as well as layout - and white-listed computed style information for the nodes. Shadow DOM in the returned - DOM tree is flattened. - - """ - cdp = page.context.new_cdp_session(page) - dom_snapshot = cdp.send( - "DOMSnapshot.captureSnapshot", - { - "computedStyles": computed_styles, - "includeDOMRects": include_dom_rects, - "includePaintOrder": include_paint_order, - }, - ) - cdp.detach() - - # if requested, remove temporary data stored in the ARIA attributes of each node - if temp_data_cleanup: - pop_bids_from_attribute(dom_snapshot, "aria-roledescription") - pop_bids_from_attribute(dom_snapshot, "aria-description") - - return dom_snapshot - - -def pop_bids_from_attribute(dom_snapshot, attr: str): - try: - target_attr_name_id = dom_snapshot["strings"].index(attr) - except ValueError: - target_attr_name_id = -1 - # run the cleanup only if the target attribute string is present - if target_attr_name_id > -1: - processed_string_ids = set() - for document in dom_snapshot["documents"]: - for node_attributes in document["nodes"]["attributes"]: - i = 0 - # find the target attribute, if any - for i in range(0, len(node_attributes), 2): - attr_name_id = node_attributes[i] - attr_value_id = node_attributes[i + 1] - if attr_name_id == target_attr_name_id: - attr_value = dom_snapshot["strings"][attr_value_id] - # remove any data stored in the target attribute - if attr_value_id not in processed_string_ids: - _, new_attr_value = extract_data_items_from_aria(attr_value) - dom_snapshot["strings"][ - attr_value_id - ] = new_attr_value # update the string in the metadata - processed_string_ids.add( - attr_value_id - ) # mark string as processed (in case several nodes share the same target attribute string value) - attr_value = new_attr_value - # remove target attribute (name and value) if empty - if attr_value == "": - del node_attributes[i : i + 2] - # once target attribute is found, exit the search - break - - -def extract_dom_extra_properties(dom_snapshot): - def to_string(idx): - if idx == -1: - return None - else: - return dom_snapshot["strings"][idx] - - # pre-locate important string ids - try: - bid_string_id = dom_snapshot["strings"].index(BID_ATTR) - except ValueError: - bid_string_id = -1 - try: - vis_string_id = dom_snapshot["strings"].index(VIS_ATTR) - except ValueError: - vis_string_id = -1 - try: - som_string_id = dom_snapshot["strings"].index(SOM_ATTR) - except ValueError: - som_string_id = -1 - - # build the iframe tree (DFS from the first frame) - doc_properties = { - 0: { - "parent": None, - } - } - - docs_to_process = [0] - while docs_to_process: - doc = docs_to_process.pop(-1) # DFS - - children = dom_snapshot["documents"][doc]["nodes"]["contentDocumentIndex"] - for node, child_doc in zip(children["index"], children["value"]): - doc_properties[child_doc] = { - "parent": { - "doc": doc, # parent frame index - "node": node, # node index within the parent frame - } - } - docs_to_process.append(child_doc) - - # recover the absolute x and y position of the frame node in the parent (if any) - parent = doc_properties[doc]["parent"] - if parent: - parent_doc = parent["doc"] - parent_node = parent["node"] - try: - node_layout_idx = dom_snapshot["documents"][parent_doc]["layout"][ - "nodeIndex" - ].index(parent_node) - except ValueError: - node_layout_idx = -1 - if node_layout_idx >= 0: - node_bounds = dom_snapshot["documents"][parent_doc]["layout"]["bounds"][ - node_layout_idx - ] # can be empty? - # absolute position of parent + relative position of frame node within parent - parent_node_abs_x = doc_properties[parent_doc]["abs_pos"]["x"] + node_bounds[0] - parent_node_abs_y = doc_properties[parent_doc]["abs_pos"]["y"] + node_bounds[1] - else: - parent_node_abs_x = 0 - parent_node_abs_y = 0 - else: - parent_node_abs_x = 0 - parent_node_abs_y = 0 - - # get the frame's absolute position, by adding any scrolling offset if any - doc_properties[doc]["abs_pos"] = { - "x": parent_node_abs_x - dom_snapshot["documents"][doc]["scrollOffsetX"], - "y": parent_node_abs_y - dom_snapshot["documents"][doc]["scrollOffsetY"], - } - - document = dom_snapshot["documents"][doc] - doc_properties[doc]["nodes"] = [ - { - "bid": None, # default value, to be filled (str) - "visibility": None, # default value, to be filled (float) - "bbox": None, # default value, to be filled (list) - "clickable": False, # default value, to be filled (bool) - "set_of_marks": None, # default value, to be filled (bool) - } - for _ in enumerate(document["nodes"]["parentIndex"]) - ] # all nodes in document - - # extract clickable property - for node_idx in document["nodes"]["isClickable"]["index"]: - doc_properties[doc]["nodes"][node_idx]["clickable"] = True - - # extract bid and visibility properties (attribute-based) - for node_idx, node_attrs in enumerate(document["nodes"]["attributes"]): - i = 0 - # loop over all attributes - for i in range(0, len(node_attrs), 2): - name_string_id = node_attrs[i] - value_string_id = node_attrs[i + 1] - if name_string_id == bid_string_id: - doc_properties[doc]["nodes"][node_idx]["bid"] = to_string(value_string_id) - if name_string_id == vis_string_id: - doc_properties[doc]["nodes"][node_idx]["visibility"] = float( - to_string(value_string_id) - ) - if name_string_id == som_string_id: - doc_properties[doc]["nodes"][node_idx]["set_of_marks"] = ( - to_string(value_string_id) == "1" - ) - - # extract bbox property (in absolute coordinates) - for node_idx, bounds, client_rect in zip( - document["layout"]["nodeIndex"], - document["layout"]["bounds"], - document["layout"]["clientRects"], - ): - # empty clientRect means element is not actually rendered - if not client_rect: - doc_properties[doc]["nodes"][node_idx]["bbox"] = None - else: - # bounds gives the relative position within the document - doc_properties[doc]["nodes"][node_idx]["bbox"] = bounds.copy() - # adjust for absolute document position - doc_properties[doc]["nodes"][node_idx]["bbox"][0] += doc_properties[doc]["abs_pos"][ - "x" - ] - doc_properties[doc]["nodes"][node_idx]["bbox"][1] += doc_properties[doc]["abs_pos"][ - "y" - ] - - # Note: other interesting fields - # document["nodes"]["parentIndex"] # parent node - # document["nodes"]["nodeType"] - # document["nodes"]["nodeName"] - # document["nodes"]["nodeValue"] - # document["nodes"]["textValue"] - # document["nodes"]["inputValue"] - # document["nodes"]["inputChecked"] - # document["nodes"]["optionSelected"] - # document["nodes"]["pseudoType"] - # document["nodes"]["pseudoIdentifier"] - # document["nodes"]["isClickable"] - # document["textBoxes"] - # document["layout"]["nodeIndex"] - # document["layout"]["bounds"] - # document["layout"]["offsetRects"] - # document["layout"]["scrollRects"] - # document["layout"]["clientRects"] - # document["layout"]["paintOrders"] - - # collect the extra properties of all nodes with a browsergym_id attribute - extra_properties = {} - for doc in doc_properties.keys(): - for node in doc_properties[doc]["nodes"]: - bid = node["bid"] - if bid: - if bid in extra_properties: - logger.warning(f"duplicate {BID_ATTR}={repr(bid)} attribute detected") - extra_properties[bid] = { - extra_prop: node[extra_prop] - for extra_prop in ("visibility", "bbox", "clickable", "set_of_marks") - } - - return extra_properties - - -def extract_all_frame_axtrees(page: playwright.sync_api.Page): - """ - Extracts the AXTree of all frames (main document and iframes) of a Playwright page using Chrome DevTools Protocol. - - Args: - page: the playwright page of which to extract the frame AXTrees. - - Returns: - A dictionnary of AXTrees (as returned by Chrome DevTools Protocol) indexed by frame IDs. - - """ - cdp = page.context.new_cdp_session(page) - - # extract the frame tree - frame_tree = cdp.send( - "Page.getFrameTree", - {}, - ) - - # extract all frame IDs into a list - # (breadth-first-search through the frame tree) - frame_ids = [] - root_frame = frame_tree["frameTree"] - frames_to_process = [root_frame] - while frames_to_process: - frame = frames_to_process.pop() - frames_to_process.extend(frame.get("childFrames", [])) - # extract the frame ID - frame_id = frame["frame"]["id"] - frame_ids.append(frame_id) - - # extract the AXTree of each frame - frame_axtrees = { - frame_id: cdp.send( - "Accessibility.getFullAXTree", - {"frameId": frame_id}, - ) - for frame_id in frame_ids - } - - cdp.detach() - - # extract browsergym data from ARIA attributes - for ax_tree in frame_axtrees.values(): - for node in ax_tree["nodes"]: - data_items = [] - # look for data in the node's "roledescription" property - if "properties" in node: - for i, prop in enumerate(node["properties"]): - if prop["name"] == "roledescription": - data_items, new_value = extract_data_items_from_aria(prop["value"]["value"]) - prop["value"]["value"] = new_value - # remove the "description" property if empty - if new_value == "": - del node["properties"][i] - break - # look for data in the node's "description" (fallback plan) - if "description" in node: - data_items_bis, new_value = extract_data_items_from_aria( - node["description"]["value"] - ) - node["description"]["value"] = new_value - if new_value == "": - del node["description"] - if not data_items: - data_items = data_items_bis - # add the extracted "browsergym" data to the AXTree - if data_items: - (browsergym_id,) = data_items - node["browsergym_id"] = browsergym_id - return frame_axtrees - - -def extract_merged_axtree(page: playwright.sync_api.Page): - """ - Extracts the merged AXTree of a Playwright page (main document and iframes AXTrees merged) using Chrome DevTools Protocol. - - Args: - page: the playwright page of which to extract the merged AXTree. - - Returns: - A merged AXTree (same format as those returned by Chrome DevTools Protocol). - - """ - frame_axtrees = extract_all_frame_axtrees(page) - - cdp = page.context.new_cdp_session(page) - - # merge all AXTrees into one - merged_axtree = {"nodes": []} - for ax_tree in frame_axtrees.values(): - merged_axtree["nodes"].extend(ax_tree["nodes"]) - # connect each iframe node to the corresponding AXTree root node - for node in ax_tree["nodes"]: - if node["role"]["value"] == "Iframe": - frame_id = ( - cdp.send("DOM.describeNode", {"backendNodeId": node["backendDOMNodeId"]}) - .get("node", {}) - .get("frameId", None) - ) - if not frame_id: - logger.warning( - f"AXTree merging: unable to recover frameId of node with backendDOMNodeId {repr(node['backendDOMNodeId'])}, skipping" - ) - # it seems Page.getFrameTree() from CDP omits certain Frames (empty frames?) - # if a frame is not found in the extracted AXTrees, we just ignore it - elif frame_id in frame_axtrees: - # root node should always be the first node in the AXTree - frame_root_node = frame_axtrees[frame_id]["nodes"][0] - assert frame_root_node["frameId"] == frame_id - node["childIds"].append(frame_root_node["nodeId"]) - else: - logger.warning( - f"AXTree merging: extracted AXTree does not contain frameId '{frame_id}', skipping" - ) - - cdp.detach() - - return merged_axtree - - -def extract_focused_element_bid(page: playwright.sync_api.Page): - # this JS code will dive through ShadowDOMs - extract_focused_element_with_bid_script = """\ -() => { - // This recursive function traverses shadow DOMs - function getActiveElement(root) { - const active_element = root.activeElement; - - if (!active_element) { - return null; - } - - if (active_element.shadowRoot) { - return getActiveElement(active_element.shadowRoot); - } else { - return active_element; - } - } - return getActiveElement(document); -}""" - # this playwright code will dive through iFrames - frame = page - focused_bid = "" - while frame: - focused_element = frame.evaluate_handle( - extract_focused_element_with_bid_script, BID_ATTR - ).as_element() - if focused_element: - frame = focused_element.content_frame() - focused_bid = focused_element.get_attribute(BID_ATTR) - else: - frame = None - - return focused_bid \ No newline at end of file diff --git a/metachain/environment/seleniumbase_obs.py b/metachain/environment/seleniumbase_obs.py deleted file mode 100644 index 3d9e808..0000000 --- a/metachain/environment/seleniumbase_obs.py +++ /dev/null @@ -1,491 +0,0 @@ -import base64 -import io -import logging -import re -from typing import Dict, List, Optional - -import numpy as np -import PIL.Image - -logger = logging.getLogger(__name__) - -BID_ATTR = "browsergym_id" -VIS_ATTR = "browsergym_visibility" -SOM_ATTR = "browsergym_set_of_marks" - -class MarkingError(Exception): - pass - -def ensure_cdp_activated(browser): - """确保CDP模式已激活""" - if not hasattr(browser, 'cdp') or browser.cdp is None: - current_url = browser.get_current_url() - browser.activate_cdp_mode(current_url if current_url else "about:blank") - browser.sleep(1) # 等待CDP模式激活 - -def _pre_extract(browser): - """标记DOM元素""" - try: - ensure_cdp_activated(browser) - - # 定义并注入标记函数 - browser.cdp.evaluate(""" - window.markElements = function(frameBid='') { - function markElementsInDocument(doc, bid_prefix='') { - const elements = doc.getElementsByTagName('*'); - for (let element of elements) { - if (!element.hasAttribute('browsergym_id')) { - const bid = bid_prefix + element.tagName.toLowerCase() + '_' + - Math.random().toString(36).substr(2, 9); - element.setAttribute('browsergym_id', bid); - } - } - - // 递归处理所有iframe - const iframes = doc.getElementsByTagName('iframe'); - for (let iframe of iframes) { - try { - const frameDoc = iframe.contentDocument; - if (frameDoc) { - const frameBid = iframe.getAttribute('browsergym_id') || ''; - const sandbox = iframe.getAttribute('sandbox'); - if (!sandbox || sandbox.includes('allow-scripts')) { - markElementsInDocument(frameDoc, frameBid); - } - } - } catch (e) { - // 跨域iframe会抛出错误,忽略即可 - console.log('Cannot access iframe:', e); - } - } - } - - // 从当前文档开始标记 - markElementsInDocument(document, frameBid); - - return true; - }; - """) - - # 执行标记 - success = browser.cdp.evaluate("window.markElements()") - if not success: - raise MarkingError("Failed to mark elements") - - except Exception as e: - raise MarkingError(f"Error marking elements: {str(e)}") - -def extract_dom_snapshot(browser): - """获取DOM快照""" - try: - ensure_cdp_activated(browser) - - # 定义函数 - browser.cdp.evaluate(""" - window.getDOMSnapshot = function() { - const strings = new Map(); - let stringId = 0; - - function getStringId(str) { - if (str === null || str === undefined) return -1; - if (!strings.has(str)) { - strings.set(str, stringId++); - } - return strings.get(str); - } - - function processDocument(doc) { - function processNode(node, parentIndex) { - const nodeData = { - nodeType: [], - nodeName: [], - nodeValue: [], - parentIndex: [], - attributes: [], - contentDocumentIndex: { - index: [], - value: [] - } - }; - - nodeData.nodeType.push(node.nodeType); - nodeData.nodeName.push(getStringId(node.nodeName)); - nodeData.nodeValue.push(getStringId(node.nodeValue)); - nodeData.parentIndex.push(parentIndex); - - const attrs = []; - if (node.attributes) { - for (let attr of node.attributes) { - attrs.push(getStringId(attr.name)); - attrs.push(getStringId(attr.value)); - } - } - nodeData.attributes.push(attrs); - - if (node.nodeType === 1) { // Element node - const iframes = node.getElementsByTagName('iframe'); - for (let i = 0; i < iframes.length; i++) { - try { - const frameDoc = iframes[i].contentDocument; - if (frameDoc) { - nodeData.contentDocumentIndex.index.push(nodeData.nodeType.length - 1); - nodeData.contentDocumentIndex.value.push(1); // Assuming single document for now - } - } catch (e) { - console.log('Cannot access iframe:', e); - } - } - } - - for (let child of node.childNodes) { - const childData = processNode(child, nodeData.nodeType.length - 1); - - nodeData.nodeType.push(...childData.nodeType); - nodeData.nodeName.push(...childData.nodeName); - nodeData.nodeValue.push(...childData.nodeValue); - nodeData.parentIndex.push(...childData.parentIndex); - nodeData.attributes.push(...childData.attributes); - nodeData.contentDocumentIndex.index.push(...childData.contentDocumentIndex.index); - nodeData.contentDocumentIndex.value.push(...childData.contentDocumentIndex.value); - } - - return nodeData; - } - - return processNode(doc.documentElement, -1); - } - - const rootData = processDocument(document); - const stringsArray = Array.from(strings.keys()); - - return { - documents: [{ - nodes: rootData - }], - strings: stringsArray - }; - }; - """) - - # 执行函数 - dom_snapshot = browser.cdp.evaluate("window.getDOMSnapshot()") - - return dom_snapshot - - except Exception as e: - logger.error(f"Error capturing DOM snapshot: {str(e)}") - return {"documents": [], "strings": []} - -def extract_dom_extra_properties(browser) -> Dict: - """获取DOM元素的有意义的额外属性""" - try: - ensure_cdp_activated(browser) - - browser.cdp.evaluate(""" - window.getExtraProperties = function() { - const BID_ATTR = 'browsergym_id'; - const VIS_ATTR = 'browsergym_visibility'; - const SOM_ATTR = 'browsergym_set_of_marks'; - - // 定义重要的标签和属性 - const IMPORTANT_TAGS = new Set([ - 'A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'FORM', - 'IMG', 'VIDEO', 'AUDIO', 'IFRAME', 'LABEL', 'H1', 'H2', - 'H3', 'H4', 'H5', 'H6' - ]); - - const IMPORTANT_ROLES = new Set([ - 'button', 'link', 'checkbox', 'radio', 'textbox', 'combobox', - 'listbox', 'menu', 'menuitem', 'tab', 'tabpanel', 'tree', - 'treeitem', 'dialog', 'alert', 'alertdialog', 'tooltip' - ]); - - function isElementVisible(element) { - const style = window.getComputedStyle(element); - return style.display !== 'none' && - style.visibility !== 'hidden' && - style.opacity !== '0' && - element.offsetWidth > 0 && - element.offsetHeight > 0; - } - - function isElementInteractive(element) { - // 检查是否可交互 - return element.onclick !== null || - element.onmousedown !== null || - element.onmouseup !== null || - element.onkeydown !== null || - element.onkeyup !== null || - element.onchange !== null || - element.onfocus !== null || - element.onblur !== null; - } - - function isElementMeaningful(element) { - // 检查标签是否重要 - if (IMPORTANT_TAGS.has(element.tagName)) return true; - - // 检查角色是否重要 - const role = element.getAttribute('role'); - if (role && IMPORTANT_ROLES.has(role)) return true; - - // 检查是否有重要的ARIA属性 - if (element.hasAttribute('aria-label')) return true; - if (element.hasAttribute('aria-description')) return true; - - // 检查是否可交互 - if (isElementInteractive(element)) return true; - - // 检查是否有有意义的文本内容 - const text = element.textContent.trim(); - if (text && text.length > 1 && !/^[\s\d.,]+$/.test(text)) return true; - - // 检查是否有有意义的图片 - if (element.tagName === 'IMG' && element.alt) return true; - - return false; - } - - function getDocumentProperties(doc, parentFrame = null) { - const properties = {}; - const frameOffset = { - x: 0, - y: 0 - }; - - if (parentFrame) { - const frameRect = parentFrame.getBoundingClientRect(); - frameOffset.x = frameRect.x + window.pageXOffset; - frameOffset.y = frameRect.y + window.pageYOffset; - } - - const elements = doc.querySelectorAll(`[${BID_ATTR}]`); - - elements.forEach(element => { - // 只处理有意义的元素 - if (!isElementMeaningful(element)) return; - - // 只处理可见元素 - if (!isElementVisible(element)) return; - - const bid = element.getAttribute(BID_ATTR); - if (!bid) return; - - let visibility = element.getAttribute(VIS_ATTR); - visibility = visibility ? parseFloat(visibility) : 1.0; - - const rect = element.getBoundingClientRect(); - const bbox = rect ? [ - rect.x + window.pageXOffset + frameOffset.x, - rect.y + window.pageYOffset + frameOffset.y, - rect.width, - rect.height - ] : null; - - // 更精确的可点击检测 - const isClickable = ( - element.tagName === 'BUTTON' || - element.tagName === 'A' || - (element.tagName === 'INPUT' && - ['button', 'submit', 'reset', 'radio', 'checkbox'].includes(element.type)) || - element.getAttribute('role') === 'button' || - isElementInteractive(element) || - window.getComputedStyle(element).cursor === 'pointer' - ); - - const setOfMarks = element.getAttribute(SOM_ATTR) === '1'; - - // 添加额外的有用信息 - const extraInfo = { - tag: element.tagName.toLowerCase(), - type: element.type || null, - role: element.getAttribute('role') || null, - text: element.textContent.trim() || null, - ariaLabel: element.getAttribute('aria-label') || null - }; - - properties[bid] = { - visibility: visibility, - bbox: bbox, - clickable: isClickable, - set_of_marks: setOfMarks, - ...extraInfo - }; - }); - - // 递归处理iframe - const iframes = doc.getElementsByTagName('iframe'); - for (let iframe of iframes) { - try { - const frameDoc = iframe.contentDocument; - if (frameDoc) { - const frameProperties = getDocumentProperties(frameDoc, iframe); - Object.assign(properties, frameProperties); - } - } catch (e) { - console.log('Cannot access iframe:', e); - } - } - - return properties; - } - - return getDocumentProperties(document); - }; - """) - - extra_properties = browser.cdp.evaluate("window.getExtraProperties()") - return extra_properties - - except Exception as e: - logger.error(f"Error extracting extra properties: {str(e)}") - return {} - -def extract_merged_axtree(browser): - """获取更清晰的Accessibility Tree""" - try: - ensure_cdp_activated(browser) - - browser.cdp.evaluate(""" - window.getAccessibilityTree = function() { - let nodeId = 1; - - // 需要忽略的角色 - const IGNORED_ROLES = new Set([ - 'generic', - 'presentation', - 'none', - 'ScrollBar', - 'background' - ]); - - // 需要保留的HTML标签 - const IMPORTANT_TAGS = new Set([ - 'a', 'button', 'input', 'select', 'textarea', 'header', - 'nav', 'main', 'footer', 'form', 'table', 'iframe', - 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' - ]); - - function getElementRole(element) { - // 优先使用aria角色 - const ariaRole = element.getAttribute('role'); - if (ariaRole) return ariaRole; - - // 特殊元素的默认角色 - const tagName = element.tagName.toLowerCase(); - switch (tagName) { - case 'a': return 'link'; - case 'button': return 'button'; - case 'input': - const type = element.type; - if (type === 'checkbox') return 'checkbox'; - if (type === 'radio') return 'radio'; - if (type === 'submit') return 'button'; - return 'textbox'; - case 'select': return 'combobox'; - case 'textarea': return 'textbox'; - case 'img': return 'img'; - case 'table': return 'table'; - default: return tagName; - } - } - - function getElementName(element) { - // 按优先级获取元素名称 - return element.getAttribute('aria-label') || - element.getAttribute('title') || - element.getAttribute('alt') || - element.getAttribute('name') || - element.value || - element.textContent.trim(); - } - - function shouldIncludeElement(element) { - const tagName = element.tagName.toLowerCase(); - const role = getElementRole(element); - - // 检查是否是重要标签 - if (IMPORTANT_TAGS.has(tagName)) return true; - - // 检查是否有重要属性 - if (element.getAttribute('aria-label')) return true; - if (element.getAttribute('role')) return true; - if (element.onclick) return true; - - // 检查是否可交互 - const style = window.getComputedStyle(element); - if (style.cursor === 'pointer') return true; - - // 忽略无用角色 - if (IGNORED_ROLES.has(role)) return false; - - // 忽略空文本节点 - const text = element.textContent.trim(); - if (!text) return false; - - return true; - } - - function processNode(element) { - if (!shouldIncludeElement(element)) return null; - - const role = getElementRole(element); - const name = getElementName(element); - - // 如果既没有有效的角色也没有名称,则跳过 - if ((!role || IGNORED_ROLES.has(role)) && !name) return null; - - const node = { - nodeId: nodeId++, - role: { value: role }, - name: { value: name }, - properties: [], - childIds: [], - backendDOMNodeId: element.getAttribute('browsergym_id') || null, - frameId: element.ownerDocument?.defaultView?.frameElement?.getAttribute('browsergym_id') || null - }; - - // 收集重要的ARIA属性 - for (let attr of element.attributes) { - if (attr.name.startsWith('aria-')) { - node.properties.push({ - name: { value: attr.name }, - value: { value: attr.value } - }); - } - } - - // 递归处理子元素 - for (let child of element.children) { - const childNode = processNode(child); - if (childNode) { - node.childIds.push(childNode.nodeId); - } - } - - return node; - } - - const nodes = []; - function traverse(element) { - const node = processNode(element); - if (node) { - nodes.push(node); - for (let child of element.children) { - traverse(child); - } - } - } - - traverse(document.documentElement); - - return { nodes: nodes }; - }; - """) - - axtree = browser.cdp.evaluate("window.getAccessibilityTree()") - return axtree - - except Exception as e: - logger.error(f"Error getting accessibility tree: {str(e)}") - return {"nodes": []} \ No newline at end of file diff --git a/metachain/environment/utils.py b/metachain/environment/utils.py index f94389e..b920012 100644 --- a/metachain/environment/utils.py +++ b/metachain/environment/utils.py @@ -7,7 +7,7 @@ def setup_metachain(workplace_name: str, env: DockerEnv): if response['status'] == 0: print("Metachain is already installed.") return - cmd = f"cd /{workplace_name}/metachain && pip install -e ." + cmd = f"cd /{workplace_name}/MetaChain && pip install -e ." response = env.run_command(cmd, print_stream) if response['status'] == 0: print("Metachain is installed.") diff --git a/metachain/tools/code_report.py b/metachain/tools/code_report.py deleted file mode 100644 index e13b088..0000000 --- a/metachain/tools/code_report.py +++ /dev/null @@ -1,86 +0,0 @@ -import importlib -import inspect -import os -from typing import Dict, Any, Union -# from metachain.util import run_command_in_container -from metachain.environment import DockerEnv, LocalEnv -from metachain.registry import register_tool - -@register_tool("check_tool") -def check_tool(context_variables) -> str: - """ - Extract tools from existing code. - - Args: - - Returns: - A dictionary containing all function definitions {function name: {'source': function source code, 'file': function file path}} - """ - env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - python_script = \ -"""import importlib -import inspect -import os -from typing import Dict, Any -def check_tool(): - module = importlib.import_module(f"metachain.tools") - - # obtain all function definitions - functions = {} - for name, obj in inspect.getmembers(module): - if inspect.isfunction(obj): - try: - # get the source code of the function - source = inspect.getsource(obj) - # get the file path of the function definition - file_path = inspect.getfile(obj) - functions[name] = { - "source": source, - "file": file_path - } - except Exception as e: - functions[name] = { - "source": f"Failed to get source code: {str(e)}", - "file": "Unknown" - } - - return functions -print(check_tool()) -""" - exec_script = f"cd {env.docker_workplace}/metachain && python -c '{python_script.strip()}'" - response = env.run_command(exec_script) - if response["status"] == 0: - return response["result"] - else: - return f"Failed to get tool definitions. Error: {response['result']}" - -@register_tool("check_agent") -def check_agent(context_variables) -> str: - """ - Extract agents from existing code. - - Args: - - Returns: - A dictionary containing all agents definitions {agent name: {'source': agent source code, 'file': agent file path}} - """ - env: Union[DockerEnv, LocalEnv] = context_variables.get("code_env", LocalEnv()) - cmd = f"ls -1 {env.docker_workplace}/metachain/metachain/agents" - response = env.run_command(cmd) - if response["status"] == 0: - agents_files = response["result"].split("\n") - else: - return f"Failed to get agent definitions. Error: {response['result']}" - agents = {} - print(agents_files) - for file in agents_files: - if file in ["__init__.py", "", "__pycache__"]: - continue - cmd = f"cat {env.docker_workplace}/metachain/metachain/agents/{file}" - response = env.run_command(cmd) - if response["status"] == 0: - agent_name = file.split(".")[0] - agents[agent_name] = {'source': response["result"], 'file': f"{env.docker_workplace}/metachain/metachain/agents/{file}"} - else: - return f"Failed to get agent definitions. Error: {response['result']}" - return agents diff --git a/metachain/tools/meta/edit_agents.py.back b/metachain/tools/meta/edit_agents.py.back deleted file mode 100644 index deee691..0000000 --- a/metachain/tools/meta/edit_agents.py.back +++ /dev/null @@ -1,415 +0,0 @@ -from metachain.registry import registry -from metachain.environment import LocalEnv, DockerEnv -from typing import Union -from metachain.tools.terminal_tools import ( - create_file, - create_directory, - execute_command, - run_python, - print_stream, - process_terminal_response - ) -from metachain.registry import register_tool -import json -from metachain.tools.meta.edit_tools import get_metachain_path -from string import Formatter -from pydantic import BaseModel -import subprocess -import sys -@register_tool("list_agents") -def list_agents(context_variables): - """ - List all plugin agents in the MetaChain. - Returns: - A list of information of all plugin agents including name, args, docstring, body, return_type, file_path. - """ - env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(env) - except Exception as e: - return "[ERROR] Failed to list agents. Error: " + str(e) - python_code = '"from metachain.registry import registry; import json; print(\\"AGENT_LIST_START\\"); print(json.dumps(registry.display_plugin_agents_info, indent=4)); print(\\"AGENT_LIST_END\\")"' - list_agents_cmd = f"cd {path} && DEFAULT_LOG=False python -c {python_code}" - result = env.run_command(list_agents_cmd) - if result['status'] != 0: - return "[ERROR] Failed to list agents. Error: " + result['result'] - try: - output = result['result'] - start_marker = "AGENT_LIST_START" - end_marker = "AGENT_LIST_END" - start_idx = output.find(start_marker) + len(start_marker) - end_idx = output.find(end_marker) - - if start_idx == -1 or end_idx == -1: - return "[ERROR] Failed to parse agent list: markers not found" - - json_str = output[start_idx:end_idx].strip() - return json_str - except Exception as e: - return f"[ERROR] Failed to process output: {str(e)}" - -@register_tool("create_agent_old") -def create_agent_old(agent_func: str, agent_code: str, context_variables): - """ - Create a new plugin agent. - Args: - agent_func: The name of the function of getting the new agent. - agent_code: The code of creating the new agent. (You should strictly follow the format of the template given to you to create the new agent.) - Returns: - A string representation of the result of the agent creation. - """ - env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(env) - except Exception as e: - return "[ERROR] Failed to list agents. Error: " + str(e) - - agents_dir = path + "/metachain/agents" - try: - msg = create_file(agents_dir + "/" + agent_func + ".py", agent_code, context_variables) - if msg.startswith("Error creating file:"): - return "[ERROR] Failed to create agent. Error: " + msg - return "[SUCCESS] Successfully created agent: " + agent_func + " in " + agents_dir + "/" + agent_func + ".py" - except Exception as e: - return "[ERROR] Failed to create agent. Error: " + str(e) - -@register_tool("delete_agent") -def delete_agent(agent_name: str, context_variables): - """ - Delete a plugin agent. - Args: - agent_name: The name of the agent to be deleted. - Returns: - A string representation of the result of the agent deletion. - """ - env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - agent_list = list_agents(context_variables) - if agent_list.startswith("[ERROR]"): - return "[ERROR] Failed to list agents. Error: " + agent_list - agent_dict = json.loads(agent_list) - if agent_name in agent_dict.keys(): - agent_info = agent_dict[agent_name] - else: - return "[ERROR] The agent " + agent_name + " does not exist." - except Exception as e: - return "[ERROR] Before deleting a agent, you should list all agents first. But the following error occurred: " + str(e) - - agent_path = agent_info['file_path'] - try: - result = env.run_command(f"rm {agent_path}") - if result['status'] != 0: - return f"[ERROR] Failed to delete agent: `{agent_name}`. Error: " + result['result'] - return f"[SUCCESS] Successfully deleted agent: `{agent_name}`." - except Exception as e: - return f"[ERROR] Failed to delete agent: `{agent_name}`. Error: " + str(e) - -@register_tool("run_agent") -@process_terminal_response -def run_agent(agent_name: str, model: str, query: str, ctx_vars: dict, context_variables): - """ - Run a plugin agent. - Args: - agent_name: The name of the agent. - model: The model to be used for the agent. - query: The query to be used for the agent. - ctx_vars: The global context variables to be used for the agent. - Returns: - A string representation of the result of the agent run. - """ - env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(env) - except Exception as e: - return "[ERROR] Failed to get the path of the MetaChain. Error: " + str(e) - - try: - agent_list = list_agents(context_variables) - if agent_list.startswith("[ERROR]"): - return "[ERROR] Failed to list agents. Error: " + agent_list - agent_dict = json.loads(agent_list) - if agent_name in agent_dict.keys(): - agent_info = agent_dict[agent_name] - agent_func = agent_info['func_name'] - else: - return "[ERROR] The agent " + agent_name + " does not exist." - except Exception as e: - return "[ERROR] Before running a agent, you should list all agents first. But the following error occurred: " + str(e) - ctx_vars_str = "" - for key, value in ctx_vars.items(): - ctx_vars_str += f"{key}={value} " - try: - run_cmd = f'cd {path} && DEFAULT_LOG=False mc agent --model={model} --agent_func={agent_func} --query="{query}" {ctx_vars_str}' - result = env.run_command(run_cmd, print_stream) - # if result['status'] != 0: - # return f"[ERROR] Failed to run agent: `{agent_func}`. Error: " + result['result'] - # return f"[SUCCESS] Successfully run agent: `{agent_func}`. The result is: \n{result['result']}" - return result - except Exception as e: - return "[ERROR] Failed to run the agent. Error: " + str(e) - -def has_format_keys(s): - formatter = Formatter() - return any(tuple_item[1] is not None for tuple_item in formatter.parse(s)) -def extract_format_keys(s): - formatter = Formatter() - ret_list = [] - for tuple_item in formatter.parse(s): - if tuple_item[1] is not None and tuple_item[1] not in ret_list: - ret_list.append(tuple_item[1]) - return ret_list -@register_tool("create_agent") -def create_agent(agent_name: str, agent_description: str, agent_tools: list[str], agent_instructions: str, context_variables): - """ - Use this tool to create a new agent or modify an existing agent. - - Args: - agent_name: The name of the agent. - agent_description: The description of the agent. - agent_tools: The tools of the agent. The tools MUST be included in the list of given tools. - agent_instructions: The system instructions of the agent, which tells the agent about the responsibility of the agent, the tools it can use and other important information. It could be a pure string or a string with the format of {global_keys}, where the global keys are the keys of the variables that are given to the agent. - - Returns: - A string representation of the result of the agent creation or modification. - """ - tools_str = "" - code_env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(code_env) - except Exception as e: - return "[ERROR] Failed to list agents. Error: " + str(e) - - agents_dir = path + "/metachain/agents" - - for tool in agent_tools: - tools_str += f"from metachain.tools import {tool}\n" - agent_func = f"get_{agent_name.lower().replace(' ', '_')}" - if has_format_keys(agent_instructions): - format_keys = extract_format_keys(agent_instructions) - format_keys_values = [] - for fk in format_keys: - format_keys_values.append(f"{fk}=context_variables.get('{fk}', '')") - format_keys_values_str = ", ".join(format_keys_values) - instructions_str = f"""\ -def instructions(context_variables): - return {repr(agent_instructions)}.format({format_keys_values_str}) -""" - else: - instructions_str = f"""instructions = {repr(agent_instructions)}""" - tool_list = "[{}]".format(', '.join(f'{tool}' for tool in agent_tools)) - - create_codes = f"""\ -from metachain.types import Agent -{tools_str} -from metachain.registry import register_plugin_agent - -@register_plugin_agent(name="{agent_name}", func_name="{agent_func}") -def {agent_func}(model: str): - ''' - {agent_description} - ''' - {instructions_str} - return Agent( - name="{agent_name}", - model=model, - instructions=instructions, - tools={tool_list} - ) - -""" - # print(create_codes) - # with open(f"metachain/agents/{agent_name.lower().replace(' ', '_')}.py", "w", encoding="utf-8") as f: - # f.write(create_codes) - try: - msg = create_file(agents_dir + "/" + agent_name.lower().replace(' ', '_') + ".py", create_codes, context_variables) - if msg.startswith("Error creating file:"): - return "[ERROR] Failed to create agent. Error: " + msg - result = code_env.run_command('cd {} && python metachain/agents/{}.py'.format(path, agent_name.lower().replace(' ', '_'))) - if result['status'] != 0: - return "[ERROR] Failed to create agent. Error: " + result['result'] - return "Successfully created agent: " + agent_func + " in " + agents_dir + "/" + agent_name.lower().replace(' ', '_') + ".py" - except Exception as e: - return "[ERROR] Failed to create agent. Error: " + str(e) - -class SubAgent(BaseModel): - name: str - agent_input: str - agent_output: str -@register_tool("create_orchestrator_agent") -def create_orchestrator_agent(agent_name: str, agent_description: str, sub_agents: list[SubAgent], agent_instructions: str, context_variables): - """ - Use this tool to create a orchestrator agent for the given sub-agents. You MUST use this tool when you need to create TWO or MORE agents and regard them as a whole to complete a task. - - Args: - agent_name: The name of the orchestrator agent for the given sub-agents. - agent_description: The description of the orchestrator agent. - sub_agents: The list of sub-agents. Each sub-agent contains the name of the sub-agent, the input of the sub-agent and the output of the sub-agent. - agent_instructions: The system instructions of the orchestrator agent, which tells the agent about the responsibility of the agent (orchestrate the workflow of the given sub-agents), the given sub-agents and other important information. It could be a pure string or a string with the format of {global_keys}, where the global keys are the keys of the variables that are given to the agent. - - Returns: - A string representation of the result of the agent creation or modification. - """ - - code_env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(code_env) - except Exception as e: - return "[ERROR] Failed to list agents. Error: " + str(e) - - agents_dir = path + "/metachain/agents" - agent_list = list_agents(context_variables) - if agent_list.startswith("[ERROR]"): - return "Failed to list agents. Error: " + agent_list - agent_dict = json.loads(agent_list) - sub_agent_info = [agent_dict[sub_agent["name"]] for sub_agent in sub_agents] - import_agent_str = "" - for ainfo in sub_agent_info: - import_agent_str += f""" - from metachain.agents import {ainfo['func_name']} -""" - if has_format_keys(agent_instructions): - format_keys = extract_format_keys(agent_instructions) - format_keys_values = [] - for fk in format_keys: - format_keys_values.append(f"{fk}=context_variables.get('{fk}', '')") - format_keys_values_str = ", ".join(format_keys_values) - instructions_str = f"""\ -def instructions(context_variables): - return {repr(agent_instructions)}.format({format_keys_values_str}) -""" - else: - instructions_str = f"""instructions = {repr(agent_instructions)}""" - orchestrator_agent_def = f""" - {agent_name.lower().replace(' ', '_')} = Agent( - name="{agent_name}", - model=model, - instructions=instructions, - ) -""" - sub_agent_funcs = [ainfo['func_name'] for ainfo in sub_agent_info] - get_sub_agents = "" - transfer_sub_agent_func = "" - transfer_back_to_orchestrator_func = "" - transfer_funcs_str = [] - for sub_agent_func, sub_agent in zip(sub_agent_funcs, sub_agents): - get_sub_agents += f""" - {sub_agent_func.replace('get_', '')}: Agent = {sub_agent_func}(model) -""" - transfer_sub_agent_func += f""" - def transfer_to_{sub_agent_func.replace('get_', '')}({sub_agent["agent_input"]}): - return Result(value = {sub_agent["agent_input"]}, agent = {sub_agent_func.replace('get_', '')}) -""" - transfer_funcs_str.append(f"transfer_to_{sub_agent_func.replace('get_', '')}") - transfer_back_to_orchestrator_func += f""" - def transfer_back_to_{agent_name.lower().replace(' ', '_')}({sub_agent["agent_input"]}): - return Result(value = {sub_agent["agent_input"]}, agent = {agent_name.lower().replace(' ', '_')}) - {sub_agent_func.replace('get_', '')}.functions.append(transfer_back_to_{agent_name.lower().replace(' ', '_')}) -""" - - agent_func = f"get_{agent_name.lower().replace(' ', '_')}" - - - - create_codes = f"""\ -from metachain.types import Agent -from metachain.registry import register_plugin_agent -from metachain.types import Result - -@register_plugin_agent(name = "{agent_name}", func_name="{agent_func}") -def {agent_func}(model: str): - ''' - {agent_description} - ''' - {import_agent_str} - {instructions_str} - {orchestrator_agent_def} - - {get_sub_agents} - {transfer_sub_agent_func} - {transfer_back_to_orchestrator_func} - - {agent_name.lower().replace(' ', '_')}.functions = [{", ".join(transfer_funcs_str)}] - return {agent_name.lower().replace(' ', '_')} -""" - # print(create_codes) - # with open(f"metachain/agents/{agent_name.lower().replace(' ', '_')}.py", "w", encoding="utf-8") as f: - # f.write(create_codes) - try: - msg = create_file(agents_dir + "/" + agent_name.lower().replace(' ', '_') + ".py", create_codes, context_variables) - if msg.startswith("Error creating file:"): - return "[ERROR] Failed to create agent. Error: " + msg - result = code_env.run_command('cd {} && python metachain/agents/{}.py'.format(path, agent_name.lower().replace(' ', '_'))) - if result['status'] != 0: - return "[ERROR] Failed to create agent. Error: " + result['result'] - return "Successfully created agent: " + agent_func + " in " + agents_dir + "/" + agent_name.lower().replace(' ', '_') + ".py" - except Exception as e: - return "[ERROR] Failed to create agent. Error: " + str(e) - -def read_agent(agent_name: str, context_variables: dict): - try: - env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(env) - except Exception as e: - return "[ERROR] Failed to get the path of the MetaChain. Error: " + str(e) - agent_list = list_agents(context_variables) - if agent_list.startswith("[ERROR]"): - return "Failed to list agents. Error: " + agent_list - agent_dict = json.loads(agent_list) - if agent_name not in agent_dict.keys(): - return "[ERROR] The agent " + agent_name + " does not exist." - agent_info = agent_dict[agent_name] - ret_val = f"""\ - The information of the agent {agent_name} is: - {agent_info} - """ - return ret_val - except Exception as e: - return "[ERROR] Failed to read the agent. Error: " + str(e) - - -if __name__ == "__main__": - # print(list_agents({})) - from litellm import completion - from metachain.util import function_to_json - tools = [function_to_json(create_agent)] - messages = [ - {"role": "system", "content": "You are a helpful assistant."}, - {"role": "user", "content": """\ -Create an Personalized RAG agent that can answer the question about the given document. There are some tools you can use: -- save_raw_docs_to_vector_db: Save the raw documents to the vector database. The documents could be: - - ANY text document with the extension of pdf, docx, txt, etcs. - - A zip file containing multiple text documents - - a directory containing multiple text documents - All documents will be converted to raw text format and saved to the vector database in the chunks of 4096 tokens. -- query_db: Retrieve information from the database. Use this function when you need to search for information in the database. -- modify_query: Modify the query based on what you know. Use this function when you need to modify the query to search for more relevant information. -- answer_query: Answer the user query based on the supporting documents. -- can_answer: Check if you have enough information to answer the user query. -- visual_question_answering: This tool is used to answer questions about attached images or videos. - -There are some global variables you can use: -glbal_keys | global_vals ------------|----------- -user_name | "Jiabin Tang" -user_email | "jiabin.tang@gmail.com" - -[IMPORTANT] NOT ALL tools are required to be used. You can choose the tools that you think are necessary. - """}, - ] - for tool in tools: - params = tool["function"]["parameters"] - params["properties"].pop("context_variables", None) - if "context_variables" in params["required"]: - params["required"].remove("context_variables") - # response = completion( - # model="claude-3-5-sonnet-20241022", - # messages=messages, - # tools=tools, - # tool_choice="auto", # auto is default, but we'll be explicit - # ) - # print("\nLLM Response1:\n", response.choices[0].message.tool_calls) - # args = json.loads(response.choices[0].message.tool_calls[0].function.arguments) - # create_agent(args["agent_name"], args["agent_description"], args["agent_tools"], args["agent_instructions"], {}) - # print(list_agents({})) - print(create_orchestrator_agent("Orchestrator Coding RAG Agent", "An Orchestrator Agent that orchestrates the workflow of the codig agent and the RAG agent.", [{"name": "Personalized RAG Agent", "agent_input": "doc_query", "agent_output": "queried_doc_content"}, {"name": "Coding Agent", "agent_input": "coding_query", "agent_output": "coding_result"}], "You are a helpful assistant.", {})) \ No newline at end of file diff --git a/metachain/tools/meta/edit_workflow.py.backup b/metachain/tools/meta/edit_workflow.py.backup deleted file mode 100644 index 46a411a..0000000 --- a/metachain/tools/meta/edit_workflow.py.backup +++ /dev/null @@ -1,207 +0,0 @@ -from typing import Union -from metachain.environment import LocalEnv, DockerEnv -from metachain.tools.meta.edit_tools import get_metachain_path -from metachain.tools.meta.edit_agents import list_agents -import json -from metachain import MetaChain -from metachain.types import Response -CODE_PREFIX = """\ -import asyncio -import json -import argparse -from openai import AsyncOpenAI -from openai.types.chat import ChatCompletionMessageToolCall -from metachain.flow import default_drive, EventInput, ReturnBehavior -from metachain.flow.dynamic import goto_events, abort_this -import re -from metachain import MetaChain -from metachain.types import Response -from metachain.registry import register_workflow - -def extract_answer(response: str, key: str): - pattern = f"<{key}>(.*?)" - matches = re.findall(pattern, response) - return matches[0] if len(matches) > 0 else None -""" - -CODE_SUFFIX = r""" -def get_args(): - parser = argparse.ArgumentParser(description="running_workflow") - parser.add_argument('--system_input', type=str, default=None) - args = parser.parse_args() - return args - -if __name__ == "__main__": - args = get_args() -""" - -CODE_MAIN = """ - storage_results = dict({input_key} = args.system_input) - asyncio.run( - default_drive.invoke_event( - on_start, - global_ctx=storage_results, - ) - ) - system_output = storage_results.get({output_key}, None) - print("The system output is: " + system_output) -""" - -EVENT_TEMPLATE_PREFIX = """\ -@default_drive.{event_method} -async def {event_name}(event: EventInput, global_ctx): - inputs = {inputs} - input_dict = dict() - for inp in inputs: - input_dict[inp["key"]] = global_ctx.get(inp["key"], None) - - messages = global_ctx.get('messages', []) - task = {task} - outputs = {output_list} - agent = {agent_func_name}({model}) - -""" -EVENT_TEMPLATE_FIX = r""" - input_str = [] - for key, value in input_dict.items(): - input_str.append(f"The {key.replace('_', ' ')} is {value}") - input_str = "\n".join(input_str) + "\n" - query = input_str + '.\nThe task is: ' + task + '.\n' -""" - -# QUERY_TEMPLATE = """\ -# query = input_str + '.\\nThe task is: ' + task + '.\\n' -# """ - -START_EVENT_CODE = """\ -@default_drive.make_event -async def on_start(event: EventInput, global_ctx): - print("start the workflow:" + {workflow_name}) -""" - - - - -IF_ELSE_SUFFIX = \ -""" -You should follow the above instructions, and return the result in the following format: -""" - -EVENT_TEMPLATE_SUFFIX = """\ - messages.append({ - "role": "user", - "content": query - }) - client = MetaChain() - response: Response = await client.run_async(agent = agent, messages = messages, context_variables = global_ctx, debug = True) - result = response.messages[-1]["content"] - messages.extend(response.messages) - global_ctx["messages"] = messages - - for output in outputs: - ans = extract_answer(result, output["key"]) - if ans: - if output["action"]["type"] == "RESULT": - global_ctx[output["key"]] = ans - return ans - elif output["action"]["type"] == "ABORT": - return abort_this() - elif output["action"]["type"] == "GO_TO": - return goto_events([output["action"]["value"]]) - elif len(outputs) == 1: - global_ctx[output["key"]] = result - return result - raise Exception("No valid answer found") -""" -def start_event_to_code(workflow_name: str) -> str: - """ - Convert the start event to code. - """ - return START_EVENT_CODE.format(workflow_name = repr(workflow_name)) - -def single_event_to_code(event: dict, agent_info_dict: dict) -> str: - """ - Convert a single event to code. - - A event contains: - - name (str): the name of the event - - input (dict): the input to the event - - task (str): the task to perform - - outputs (list[dict]): the outputs to the event - - listen (list[str]): the listen to the event - - agent (dict): the agent to run - """ - if event["listen"] == None or len(event["listen"]) == 0: - event_method = "make_event" - else: - event_method = "listen_group([{}])".format(", ".join(event["listen"])) - inputs = event["inputs"] - - event_code = EVENT_TEMPLATE_PREFIX.format(event_method = event_method, event_name = event["name"], inputs = inputs, task = repr(event["task"]), output_list = event["outputs"], agent_mode_name = agent_info_dict[event["agent"]["name"]]["mode_name"], agent_func_name = agent_info_dict[event["agent"]["name"]]["func_name"], model = repr(event["agent"]["model"])) + EVENT_TEMPLATE_FIX - - if len(event["outputs"]) > 1: - condition_str = [] - for output in event["outputs"]: - condition_str.append(f"If {output['condition']}, then encapsulate your final answer (answer ONLY) within <{output['key']}> and . ") - query_suffix = "\n".join(condition_str) - query_suffix = f""" - query_suffix = {repr(IF_ELSE_SUFFIX)} - query_suffix += {repr(query_suffix)} - query += query_suffix -""" - event_code += query_suffix + EVENT_TEMPLATE_SUFFIX - else: - event_code += EVENT_TEMPLATE_SUFFIX - - return event_code - - -def json_to_workflow_code(workflow_form: dict, context_variables: dict) -> str: - system_input = workflow_form['system_input'] - system_output = workflow_form['system_output'] - code_env: Union[LocalEnv, DockerEnv] = context_variables.get("code_env", LocalEnv()) - try: - path = get_metachain_path(code_env) - except Exception as e: - return "[ERROR] Failed to list agents. Error: " + str(e) - - agents_dir = path + "/metachain/agents" - agent_list = list_agents(context_variables) - if agent_list.startswith("[ERROR]"): - return "Failed to list agents. Error: " + agent_list - agent_dict = json.loads(agent_list) - agent_info_dict = {} - workflow_name = workflow_form["name"] - for a in workflow_form["agents"]: - agent_info_dict[a["name"]] = {"name": a["name"], "func_name": agent_dict[a["name"]]["func_name"], "mode_name": a["name"].replace(" ", "_").lower()} - - import_agent_str = "" - for ainfo in agent_info_dict.values(): - import_agent_str += f""" -from metachain.agents import {ainfo['func_name']} -""" - events = workflow_form["events"] - events_code = CODE_PREFIX + import_agent_str - for event in events: - if event["name"] == "on_start": - events_code += start_event_to_code(workflow_name) - else: - events_code += single_event_to_code(event, agent_info_dict) - - events_code += CODE_SUFFIX - - events_code += CODE_MAIN.format(input_key = system_input["key"], output_key = repr(system_output["key"])) - - with open("math_majority_voting.py", "w") as f: - f.write(events_code) - -def create_workflow(workflow_form: dict, context_variables: dict) -> str: - pass - -def run_workflow(workflow_name: str, context_variables: dict) -> str: - pass - - -if __name__ == "__main__": - workflow_form = json.load(open("metachain/agents/meta_agent/workflow_form/math_majority_voting.json", "r")) - json_to_workflow_code(workflow_form, {}) \ No newline at end of file diff --git a/metachain/tools/terminal_tools.py b/metachain/tools/terminal_tools.py index 7d7ed27..02dc9bb 100644 --- a/metachain/tools/terminal_tools.py +++ b/metachain/tools/terminal_tools.py @@ -159,6 +159,7 @@ def process_terminal_response(func): else: res_output = f"[SUCCESS] {res_output}" tmp_file = os.path.join(os.getcwd(), "terminal_tmp", "terminal_output_{}___{}.txt".format(datetime.now().strftime("%Y%m%d_%H%M%S"), func.__name__)) + Path(tmp_file).parent.mkdir(parents=True, exist_ok=True) with open(tmp_file, "w") as f: f.write(res_output) return open_local_terminal_output(tmp_file) diff --git a/metachain_meta_agent.py b/metachain_meta_agent.py deleted file mode 100644 index c937e1e..0000000 --- a/metachain_meta_agent.py +++ /dev/null @@ -1,266 +0,0 @@ -from constant import DOCKER_WORKPLACE_NAME -from metachain.io_utils import read_yaml_file, get_md5_hash_bytext, read_file -from metachain.workflow import Graph, FlowEngine, meta_agent -from metachain.environment.utils import setup_metachain -from metachain.types import Response -from metachain import MetaChain -from metachain.util import ask_text, single_select_menu, print_markdown, debug_print, UserCompleter -from prompt_toolkit import PromptSession -from prompt_toolkit.completion import Completer, Completion -from prompt_toolkit.formatted_text import HTML -from prompt_toolkit.styles import Style -from rich.progress import Progress, SpinnerColumn, TextColumn -import json -import argparse -from datetime import datetime -from metachain.agents.meta_agent import tool_editor, agent_editor -from metachain.tools.meta.edit_tools import list_tools -from metachain.tools.meta.edit_agents import list_agents -from loop_utils.font_page import MC_LOGO, version_table, NOTES, GOODBYE_LOGO -from rich.live import Live -from metachain.environment.docker_env import DockerEnv, DockerConfig, check_container_ports -from metachain.environment.browser_env import BrowserEnv -from metachain.environment.markdown_browser import RequestsMarkdownBrowser -from evaluation.utils import update_progress, check_port_available, run_evaluation, clean_msg -import os -import os.path as osp -from metachain.agents import get_system_triage_agent -from metachain.logger import LoggerManager, MetaChainLogger -from rich.console import Console -from rich.markdown import Markdown -from rich.table import Table -from rich.columns import Columns -from rich.text import Text -from rich.panel import Panel -from metachain.agents.meta_agent.agent_former import get_agent_former_agent -from metachain.agents.meta_agent.tool_editor import get_tool_editor_agent -from metachain.agents.meta_agent.agent_creator import get_agent_creator_agent -import re -from metachain.agents.meta_agent.form_complie import parse_agent_form - -def get_args(): - parser = argparse.ArgumentParser(description="working@tjb-tech") - parser.add_argument('--container_name', type=str, default='gpu_test') - parser.add_argument('--model', type=str, default='gpt-4o-2024-08-06') - parser.add_argument('--test_pull_name', type=str, default='test_pull_1010') - parser.add_argument('--debug', action='store_true', default=False) - parser.add_argument('--port', type=int, default=12350) - parser.add_argument('--git_clone', action='store_true', default=False) - parser.add_argument('--task_cfg', type=str, default='benchmarks/case_study/finance_agent/case_finance_agent_single.yaml') - args = parser.parse_args() - return args -def get_config(args): - container_name = args.container_name - - port_info = check_container_ports(container_name) - port = args.port - if port_info: - port = port_info[0] - else: - # while not check_port_available(port): - # port += 1 - # 使用文件锁来确保端口分配的原子性 - import filelock - lock_file = os.path.join(os.getcwd(), ".port_lock") - lock = filelock.FileLock(lock_file) - - with lock: - port = args.port - while not check_port_available(port): - port += 1 - print(f'{port} is not available, trying {port+1}') - # 立即标记该端口为已使用 - with open(os.path.join(os.getcwd(), f".port_{port}"), 'w') as f: - f.write(container_name) - local_root = os.path.join(os.getcwd(), f"workspace_meta_showcase", f"showcase_{container_name}") - os.makedirs(local_root, exist_ok=True) - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - docker_config = DockerConfig( - workplace_name=DOCKER_WORKPLACE_NAME, - container_name=container_name, - communication_port=port, - conda_path='/root/miniconda3', - local_root=local_root, - git_clone=args.git_clone, - test_pull_name=args.test_pull_name, - task_name = "meta_agent_" + timestamp - ) - return docker_config -def create_environment(docker_config: DockerConfig): - """ - 1. create the code environment - 2. create the web environment - 3. create the file environment - """ - code_env = DockerEnv(docker_config) - code_env.init_container() - - web_env = BrowserEnv(browsergym_eval_env = None, local_root=docker_config.local_root, workplace_name=docker_config.workplace_name) - file_env = RequestsMarkdownBrowser(viewport_size=1024 * 5, local_root=docker_config.local_root, workplace_name=docker_config.workplace_name, downloads_folder=os.path.join(docker_config.local_root, docker_config.workplace_name, "downloads")) - - return code_env, web_env, file_env -def extract_agents_content(text): - pattern = r'(.*?)' - # re.DOTALL 让 . 也能匹配换行符 - match = re.search(pattern, text, re.DOTALL) - if match: - return match.group(1) - return None -def main(args): - print('\033[s\033[?25l', end='') # Save cursor position and hide cursor - with Progress( - SpinnerColumn(), - TextColumn("[progress.description]{task.description}"), - transient=True # 这会让进度条完成后消失 - ) as progress: - task = progress.add_task("[cyan]Initializing...", total=None) - - progress.update(task, description="[cyan]Initializing config...[/cyan]\n") - docker_config = get_config(args) - - progress.update(task, description="[cyan]Setting up logger...[/cyan]\n") - log_path = osp.join("casestudy_results", 'logs', f'agent_{args.container_name}_{args.model}.log') - os.makedirs(osp.dirname(log_path), exist_ok=True) - LoggerManager.set_logger(MetaChainLogger(log_path = log_path)) - - progress.update(task, description="[cyan]Creating environment...[/cyan]\n") - code_env, web_env, file_env = create_environment(docker_config) - - progress.update(task, description="[cyan]Setting up metachain...[/cyan]\n") - setup_metachain(workplace_name=docker_config.workplace_name, env=code_env) - - context_variables = {"working_dir": docker_config.workplace_name, "code_env": code_env, "web_env": web_env, "file_env": file_env} - task_cfg = read_yaml_file(args.task_cfg) - - # generate agent form - client = MetaChain(LoggerManager.get_logger()) - agent_former = get_agent_former_agent(args.model) - messages = [ - {"role": "user", "content": task_cfg["requirements"] + """ -Directly output the form in the XML format without ANY other text. -"""} - ] - response = client.run(agent_former, messages, context_variables) - output_xml_form = response.messages[-1]["content"] - messages.extend(response.messages) - - - MAX_RETRY = 3 - for i in range(MAX_RETRY): - try: - output_xml_form = extract_agents_content(output_xml_form) - assert output_xml_form is not None, "No the XML form should be found in the output with the tag ...." - agent_form = parse_agent_form(output_xml_form) - break - except Exception as e: - print(f"Error parsing XML to agent form: {e}. Retry {i+1}/{MAX_RETRY}") - messages.append({"role": "user", "content": f"Error parsing XML to agent form: {e}\nNote that there are some special restrictions for creating agent form, please try again."}) - response = client.run(agent_former, messages, context_variables) - output_xml_form = response.messages[-1]["content"] - messages.extend(response.messages) - print(output_xml_form) - tool_editor_agent = get_tool_editor_agent(args.model) - def case_resolved(task_response: str, context_variables: dict): - """ - Use this tools when the desired tool is created and tested successfully. You can NOT use this tool if the tool is not created or tested successfully by running the tool. - - Args: - task_response: the response of creating the tool which contains the completion status of the tool. - """ - return f"Case resolved. The desired tool is created and tested successfully. Details: {task_response}" - def case_not_resolved(task_response: str, context_variables: dict): - """ - Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired tool. You can NOT use this tool before you have tried your best. - - Args: - task_response: the reason why the tool is not created or tested successfully. - """ - return f"Case not resolved. The desired tool is not created or tested successfully. Details: {task_response}" - tool_editor_agent.functions.extend([case_resolved, case_not_resolved]) - - agents = agent_form.agents - for agent in agents: - if len(agent.tools.new) > 0: - new_tools = [] - for idx, tool in enumerate(agent.tools.new): - new_tools.append(f"{idx+1}. Tool name: {tool.name}, Tool description: {tool.description}") - new_tools_str = "\n".join(new_tools) - messages.append({"role": "user", "content": f"""\ -Your task is to create a list of new tools for me, the tools are: -{new_tools_str} - -Please create these new tools for me, note that you can NOT stop util you have created all the tools and tested them using `run_tool` successfully. - -If EVERY tool is created and tested successfully, you can stop and output "Case resolved". Otherwise, you should continue to create the tools. After you have tried your best, you can output "Case not resolved" and give the reason why the tool is not created or tested successfully. - -[IMPORTANT] EVERY tool MUST be tested successfully by running the tool using `run_tool` before you stop. -"""}) - response = client.run(tool_editor_agent, messages, context_variables) - content = response.messages[-1]["content"] - for i in range(MAX_RETRY): - if content.startswith("Case resolved"): - break - messages.append({"role": "user", "content": f"""\ -Your task is to create a list of new tools for me, the tools are: -{new_tools_str} - -Please create these new tools for me, note that you can NOT stop util you have created all the tools and tested them using `run_tool` successfully. -The last attempt failed with the following error: {content}, please try again to create the tools. -"""}) - response = client.run(tool_editor_agent, messages, context_variables) - content = response.messages[-1]["content"] - if i == MAX_RETRY: - return f"The desired tool is not created or tested successfully with {MAX_RETRY} attempts." - - # create agents: - agent_creator_agent = get_agent_creator_agent(args.model) - def case_resolved(task_response: str, context_variables: dict): - """ - Use this tools when the desired agent(s) is created and tested successfully. You can NOT use this tool if the agent(s) is not created or tested successfully by running the agent(s). - """ - return f"Case resolved. The desired agent(s) is created and tested successfully. : {task_response}" - def case_not_resolved(task_response: str, context_variables: dict): - """ - Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired agent(s). You can NOT use this tool before you have tried your best. - """ - return f"Case not resolved. The desired agent(s) is not created or tested successfully. Details: {task_response}" - agent_creator_agent.functions.extend([case_resolved, case_not_resolved]) - messages.append({"role": "user", "content": f"""\ -The user's request to create agent(s) is: {task_cfg["requirements"]} -Given the completed agent form with XML format: {output_xml_form} -After previous attempts, you have created new tools that required by the desired agent(s). - -Your task is to create the desired agent(s) for me, note that you may create ONE single agent or multiple agents connected by orchestrator agent. - -After you have created the agent(s), you should test the agent(s) by running the agent(s) using `run_agent` tool to complete the user's task: -{task_cfg["task"]} - -Note that you can NOT stop util you have created the agent(s) and tested it successfully. -"""}) - response = client.run(agent_creator_agent, messages, context_variables) - content = response.messages[-1]["content"] - for i in range(MAX_RETRY): - if content.startswith("Case resolved"): - break - messages.append({"role": "user", "content": f"""\ -The user's request to create agent(s) is: {task_cfg["requirements"]} -Given the completed agent form with XML format: {output_xml_form} -After previous attempts, you have created new tools that required by the desired agent(s). - -Your task is to create the desired agent(s) for me, note that you may create ONE single agent or multiple agents connected by orchestrator agent. - -After you have created the agent(s), you should test the agent(s) by running the agent(s) using `run_agent` tool to complete the user's task: -{task_cfg["task"]} - -Note that you can NOT stop util you have created the agent(s) and tested it successfully. -The last attempt failed with the following error: {content}, please try again to create the desired agent(s). -"""}) - response = client.run(agent_creator_agent, messages, context_variables) - content = response.messages[-1]["content"] - if i == MAX_RETRY: - return f"The desired agent(s) is not created or tested successfully with {MAX_RETRY} attempts." - - -if __name__ == "__main__": - args = get_args() - main(args) \ No newline at end of file diff --git a/metachain_meta_agent.sh b/metachain_meta_agent.sh deleted file mode 100644 index 809ce92..0000000 --- a/metachain_meta_agent.sh +++ /dev/null @@ -1,13 +0,0 @@ -current_dir=$(dirname "$(readlink -f "$0")") - -cd $current_dir -export DOCKER_WORKPLACE_NAME=workplace -export EVAL_MODE=True -export DEBUG=True -export BASE_IMAGES=tjb-gaia-bookworm:v2 -export COMPLETION_MODEL=claude-3-5-sonnet-20241022 -# export COMPLETION_MODEL=gpt-4o-2024-08-06 -export MC_MODE=False - -python metachain_meta_agent.py --container_name nl2agent_showcase --model ${COMPLETION_MODEL} --test_pull_name test_pull_0111 --debug --port 12350 --git_clone -# python /Users/tangjiabin/Documents/reasoning/metachain/test_gaia_tool.py diff --git a/metachain_meta_workflow.py b/metachain_meta_workflow.py deleted file mode 100644 index aecb370..0000000 --- a/metachain_meta_workflow.py +++ /dev/null @@ -1,231 +0,0 @@ -from constant import DOCKER_WORKPLACE_NAME -from metachain.io_utils import read_yaml_file, get_md5_hash_bytext, read_file -from metachain.workflow import Graph, FlowEngine, meta_agent -from metachain.environment.utils import setup_metachain -from metachain.types import Response -from metachain import MetaChain -from metachain.util import ask_text, single_select_menu, print_markdown, debug_print, UserCompleter -from prompt_toolkit import PromptSession -from prompt_toolkit.completion import Completer, Completion -from prompt_toolkit.formatted_text import HTML -from prompt_toolkit.styles import Style -from rich.progress import Progress, SpinnerColumn, TextColumn -import json -import argparse -from datetime import datetime -from metachain.agents.meta_agent import tool_editor, agent_editor -from metachain.tools.meta.edit_tools import list_tools -from metachain.tools.meta.edit_agents import list_agents -from loop_utils.font_page import MC_LOGO, version_table, NOTES, GOODBYE_LOGO -from rich.live import Live -from metachain.environment.docker_env import DockerEnv, DockerConfig, check_container_ports -from metachain.environment.browser_env import BrowserEnv -from metachain.environment.markdown_browser import RequestsMarkdownBrowser -from evaluation.utils import update_progress, check_port_available, run_evaluation, clean_msg -import os -import os.path as osp -from metachain.agents import get_system_triage_agent -from metachain.logger import LoggerManager, MetaChainLogger -from rich.console import Console -from rich.markdown import Markdown -from rich.table import Table -from rich.columns import Columns -from rich.text import Text -from rich.panel import Panel -from metachain.agents.meta_agent.workflow_former import get_workflow_former_agent -from metachain.agents.meta_agent.workflow_creator import get_workflow_creator_agent -import re -from metachain.agents.meta_agent.worklow_form_complie import parse_workflow_form, WorkflowForm - -def get_args(): - parser = argparse.ArgumentParser(description="working@tjb-tech") - parser.add_argument('--container_name', type=str, default='gpu_test') - parser.add_argument('--model', type=str, default='gpt-4o-2024-08-06') - parser.add_argument('--test_pull_name', type=str, default='test_pull_1010') - parser.add_argument('--debug', action='store_true', default=False) - parser.add_argument('--port', type=int, default=12350) - parser.add_argument('--git_clone', action='store_true', default=False) - parser.add_argument('--task_cfg', type=str, default='benchmarks/case_study/math_workflow/majority_voting(paralizing).yaml') - args = parser.parse_args() - return args -def get_config(args): - container_name = args.container_name - - port_info = check_container_ports(container_name) - port = args.port - if port_info: - port = port_info[0] - else: - # while not check_port_available(port): - # port += 1 - # 使用文件锁来确保端口分配的原子性 - import filelock - lock_file = os.path.join(os.getcwd(), ".port_lock") - lock = filelock.FileLock(lock_file) - - with lock: - port = args.port - while not check_port_available(port): - port += 1 - print(f'{port} is not available, trying {port+1}') - # 立即标记该端口为已使用 - with open(os.path.join(os.getcwd(), f".port_{port}"), 'w') as f: - f.write(container_name) - local_root = os.path.join(os.getcwd(), f"workspace_meta_showcase", f"showcase_{container_name}") - os.makedirs(local_root, exist_ok=True) - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - docker_config = DockerConfig( - workplace_name=DOCKER_WORKPLACE_NAME, - container_name=container_name, - communication_port=port, - conda_path='/root/miniconda3', - local_root=local_root, - git_clone=args.git_clone, - test_pull_name=args.test_pull_name, - task_name = "meta_agent_" + timestamp - ) - return docker_config -def create_environment(docker_config: DockerConfig): - """ - 1. create the code environment - 2. create the web environment - 3. create the file environment - """ - code_env = DockerEnv(docker_config) - code_env.init_container() - - web_env = BrowserEnv(browsergym_eval_env = None, local_root=docker_config.local_root, workplace_name=docker_config.workplace_name) - file_env = RequestsMarkdownBrowser(viewport_size=1024 * 5, local_root=docker_config.local_root, workplace_name=docker_config.workplace_name, downloads_folder=os.path.join(docker_config.local_root, docker_config.workplace_name, "downloads")) - - return code_env, web_env, file_env -def main(args): - print('\033[s\033[?25l', end='') # Save cursor position and hide cursor - with Progress( - SpinnerColumn(), - TextColumn("[progress.description]{task.description}"), - transient=True # 这会让进度条完成后消失 - ) as progress: - task = progress.add_task("[cyan]Initializing...", total=None) - - progress.update(task, description="[cyan]Initializing config...[/cyan]\n") - docker_config = get_config(args) - - progress.update(task, description="[cyan]Setting up logger...[/cyan]\n") - log_path = osp.join("casestudy_results", 'logs', f'agent_{args.container_name}_{args.model}.log') - LoggerManager.set_logger(MetaChainLogger(log_path = None)) - - progress.update(task, description="[cyan]Creating environment...[/cyan]\n") - code_env, web_env, file_env = create_environment(docker_config) - - progress.update(task, description="[cyan]Setting up metachain...[/cyan]\n") - setup_metachain(workplace_name=docker_config.workplace_name, env=code_env) - - context_variables = {"working_dir": docker_config.workplace_name, "code_env": code_env, "web_env": web_env, "file_env": file_env} - task_cfg = read_yaml_file(args.task_cfg) - - # generate agent form - client = MetaChain() - workflow_former = get_workflow_former_agent(args.model) - messages = [ - {"role": "user", "content": task_cfg["requirements"] + """ -Directly output the form in the XML format without ANY other text. -"""} - ] - response = client.run(workflow_former, messages, context_variables) - output_xml_form = response.messages[-1]["content"] - messages.extend(response.messages) - - MAX_RETRY = 3 - for i in range(MAX_RETRY): - workflow_form = parse_workflow_form(output_xml_form) - if isinstance(workflow_form, WorkflowForm): - break - elif isinstance(workflow_form, str): - print(f"Error parsing XML to workflow form: {workflow_form}. Retry {i+1}/{MAX_RETRY}") - messages.append({"role": "user", "content": f"Error parsing XML to workflow form, the error message is: {workflow_form}\nNote that there are some special restrictions for creating workflow form, please try again."}) - response = client.run(workflow_former, messages, context_variables) - output_xml_form = response.messages[-1]["content"] - messages.extend(response.messages) - else: - raise ValueError(f"Unexpected error: {workflow_form}") - print(output_xml_form) -# context_variables["workflow_form"] = workflow_form -# agents = workflow_form.agents -# new_agents = [] -# for agent in agents: -# if agent.category == "new": -# new_agents.append(agent) -# print(new_agents) - -# if len(new_agents) != 0: -# new_agent_str = "AGENT CREATION INSTRUCTIONS:\nBefore you create the workflow, you need to create the following new agents in the workflow:\n" -# for agent in new_agents: -# new_agent_str += f"Agent name: {agent.name}\nAgent description: {agent.description}\n" -# new_agent_str += f"Agent tools: {agent.tools}\n" if agent.tools else "Agent tools: []\n" -# else: -# new_agent_str = "" - -# workflow_creator_agent = get_workflow_creator_agent(args.model) -# def case_resolved(task_response: str, context_variables: dict): -# """ -# Use this tools when the desired workflow is created and tested successfully. You can NOT use this tool if the workflow is not created or tested successfully by running the workflow. -# """ -# return f"Case resolved. The desired workflow is created and tested successfully. : {task_response}" -# def case_not_resolved(task_response: str, context_variables: dict): -# """ -# Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired workflow. You can NOT use this tool before you have tried your best. -# """ -# return f"Case not resolved. The desired workflow is not created or tested successfully. Details: {task_response}" -# workflow_creator_agent.functions.extend([case_resolved, case_not_resolved]) -# messages.append({"role": "user", "content": f"""\ -# WORKFLOW CREATION INSTRUCTIONS: -# The user's request to create workflow is: {task_cfg["requirements"]} -# Given the completed workflow form with XML format: {output_xml_form} - -# TASK: -# Your task is to create the workflow for me, and then test the workflow by running the workflow using `run_workflow` tool to complete the user's task: -# {task_cfg["task"]} - -# {new_agent_str} - -# TERMINATION INSTRUCTIONS: -# After you have created the workflow and tested it successfully, you can use the `case_resolved` tool to indicate the case is resolved, otherwise you should try your best to create the workflow. And ONLY after you have tried multiple times, you can use the `case_not_resolved` tool to indicate the case is not resolved and give the reason. - -# Remember: you can NOT stop util you have created the workflow and tested it successfully. -# """}) -# response = client.run(workflow_creator_agent, messages, context_variables) -# content = response.messages[-1]["content"] -# for i in range(MAX_RETRY): -# if content.startswith("Case resolved"): -# break -# messages.append({"role": "user", "content": f"""\ -# WORKFLOW CREATION INSTRUCTIONS: -# The user's request to create workflow is: {task_cfg["requirements"]} -# Given the completed workflow form with XML format: {output_xml_form} - -# TASK: -# Your task is to create the workflow for me, and then test the workflow by running the workflow using `run_workflow` tool to complete the user's task: -# {task_cfg["task"]} - -# {new_agent_str} - -# TERMINATION INSTRUCTIONS: -# After you have created the workflow and tested it successfully, you can use the `case_resolved` tool to indicate the case is resolved, otherwise you should try your best to create the workflow. And ONLY after you have tried multiple times, you can use the `case_not_resolved` tool to indicate the case is not resolved and give the reason. - -# Remember: you can NOT stop util you have created the workflow and tested it successfully. - -# FEEDBACK: -# The last attempt failed with the following error: {content}, please try again to create the desired workflow. -# """}) -# response = client.run(workflow_creator_agent, messages, context_variables) -# content = response.messages[-1]["content"] -# if i == MAX_RETRY: -# return f"The desired workflow is not created or tested successfully with {MAX_RETRY} attempts." - - - - - -if __name__ == "__main__": - args = get_args() - main(args) \ No newline at end of file diff --git a/metachain_meta_workflow.sh b/metachain_meta_workflow.sh deleted file mode 100644 index e8758a6..0000000 --- a/metachain_meta_workflow.sh +++ /dev/null @@ -1,16 +0,0 @@ -current_dir=$(dirname "$(readlink -f "$0")") - -cd $current_dir -export DOCKER_WORKPLACE_NAME=workplace -export EVAL_MODE=True -export DEBUG=True -export BASE_IMAGES=tjb-gaia-bookworm:v2 -export COMPLETION_MODEL=claude-3-5-sonnet-20241022 -# export COMPLETION_MODEL=gpt-4o-2024-08-06 -export MC_MODE=False - -task_cfg="benchmarks/case_study/math_workflow/majority_voting(paralizing).yaml" -# task_cfg="benchmarks/case_study/math_workflow/condition_mining(evaluator-optimizer).yaml" - -python metachain_meta_workflow.py --container_name nl2agent_showcase --model ${COMPLETION_MODEL} --test_pull_name test_pull_0111 --debug --port 12350 --git_clone --task_cfg ${task_cfg} -# python /Users/tangjiabin/Documents/reasoning/metachain/test_gaia_tool.py \ No newline at end of file diff --git a/playground/cli/metachain_cli.py b/playground/cli/metachain_cli.py index d3434b3..db4b97e 100644 --- a/playground/cli/metachain_cli.py +++ b/playground/cli/metachain_cli.py @@ -32,7 +32,8 @@ from rich.columns import Columns from rich.text import Text from rich.panel import Panel import re - +from playground.cli.metachain_meta_agent import meta_agent +from playground.cli.metachain_meta_workflow import meta_workflow def get_args(): parser = argparse.ArgumentParser(description="working@tjb-tech") parser.add_argument('--container_name', type=str, default='gpu_test') @@ -148,63 +149,14 @@ def user_mode(model: str, context_variables: dict, debug: bool = True): # attempt to parse model_answer if model_answer_raw.startswith('Case resolved'): - model_answer = re.findall(r'(.*?)', model_answer_raw) + model_answer = re.findall(r'(.*?)', model_answer_raw, re.DOTALL) if len(model_answer) == 0: model_answer = model_answer_raw else: model_answer = model_answer[0] else: model_answer = model_answer_raw - console.print(f"[bold green][bold magenta]@{agent_name}[/bold magenta] has finished with the response:[/bold green] [bold blue]{model_answer}[/bold blue]") - agent = response.agent - pass -def agent_chain(model: str, context_variables: dict, debug: bool = True): - from metachain.agents import get_plan_agent - from metachain.agents.programming_triage_agent import get_programming_triage_agent, get_agent_run_agent, get_tool_creation_agent, get_agent_creation_agent - programming_triage_agent = get_programming_triage_agent(model) - agent_run_agent = get_agent_run_agent(model) - tool_creation_agent = get_tool_creation_agent(model) - agent_creation_agent = get_agent_creation_agent(model) - def transfer_to_programming_triage_agent(): - return programming_triage_agent - plan_agent = get_plan_agent(model) - plan_agent.functions.append(transfer_to_programming_triage_agent) - - messages = [] - agent = plan_agent - agents = {plan_agent.name.replace(' ', '_'): plan_agent, programming_triage_agent.name.replace(' ', '_'): programming_triage_agent, agent_run_agent.name.replace(' ', '_'): agent_run_agent, tool_creation_agent.name.replace(' ', '_'): tool_creation_agent, agent_creation_agent.name.replace(' ', '_'): agent_creation_agent} - # REPL loop - style = Style.from_dict({ - 'bottom-toolbar': 'bg:#333333 #ffffff', - }) - - # 创建会话 - session = PromptSession( - completer=UserCompleter(agents.keys()), - complete_while_typing=True, - style=style - ) - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - mc = MetaChain(timestamp) - while True: - # query = ask_text("Tell me what you want to do:") - query = session.prompt( - 'Tell me what you want to do (type "exit" to quit): ', - bottom_toolbar=HTML('Prompt: Enter @ to mention Agents') - ) - if query.strip().lower() == 'exit': - debug_print(debug, 'Agent completed. See you next time! :waving_hand:', color='green') - break - words = query.split() - for word in words: - if word.startswith('@') and word[1:] in agents.keys(): - print(f"[bold magenta]{word}[bold magenta]", end=' ') - agent = agents[word.replace('@', '')] - else: - print(word, end=' ') - messages.append({"role": "user", "content": query}) - response = mc.run(agent, messages, context_variables, debug=debug) - messages.extend(response.messages) + console.print(f"[bold green][bold magenta]@{agent_name}[/bold magenta] has finished with the response:\n[/bold green] [bold blue]{model_answer}[/bold blue]") agent = response.agent def tool_to_table(tool_dict: dict): @@ -240,9 +192,7 @@ def update_guidance(context_variables): console.print(Panel(logo_text, style="bold salmon1", expand=True)) console.print(version_table) console.print(Panel(NOTES,title="Important Notes", expand=True)) - -def workflow_chain(model: str, debug: bool = True): - pass + def main(args): print('\033[s\033[?25l', end='') # Save cursor position and hide cursor with Progress( @@ -284,17 +234,16 @@ def main(args): user_mode(args.model, context_variables, args.debug) case 'agent editor': clear_screen() - agent_chain(args.model, context_variables, args.debug) + meta_agent(args.model, context_variables, args.debug) case 'workflow editor': clear_screen() - workflow_chain(args.model, context_variables, args.debug) + meta_workflow(args.model, context_variables, args.debug) case 'exit': console = Console() logo_text = Text(GOODBYE_LOGO, justify="center") console.print(Panel(logo_text, style="bold salmon1", expand=True)) break - if __name__ == "__main__": args = get_args() main(args) \ No newline at end of file diff --git a/playground/cli/metachain_cli.sh b/playground/cli/metachain_cli.sh index 080e379..2f3d873 100644 --- a/playground/cli/metachain_cli.sh +++ b/playground/cli/metachain_cli.sh @@ -1,14 +1,15 @@ current_dir=$(dirname "$(readlink -f "$0")") cd $current_dir +cd ../.. export DOCKER_WORKPLACE_NAME=workplace export EVAL_MODE=True export DEBUG=True export BASE_IMAGES=tjbtech1/gaia-bookworm:v2 export COMPLETION_MODEL=claude-3-5-sonnet-20241022 # export COMPLETION_MODEL=gpt-4o-2024-08-06 -export DEBUG=False +export DEBUG=True export MC_MODE=True +export AI_USER=tjb-tech -python metachain_loop.py --container_name quick_start --model ${COMPLETION_MODEL} --test_pull_name test_pull_1225 --debug --port 12350 --git_clone -# python /Users/tangjiabin/Documents/reasoning/metachain/test_gaia_tool.py +python playground/cli/metachain_cli.py --container_name quick_start --model ${COMPLETION_MODEL} --test_pull_name mirror_branch_0207 --debug --port 12345 --git_clone diff --git a/playground/cli/metachain_meta_agent.py b/playground/cli/metachain_meta_agent.py new file mode 100644 index 0000000..603374c --- /dev/null +++ b/playground/cli/metachain_meta_agent.py @@ -0,0 +1,255 @@ +from metachain import MetaChain +from metachain.util import UserCompleter +from prompt_toolkit import PromptSession +from prompt_toolkit.formatted_text import HTML +from prompt_toolkit.styles import Style +from metachain.logger import LoggerManager, MetaChainLogger +from rich.console import Console +from rich.panel import Panel +from metachain.agents.meta_agent.agent_former import get_agent_former_agent +from metachain.agents.meta_agent.tool_editor import get_tool_editor_agent +from metachain.agents.meta_agent.agent_creator import get_agent_creator_agent +import re +from metachain.agents.meta_agent.form_complie import parse_agent_form + +def extract_agents_content(text): + pattern = r'(.*?)' + # re.DOTALL 让 . 也能匹配换行符 + match = re.search(pattern, text, re.DOTALL) + if match: + return match.group(1) + return None + +def agent_profiling(agent_former, client, messages, context_variables, requirements, debug): + messages.append({"role": "user", "content": requirements+ """ +Directly output the form in the XML format without ANY other text. +"""}) + + response = client.run(agent_former, messages, context_variables, debug=debug) + output_xml_form = response.messages[-1]["content"] + messages.extend(response.messages) + agent_form = None + + MAX_RETRY = 3 + for i in range(MAX_RETRY): + try: + output_xml_form = extract_agents_content(output_xml_form) + assert output_xml_form is not None, "No the XML form should be found in the output with the tag ...." + agent_form = parse_agent_form(output_xml_form) + break + except Exception as e: + print(f"Error parsing XML to agent form: {e}. Retry {i+1}/{MAX_RETRY}") + messages.append({"role": "user", "content": f"Error parsing XML to agent form: {e}\nNote that there are some special restrictions for creating agent form, please try again."}) + response = client.run(agent_former, messages, context_variables, debug=debug) + output_xml_form = response.messages[-1]["content"] + messages.extend(response.messages) + return agent_form, output_xml_form, messages + +def tool_editing(tool_editor_agent, client, messages, context_variables, agent_form, output_xml_form, debug, suggestions = ""): + def case_resolved(task_response: str, context_variables: dict): + """ + Use this tools when ALL desired tools are created and tested successfully. You can NOT use this tool if tools are not created or tested successfully by running the tools. + + Args: + task_response: the response of creating the tool which contains the completion status of the tool. + """ + return f"Case resolved. ALL desired tools are created and tested successfully. Details: {task_response}" + def case_not_resolved(task_response: str, context_variables: dict): + """ + Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired tool. You can NOT use this tool before you have tried your best. + + Args: + task_response: the reason why the tool is not created or tested successfully. + """ + return f"Case not resolved. Some desired tools are not created or tested successfully. Details: {task_response}" + tool_editor_agent.functions.extend([case_resolved, case_not_resolved]) + MAX_RETRY = 3 + + if suggestions != "": + suggestions = "[IMPORTANT] Here are some suggestions for creating the tools: " + suggestions + + agents = agent_form.agents + new_tools = [] + for agent in agents: + if len(agent.tools.new) > 0: + + for idx, tool in enumerate(agent.tools.new): + new_tools.append(f"{idx+1}. Tool name: {tool.name}, Tool description: {tool.description}") + if len(new_tools) == 0: + return "Case resolved. ALL desired tools are created and tested successfully.", messages + new_tools_str = "\n".join(new_tools) + messages.append({"role": "user", "content": f"""\ +Your task is to create a list of new tools for me, the tools are: +{new_tools_str} +{suggestions} + +Please create these new tools for me, note that you can NOT stop util you have created all the tools and tested them using `run_tool` successfully. + +If ALL tools are created and tested successfully, you can stop and use `case_resolved` tool. Otherwise, you should continue to create the tools. After you have tried your best, you can use `case_not_resolved` tool to give the reason why the tool is not created or tested successfully. + +[IMPORTANT] ALL tools MUST be tested successfully by running the tools using `run_tool` before you stop. +"""}) + response = client.run(tool_editor_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + for i in range(MAX_RETRY): + if content.startswith("Case resolved"): + return content, messages + messages.append({"role": "user", "content": f"""\ +Your task is to create a list of new tools for me, the tools are: +{new_tools_str} + +Please create these new tools for me, note that you can NOT stop util you have created all the tools and tested them using `run_tool` successfully. +The last attempt failed with the following error: {content}, please try again to create the tools. +"""}) + response = client.run(tool_editor_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + if i == MAX_RETRY: + return f"{content}\nSome desired tools are not created or tested successfully with {MAX_RETRY} attempts.", messages + +def agent_editing(agent_creator_agent, client, messages, context_variables, agent_form, output_xml_form, requirements, task, debug, suggestions = ""): + MAX_RETRY = 3 + if suggestions != "": + suggestions = "[IMPORTANT] Here are some suggestions for creating the agent(s): " + suggestions + def case_resolved(task_response: str, context_variables: dict): + """ + Use this tools when the desired agent(s) is created and tested successfully. You can NOT use this tool if the agent(s) is not created or tested successfully by running the agent(s). + """ + return f"Case resolved. The desired agent(s) is created and tested successfully. : {task_response}" + def case_not_resolved(task_response: str, context_variables: dict): + """ + Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired agent(s). You can NOT use this tool before you have tried your best. + """ + return f"Case not resolved. The desired agent(s) is not created or tested successfully. Details: {task_response}" + agent_creator_agent.functions.extend([case_resolved, case_not_resolved]) + messages.append({"role": "user", "content": f"""\ +The user's request to create agent(s) is: {requirements} +Given the completed agent form with XML format: {output_xml_form} +After previous attempts, you have created new tools that required by the desired agent(s). + +Your task is to create the desired agent(s) for me, note that you may create ONE single agent or multiple agents connected by orchestrator agent. + +After you have created the agent(s), you should test the agent(s) by running the agent(s) using `run_agent` tool to complete the user's task: +{task} + +Note that you can NOT stop util you have created the agent(s) and tested it successfully. +{suggestions} +"""}) + response = client.run(agent_creator_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + for i in range(MAX_RETRY): + if content.startswith("Case resolved"): + return content, messages + messages.append({"role": "user", "content": f"""\ +The user's request to create agent(s) is: {requirements} +Given the completed agent form with XML format: {output_xml_form} +After previous attempts, you have created new tools that required by the desired agent(s). + +Your task is to create the desired agent(s) for me, note that you may create ONE single agent or multiple agents connected by orchestrator agent. + +After you have created the agent(s), you should test the agent(s) by running the agent(s) using `run_agent` tool to complete the user's task: +{task} + +Note that you can NOT stop util you have created the agent(s) and tested it successfully. +The last attempt failed with the following error: {content}, please try again to create the desired agent(s). +{suggestions} +"""}) + response = client.run(agent_creator_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + if i == MAX_RETRY: + return f"{content}\nThe desired agent(s) is not created or tested successfully with {MAX_RETRY} attempts.", messages + + +def meta_agent(model: str, context_variables: dict, debug: bool = True): + logger = LoggerManager.get_logger() + # generate agent form + agent_former = get_agent_former_agent(model) + tool_editor_agent = get_tool_editor_agent(model) + agent_creator_agent = get_agent_creator_agent(model) + # enter agent + agent = agent_former + agents = {agent_former.name.replace(' ', '_'): agent_former, tool_editor_agent.name.replace(' ', '_'): tool_editor_agent, agent_creator_agent.name.replace(' ', '_'): agent_creator_agent} + style = Style.from_dict({ + 'bottom-toolbar': 'bg:#333333 #ffffff', + }) + # 创建会话 + session = PromptSession( + completer=UserCompleter(agents.keys()), + complete_while_typing=True, + style=style + ) + client = MetaChain(log_path=logger) + console = Console() + messages = [] + + last_message = "Tell me what do you want to create with `Agent Chain`?" + + while True: + query = session.prompt( + f'{last_message} (type "exit" to quit, press "Enter" to continue): ', + bottom_toolbar=HTML('Prompt: Enter @ to mention Agents'), + ) + if query.strip().lower() == 'exit': + + logo_text = "Agent Chain completed. See you next time! :waving_hand:" + console.print(Panel(logo_text, style="bold salmon1", expand=True)) + break + words = query.split() + console.print(f"[bold green]Your request: {query}[/bold green]", end=" ") + for word in words: + if word.startswith('@') and word[1:] in agents.keys(): + # print(f"[bold magenta]{word}[bold magenta]", end=' ') + agent = agents[word.replace('@', '')] + else: + # print(word, end=' ') + pass + print() + agent_name = agent.name + console.print(f"[bold green][bold magenta]@{agent_name}[/bold magenta] will help you, be patient...[/bold green]") + + match agent_name: + case 'Agent Former Agent': + if query == "": + console.print(f"[bold red]There MUST be a request to create the agent form.[/bold red]") + continue + requirements = query + agent_form, output_xml_form, messages = agent_profiling(agent_former, client, messages, context_variables, requirements, debug) + if agent_form is None: + console.print(f"[bold red]The agent form is not created successfully, please modify your requirements again.[/bold red]") + last_message = "Tell me what do you want to create with `Agent Chain`?" + continue + + agent = tool_editor_agent + console.print(f"[bold green]The agent form is created successfully. [/bold green]") + last_message = "It is time to create the desired tools, do you have any suggestions for creating the tools?" + case 'Tool Editor Agent': + suggestions = query + tool_response, messages = tool_editing(tool_editor_agent, client, messages, context_variables, agent_form, output_xml_form, debug, suggestions) + if tool_response.startswith("Case not resolved"): + console.print(f"[bold red]Some desired tools are not created or tested successfully, please try again.[/bold red]") + agent = tool_editor_agent + last_message = "The tools are not created successfully, do you have any suggestions for creating the tools?" + continue + elif tool_response.startswith("Case resolved"): + agent = agent_creator_agent + console.print(f"[bold green]The tools are created successfully. [/bold green]") + last_message = "It is time to create the desired agent(s), do you have any suggestions for creating the agent(s)?" + else: + raise ValueError(f"Unknown tool response: {tool_response}") + + case 'Agent Creator Agent': + suggestions = query + default_value='Come up with a task for the agent(s) to test your created agent(s), and use `run_agent` tool to test your created agent(s).' # 这里设置你想要的默认值 + task = session.prompt( + 'It is time to create the desired agent(s), what task do you want to complete with the agent(s)? (Press Enter if none): ', + + ) + task = default_value if not task.strip() else task + agent_response, messages = agent_editing(agent_creator_agent, client, messages, context_variables, agent_form, output_xml_form, requirements, task, debug, suggestions) + if agent_response.startswith("Case not resolved"): + console.print(f"[bold red]The agent(s) is not created or tested successfully, please try again.[/bold red]") + agent = agent_creator_agent + last_message = "The agent(s) are not created successfully, do you have any suggestions for creating the agent(s)?" + continue + else: + console.print(f"[bold green]The agent(s) are created successfully. [/bold green]") + last_message = "Tell me what do you want to create with `Agent Chain`?" diff --git a/playground/cli/metachain_meta_workflow.py b/playground/cli/metachain_meta_workflow.py new file mode 100644 index 0000000..a2ada3e --- /dev/null +++ b/playground/cli/metachain_meta_workflow.py @@ -0,0 +1,194 @@ +from metachain import MetaChain +from metachain.util import ask_text, single_select_menu, print_markdown, debug_print, UserCompleter +from prompt_toolkit import PromptSession +from prompt_toolkit.formatted_text import HTML +from prompt_toolkit.styles import Style +from metachain.logger import LoggerManager, MetaChainLogger +from rich.console import Console +from rich.panel import Panel +from metachain.agents.meta_agent.workflow_former import get_workflow_former_agent +from metachain.agents.meta_agent.workflow_creator import get_workflow_creator_agent +import re +from metachain.agents.meta_agent.worklow_form_complie import parse_workflow_form, WorkflowForm + +def workflow_profiling(workflow_former, client, messages, context_variables, requirements, debug): + messages.append({"role": "user", "content": requirements + """ +Directly output the form in the XML format without ANY other text. +"""}) + response = client.run(workflow_former, messages, context_variables, debug=debug) + output_xml_form = response.messages[-1]["content"] + messages.extend(response.messages) + + MAX_RETRY = 3 + for i in range(MAX_RETRY): + workflow_form = parse_workflow_form(output_xml_form) + if isinstance(workflow_form, WorkflowForm): + break + elif isinstance(workflow_form, str): + print(f"Error parsing XML to workflow form: {workflow_form}. Retry {i+1}/{MAX_RETRY}") + messages.append({"role": "user", "content": f"Error parsing XML to workflow form, the error message is: {workflow_form}\nNote that there are some special restrictions for creating workflow form, please try again."}) + response = client.run(workflow_former, messages, context_variables, debug=debug) + output_xml_form = response.messages[-1]["content"] + messages.extend(response.messages) + else: + raise ValueError(f"Unexpected error: {workflow_form}") + return workflow_form, output_xml_form, messages + +def workflow_editing(workflow_creator_agent, client, messages, context_variables, workflow_form, output_xml_form, requirements, task, debug, suggestions = ""): + MAX_RETRY = 3 + if suggestions != "": + suggestions = "[IMPORTANT] Here are some suggestions for creating the workflow: " + suggestions + agents = workflow_form.agents + new_agents = [] + for agent in agents: + if agent.category == "new": + new_agents.append(agent) + + if len(new_agents) != 0: + new_agent_str = "AGENT CREATION INSTRUCTIONS:\nBefore you create the workflow, you need to create the following new agents in the workflow:\n" + for agent in new_agents: + new_agent_str += f"Agent name: {agent.name}\nAgent description: {agent.description}\n" + new_agent_str += f"Agent tools: {agent.tools}\n" if agent.tools else "Agent tools: []\n" + else: + new_agent_str = "" + + def case_resolved(task_response: str, context_variables: dict): + """ + Use this tools when the desired workflow is created and tested successfully. You can NOT use this tool if the workflow is not created or tested successfully by running the workflow. + """ + return f"Case resolved. The desired workflow is created and tested successfully. : {task_response}" + def case_not_resolved(task_response: str, context_variables: dict): + """ + Use this tools when you encounter irresistible errors after trying your best with multiple attempts for creating the desired workflow. You can NOT use this tool before you have tried your best. + """ + return f"Case not resolved. The desired workflow is not created or tested successfully. Details: {task_response}" + workflow_creator_agent.functions.extend([case_resolved, case_not_resolved]) + messages.append({"role": "user", "content": f"""\ +WORKFLOW CREATION INSTRUCTIONS: +The user's request to create workflow is: {requirements} +Given the completed workflow form with XML format: {output_xml_form} + +TASK: +Your task is to create the workflow for me, and then test the workflow by running the workflow using `run_workflow` tool to complete the user's task: +{task} + +{new_agent_str} + +TERMINATION INSTRUCTIONS: +After you have created the workflow and tested it successfully, you can use the `case_resolved` tool to indicate the case is resolved, otherwise you should try your best to create the workflow. And ONLY after you have tried multiple times, you can use the `case_not_resolved` tool to indicate the case is not resolved and give the reason. + +Remember: you can NOT stop util you have created the workflow and tested it successfully. +{suggestions} +"""}) + response = client.run(workflow_creator_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + for i in range(MAX_RETRY): + if content.startswith("Case resolved"): + return content, messages + messages.append({"role": "user", "content": f"""\ +WORKFLOW CREATION INSTRUCTIONS: +The user's request to create workflow is: {requirements} +Given the completed workflow form with XML format: {output_xml_form} + +TASK: +Your task is to create the workflow for me, and then test the workflow by running the workflow using `run_workflow` tool to complete the user's task: +{task} + +{new_agent_str} + +TERMINATION INSTRUCTIONS: +After you have created the workflow and tested it successfully, you can use the `case_resolved` tool to indicate the case is resolved, otherwise you should try your best to create the workflow. And ONLY after you have tried multiple times, you can use the `case_not_resolved` tool to indicate the case is not resolved and give the reason. + +Remember: you can NOT stop util you have created the workflow and tested it successfully. + +FEEDBACK: +The last attempt failed with the following error: {content}, please try again to create the desired workflow. +{suggestions} +"""}) + response = client.run(workflow_creator_agent, messages, context_variables, debug=debug) + content = response.messages[-1]["content"] + if i == MAX_RETRY: + return f"The desired workflow is not created or tested successfully with {MAX_RETRY} attempts.", messages + + + + +def meta_workflow(model: str, context_variables: dict, debug: bool = True): + print('\033[s\033[?25l', end='') # Save cursor position and hide cursor + logger = LoggerManager.get_logger() + workflow_former = get_workflow_former_agent(model) + workflow_creator_agent = get_workflow_creator_agent(model) + + agent = workflow_former + agents = {workflow_former.name.replace(' ', '_'): workflow_former, workflow_creator_agent.name.replace(' ', '_'): workflow_creator_agent} + style = Style.from_dict({ + 'bottom-toolbar': 'bg:#333333 #ffffff', + }) + # 创建会话 + session = PromptSession( + completer=UserCompleter(agents.keys()), + complete_while_typing=True, + style=style + ) + + client = MetaChain(log_path=logger) + console = Console() + messages = [] + + last_message = "Tell me what do you want to create with `Workflow Chain`?" + + while True: + query = session.prompt( + f'{last_message} (type "exit" to quit, press "Enter" to continue): ', + bottom_toolbar=HTML('Prompt: Enter @ to mention Agents'), + ) + if query.strip().lower() == 'exit': + + logo_text = "Workflow Chain completed. See you next time! :waving_hand:" + console.print(Panel(logo_text, style="bold salmon1", expand=True)) + break + words = query.split() + console.print(f"[bold green]Your request: {query}[/bold green]", end=" ") + for word in words: + if word.startswith('@') and word[1:] in agents.keys(): + # print(f"[bold magenta]{word}[bold magenta]", end=' ') + agent = agents[word.replace('@', '')] + else: + # print(word, end=' ') + pass + print() + agent_name = agent.name + console.print(f"[bold green][bold magenta]@{agent_name}[/bold magenta] will help you, be patient...[/bold green]") + match agent_name: + case "Workflow Former Agent": + if query == "": + console.print(f"[bold red]There MUST be a request to create the agent form.[/bold red]") + continue + requirements = query + workflow_form, output_xml_form, messages = workflow_profiling(workflow_former, client, messages, context_variables, requirements, debug) + if workflow_form is None: + console.print(f"[bold red]The workflow form is not created successfully, please modify your requirements again.[/bold red]") + last_message = "Tell me what do you want to create with `Workflow Chain`?" + continue + agent = workflow_creator_agent + context_variables["workflow_form"] = workflow_form + console.print(f"[bold green]The workflow form is created successfully. [/bold green]") + last_message = "It is time to create the desired workflow, do you have any suggestions for creating the workflow?" + case "Workflow Creator Agent": + suggestions = query + default_value='Come up with a task for the workflow to test your created workflow, and use `run_workflow` tool to test your created workflow.' # 这里设置你想要的默认值 + task = session.prompt( + 'It is time to create the desired workflow, what task do you want to complete with the workflow? (Press Enter if none): ', + + ) + task = default_value if not task.strip() else task + agent_response, messages = workflow_editing(workflow_creator_agent, client, messages, context_variables, workflow_form, output_xml_form, requirements, task, debug, suggestions) + if agent_response.startswith("Case not resolved"): + console.print(f"[bold red]The workflow is not created or tested successfully, please try again.[/bold red]") + agent = workflow_creator_agent + else: + console.print(f"[bold green]The workflow is created successfully. [/bold green]") + last_message = "Tell me what do you want to create with `Workflow Chain` next?" + + + \ No newline at end of file diff --git a/process_tool_docs.py b/process_tool_docs.py new file mode 100644 index 0000000..1cdfa2b --- /dev/null +++ b/process_tool_docs.py @@ -0,0 +1,20 @@ +from pandas import read_csv +import json +from rich import print + +df = read_csv("tool_docs.csv") + +rapidapi_tools = df[df['Platform'] == 'RapidAPI']['Tool_Name'].unique() +print("[bold blue]Current RapidAPI tools:[/bold blue]") +print(json.dumps(rapidapi_tools.tolist(), indent=4)) +print("[bold red][IMPORTANT][/bold red] [bold yellow]If you want to use these tools, you should go to RapidAPI and subscribe to them. More convenient tool platforms such as Composio are under development.[/bold yellow]") + +your_api_key = input("Please input your RapidAPI API key:") + +for column in df.columns: + if df[column].dtype == 'object': + df[column] = df[column].str.replace('YOUR_RAPID_API_KEY', your_api_key) + +df.to_csv('tool_docs.csv', index=False) + +print("[bold green]Done![/bold green]") \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 1354610..66551ec 100644 --- a/setup.cfg +++ b/setup.cfg @@ -64,6 +64,7 @@ install_requires = youtube_transcript_api moviepy faster_whisper + sentence_transformers python_requires = >=3.10 diff --git a/tool_docs.csv b/tool_docs.csv new file mode 100644 index 0000000..9a5f285 --- /dev/null +++ b/tool_docs.csv @@ -0,0 +1,510 @@ +Category,Tool_Name,Tool_Description,API_Name,API_Description,Method,API_Details,Required_API_Key,Platform +eCommerce,Real-Time Amazon Data,"Fast and Simple product searches, data and reviews on Amazon.com in real-time.",Search,Search for product offers on Amazon with support for multiple filters and options.,GET,"{'name': 'Search', 'url': 'https://real-time-amazon-data.p.rapidapi.com/search', 'description': 'Search for product offers on Amazon with support for multiple filters and options.', 'method': 'GET', 'required_parameters': [{'name': 'query', 'type': 'STRING', 'description': 'Search query. Supports both free-form text queries or a product asin.', 'default': 'Phone'}], 'optional_parameters': [{'name': 'brand', 'type': 'STRING', 'description': ""Find products with a specific brand. Multiple brands can be specified as a comma (,) separated list. The brand values can be seen from Amazon's search left filters panel, as seen [here](https://www.amazon.com/s?k=phone).\n\n**e.g.** `SAMSUNG`\n**e.g.** `Google,Apple`"", 'default': ''}, {'name': 'min_price', 'type': 'NUMBER', 'description': 'Only return product offers with price greater than a certain value. Specified in the currency of the selected country. For example, in case country=US, a value of *105.34* means *$105.34*.', 'default': ''}, {'name': 'max_price', 'type': 'NUMBER', 'description': 'Only return product offers with price lower than a certain value. Specified in the currency of the selected country. For example, in case country=US, a value of *105.34* means *$105.34*.', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Sets the marketplace country, language and currency. \n\n**Default:** `US`\n\n**Allowed values:** `US, AU, BR, CA, CN, FR, DE, IN, IT, MX, NL, SG, ES, TR, AE, GB, JP`\n', 'default': 'US'}, {'name': 'category_id', 'type': 'STRING', 'description': 'Find products in a specific category / department. Use the **Product Category List** endpoint to get a list of valid categories and their ids for the country specified in the request.\n\n**Default:** `aps` (All Departments)', 'default': 'aps'}, {'name': 'sort_by', 'type': 'ENUM', 'description': 'Return the results in a specific sort order.\n\n**Default:** `RELEVANCE`\n\n**Allowed values:** `RELEVANCE, LOWEST_PRICE, HIGHEST_PRICE, REVIEWS, NEWEST`\n', 'default': ''}, {'name': 'page', 'type': 'STRING', 'description': 'Results page to return.\n\n**Default:** `1`', 'default': '1'}], 'code': 'import requests\n\nurl = ""https://real-time-amazon-data.p.rapidapi.com/search""\nquerystring = {""country"": country, ""query"": query, ""category_id"": category_id, ""page"": page}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-amazon-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total_products': {'type': 'integer'}, 'country': {'type': 'string'}, 'products': {'type': 'array', 'items': {'type': 'object'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +eCommerce,Real-Time Amazon Data,"Fast and Simple product searches, data and reviews on Amazon.com in real-time.",Product Details,"Get additional product information / details such as description, about, rating distribution and specs.",GET,"{'name': 'Product Details', 'url': 'https://real-time-amazon-data.p.rapidapi.com/product-details', 'description': 'Get additional product information / details such as description, about, rating distribution and specs.', 'method': 'GET', 'required_parameters': [{'name': 'asin', 'type': 'STRING', 'description': 'Product ASIN for which to get details. Supports batching of up to 10 ASINs in a single request, separated by comma (e.g. *B08PPDJWC8,B07ZPKBL9V, B08BHXG144*).\n\nNote that each ASIN in a batch request is counted as a single request against the plan quota.', 'default': 'B07ZPKBL9V'}], 'optional_parameters': [{'name': 'country', 'type': 'STRING', 'description': 'Sets the marketplace country, language and currency. \n\n**Default:** `US`\n\n**Allowed values:** `US, AU, BR, CA, CN, FR, DE, IN, IT, MX, NL, SG, ES, TR, AE, GB, JP`\n', 'default': 'US'}], 'code': 'import requests\n\nurl = ""https://real-time-amazon-data.p.rapidapi.com/product-details""\nquerystring = {""country"": country, ""asin"": asin}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-amazon-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'asin': {'type': 'string'}, 'country': {'type': 'string'}, 'about_product': {'type': 'array', 'items': {'type': 'string'}}, 'product_description': {'type': 'string'}, 'product_information': {'type': 'object', 'properties': {'Product Dimensions': {'type': 'string'}, 'Item Weight': {'type': 'string'}, 'ASIN': {'type': 'string'}, 'Item model number': {'type': 'string'}, 'Batteries': {'type': 'string'}, 'OS': {'type': 'string'}, 'Wireless communication technologies': {'type': 'string'}, 'Connectivity technologies': {'type': 'string'}, 'Other display features': {'type': 'string'}, 'Human Interface Input': {'type': 'string'}, 'Other camera features': {'type': 'string'}, 'Form Factor': {'type': 'string'}, 'Color': {'type': 'string'}, 'Battery Power Rating': {'type': 'string'}, 'Whats in the box': {'type': 'string'}, 'Manufacturer': {'type': 'string'}, 'Date First Available': {'type': 'string'}, 'Memory Storage Capacity': {'type': 'string'}, 'Standing screen display size': {'type': 'string'}, 'Ram Memory Installed Size': {'type': 'string'}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +eCommerce,Real-Time Amazon Data,"Fast and Simple product searches, data and reviews on Amazon.com in real-time.",Product Reviews,Get and paginate through all product reviews on Amazon.,GET,"{'name': 'Product Reviews', 'url': 'https://real-time-amazon-data.p.rapidapi.com/product-reviews', 'description': 'Get and paginate through all product reviews on Amazon.', 'method': 'GET', 'required_parameters': [{'name': 'asin', 'type': 'STRING', 'description': 'Product asin for which to get reviews.', 'default': 'B07ZPKN6YR'}], 'optional_parameters': [{'name': 'query', 'type': 'STRING', 'description': 'Find reviews matching a search query.', 'default': ''}, {'name': 'sort_by', 'type': 'ENUM', 'description': 'Return reviews in a specific sort order.\n\n**Default:** `TOP_REVIEWS`\n\n**Allowed values:** `TOP_REVIEWS, MOST_RECENT`\n', 'default': ''}, {'name': 'verified_purchases_only', 'type': 'BOOLEAN', 'description': 'Only return reviews by reviewers who made a verified purchase.', 'default': 'false'}, {'name': 'page_size', 'type': 'NUMBER', 'description': 'Results page size.\n\n**Allowed values:** `1-20`\n\n**Default:** `10`', 'default': '10'}, {'name': 'page', 'type': 'NUMBER', 'description': 'Results page to return.\n\n**Default:** `1`', 'default': '1'}, {'name': 'star_rating', 'type': 'ENUM', 'description': 'Only return reviews with a specific star rating.\n\n**Default:** `ALL`\n\n**Allowed values:** `ALL, 5_STARS, 4_STARS, 3_STARS, 2_STARS, 1_STARS, POSITIVE, CRITICAL`\n', 'default': ''}, {'name': 'images_or_videos_only', 'type': 'BOOLEAN', 'description': 'Only return reviews containing images and / or videos.', 'default': 'false'}, {'name': 'country', 'type': 'STRING', 'description': 'Sets the marketplace country, language and currency. \n\n**Default:** `US`\n\n**Allowed values:** `US, AU, BR, CA, CN, FR, DE, IN, IT, MX, NL, SG, ES, TR, AE, GB, JP`\n', 'default': 'US'}], 'code': 'import requests\n\nurl = ""https://real-time-amazon-data.p.rapidapi.com/product-reviews""\nquerystring = {""asin"": asin, ""verified_purchases_only"": verified_purchases_only, ""page_size"": page_size, ""page"": page, ""images_or_videos_only"": images_or_videos_only, ""country"": country}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-amazon-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'asin': {'type': 'string'}, 'total_reviews': {'type': 'integer'}, 'total_ratings': {'type': 'integer'}, 'country': {'type': 'string'}, 'reviews': {'type': 'array', 'items': {'type': 'object'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +eCommerce,Real-Time Amazon Data,"Fast and Simple product searches, data and reviews on Amazon.com in real-time.",Product Category List,Get Amazon product categories (per country / marketplace).,GET,"{'name': 'Product Category List', 'url': 'https://real-time-amazon-data.p.rapidapi.com/product-category-list', 'description': 'Get Amazon product categories (per country / marketplace).', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'country', 'type': 'STRING', 'description': 'Sets the marketplace country, language and currency. \n\n**Default:** `US`\n\n**Allowed values:** `US, AU, BR, CA, CN, FR, DE, IN, IT, MX, NL, SG, ES, TR, AE, GB, JP`\n', 'default': 'US'}], 'code': 'import requests\n\nurl = ""https://real-time-amazon-data.p.rapidapi.com/product-category-list""\nquerystring = {""country"": country}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-amazon-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +eCommerce,Real-Time Amazon Data,"Fast and Simple product searches, data and reviews on Amazon.com in real-time.",Product Offers,"Get top 10 offers of a specific product on Amazon by its asin, the first offer in the list is the pinned offer returned by the **Search** endpoint. Supports filtering by product condition.",GET,"{'name': 'Product Offers', 'url': 'https://real-time-amazon-data.p.rapidapi.com/product-offers', 'description': 'Get top 10 offers of a specific product on Amazon by its asin, the first offer in the list is the pinned offer returned by the **Search** endpoint. Supports filtering by product condition.', 'method': 'GET', 'required_parameters': [{'name': 'asin', 'type': 'STRING', 'description': 'Product ASIN for which to get offers. Supports batching of up to 10 ASINs in a single request, separated by comma (e.g. *B08PPDJWC8,B07ZPKBL9V, B08BHXG144*).\n\nNote that each ASIN in a batch request is counted as a single request against the plan quota.', 'default': 'B07ZPKBL9V'}], 'optional_parameters': [{'name': 'delivery', 'type': 'STRING', 'description': '[EXPERIMENTAL]\nFind products with specific delivery option, specified as a comma delimited list of the following values: `PRIME_ELIGIBLE,FREE_DELIVERY`.\n\n**e.g.** `FREE_DELIVERY`\n**e.g.** `PRIME_ELIGIBLE,FREE_DELIVERY`\n', 'default': ''}, {'name': 'limit', 'type': 'NUMBER', 'description': 'Maximum number of offers to return.\n\n**Default:** `100`', 'default': '100'}, {'name': 'product_condition', 'type': 'STRING', 'description': 'Find products in specific conditions, specified as a comma delimited list of the following values: `NEW, USED_LIKE_NEW, USED_VERY_GOOD, USED_GOOD, USED_ACCEPTABLE`.\n\n**e.g.** `NEW,USED_LIKE_NEW`\n**e.g.** `USED_VERY_GOOD,USED_GOOD,USED_LIKE_NEW`\n', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Sets the marketplace country, language and currency. \n\n**Default:** `US`\n\n**Allowed values:** `US, AU, BR, CA, CN, FR, DE, IN, IT, MX, NL, SG, ES, TR, AE, GB, JP`\n', 'default': 'US'}], 'code': 'import requests\n\nurl = ""https://real-time-amazon-data.p.rapidapi.com/product-offers""\nquerystring = {""limit"": limit, ""asin"": asin, ""country"": country}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-amazon-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'asin': {'type': 'string'}, 'country': {'type': 'string'}, 'product_offers': {'type': 'array', 'items': {'type': 'object'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Stock Quote,"Get stock market quote. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.",GET,"{'name': 'Stock Quote', 'url': 'https://real-time-finance-data.p.rapidapi.com/stock-quote', 'description': 'Get stock market quote. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.', 'method': 'GET', 'required_parameters': [{'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol / ticker.\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`^DJI`*\n**e.g.** *`VTSAX`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/stock-quote""\nquerystring = {""language"": language, ""symbol"": symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'open': {'type': 'number'}, 'high': {'type': 'number'}, 'low': {'type': 'number'}, 'volume': {'type': 'integer'}, 'previous_close': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'pre_or_post_market': {'type': 'number'}, 'pre_or_post_market_change': {'type': 'number'}, 'pre_or_post_market_change_percent': {'type': 'number'}, 'last_update_utc': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Currency News,Get the latest news related to a specific currency / forex or crypto.,GET,"{'name': 'Currency News', 'url': 'https://real-time-finance-data.p.rapidapi.com/currency-news', 'description': 'Get the latest news related to a specific currency / forex or crypto.', 'method': 'GET', 'required_parameters': [{'name': 'from_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217). For example: *USD*.', 'default': 'USD'}, {'name': 'to_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217). For example: *EUR*.', 'default': 'EUR'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/currency-news""\nquerystring = {""language"": language, ""from_symbol"": from_symbol, ""to_symbol"": to_symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'from_symbol': {'type': 'string'}, 'to_symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'news': {'type': 'array', 'items': {'type': 'object', 'properties': {'article_title': {'type': 'string'}, 'article_url': {'type': 'string'}, 'article_photo_url': {'type': 'string'}, 'source': {'type': 'string'}, 'post_time_utc': {'type': 'string'}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Currency Exchange Rate,Get currency / forex or crypto exchange rates.,GET,"{'name': 'Currency Exchange Rate', 'url': 'https://real-time-finance-data.p.rapidapi.com/currency-exchange-rate', 'description': 'Get currency / forex or crypto exchange rates.', 'method': 'GET', 'required_parameters': [{'name': 'from_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217) to convert. For example: *USD*.', 'default': 'USD'}, {'name': 'to_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217) to convert to. For example: *EUR*.', 'default': 'EUR'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/currency-exchange-rate""\nquerystring = {""language"": language, ""from_symbol"": from_symbol, ""to_symbol"": to_symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'from_symbol': {'type': 'string'}, 'to_symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'exchange_rate': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Currency Time Series,"Get forex time series for the following periods: **1 day**, **5 days**, **1 month**, **6 months**, **year-to-date**, **1 year**, **5 years** and **all times (max)**.",GET,"{'name': 'Currency Time Series', 'url': 'https://real-time-finance-data.p.rapidapi.com/currency-time-series', 'description': 'Get forex time series for the following periods: **1 day**, **5 days**, **1 month**, **6 months**, **year-to-date**, **1 year**, **5 years** and **all times (max)**.', 'method': 'GET', 'required_parameters': [{'name': 'period', 'type': 'ENUM', 'description': 'Period for which to return time series.\n\n**Periods:**\n- **1D** - 1 day.\n- **5D** - 5 days.\n- **1M** - 1 month.\n- **6M** - 6 months.\n- **YTD** - year-to-date.\n- **1Y** - 1 year.\n- **5Y** - 5 years.\n- **MAX** - all times.', 'default': ''}, {'name': 'to_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217). For example: *EUR*.', 'default': 'EUR'}, {'name': 'from_symbol', 'type': 'STRING', 'description': 'A 3-Letter currency code / symbol (ISO 4217). For example: *USD*.', 'default': 'USD'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/currency-time-series""\nquerystring = {""language"": language, ""period"": period, ""to_symbol"": to_symbol, ""from_symbol"": from_symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'from_symbol': {'type': 'string'}, 'to_symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'exchange_rate': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'time_series': {'type': 'object', 'properties': {'2022-10-20 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'integer'}, 'change_percent': {'type': 'integer'}}}, '2022-10-21 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-22 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-23 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-24 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-25 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-26 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-27 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-28 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-29 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-30 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-10-31 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-01 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-02 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-03 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-04 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-05 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-06 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-07 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-08 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-09 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-10 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-11 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-12 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-13 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-14 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-15 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-16 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-17 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-18 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-19 23:58:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}, '2022-11-20 09:52:00': {'type': 'object', 'properties': {'exchange_rate': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}}}}}, 'utc_offset_sec': {'type': 'integer'}, 'interval_sec': {'type': 'integer'}, 'period': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Stock / Company Overview,"Get stock / public company details. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*. Returns company details for the *stock* type.",GET,"{'name': 'Stock / Company Overview', 'url': 'https://real-time-finance-data.p.rapidapi.com/stock-overview', 'description': 'Get stock / public company details. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*. Returns company details for the *stock* type.', 'method': 'GET', 'required_parameters': [{'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol (ticker).\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`^DJI`*\n**e.g.** *`VTSAX`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/stock-overview""\nquerystring = {""symbol"": symbol, ""language"": language}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'open': {'type': 'number'}, 'high': {'type': 'number'}, 'low': {'type': 'number'}, 'volume': {'type': 'integer'}, 'previous_close': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'pre_or_post_market': {'type': 'number'}, 'pre_or_post_market_change': {'type': 'number'}, 'pre_or_post_market_change_percent': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'country_code': {'type': 'string'}, 'exchange': {'type': 'string'}, 'exchange_open': {'type': 'string'}, 'exchange_close': {'type': 'string'}, 'timezone': {'type': 'string'}, 'utc_offset_sec': {'type': 'integer'}, 'currency': {'type': 'string'}, 'about': {'type': 'string'}, 'year_low': {'type': 'number'}, 'year_high': {'type': 'number'}, 'primary_exchange': {'type': 'string'}, 'company_website': {'type': 'string'}, 'company_country_code': {'type': 'string'}, 'company_country': {'type': 'string'}, 'company_state': {'type': 'string'}, 'company_city': {'type': 'string'}, 'company_street_address': {'type': 'string'}, 'company_ceo': {'type': 'string'}, 'company_employees': {'type': 'integer'}, 'company_cdp_score': {'type': 'string'}, 'company_founded_date': {'type': 'string'}, 'company_cdp_url': {'type': 'string'}, 'avg_volume': {'type': 'integer'}, 'company_pe_ratio': {'type': 'number'}, 'company_market_cap': {'type': 'number'}, 'company_dividend_yield': {'type': 'number'}, 'wikipedia_url': {'type': 'string'}, 'google_mid': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Company Cash Flow,Get public company's **quarterly** or **annual** cash flow information. Supports the *stock* type only.,GET,"{'name': 'Company Cash Flow', 'url': 'https://real-time-finance-data.p.rapidapi.com/company-cash-flow', 'description': ""Get public company's **quarterly** or **annual** cash flow information. Supports the *stock* type only."", 'method': 'GET', 'required_parameters': [{'name': 'period', 'type': 'ENUM', 'description': ""Period for which to get company's cash flow.\n\n**Periods**: *QUARTERLY*, *ANNUAL*."", 'default': ''}, {'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol (ticker).\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`AAPL`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/company-cash-flow""\nquerystring = {""period"": period, ""language"": language, ""symbol"": symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'cash_flow': {'type': 'array', 'items': {'type': 'object', 'properties': {'year': {'type': 'integer'}, 'quarter': {'type': 'integer'}, 'currency': {'type': 'string'}, 'net_income': {'type': 'integer'}, 'cash_from_operations': {'type': 'integer'}, 'cash_from_investing': {'type': 'integer'}, 'cash_from_financing': {'type': 'integer'}, 'net_change_in_cash': {'type': 'integer'}, 'free_cash_flow': {'type': 'integer'}}}}, 'period': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Company Balance Sheet,Get public company's **quarterly** or **annual** balance sheet. Supports the *stock* type only.,GET,"{'name': 'Company Balance Sheet', 'url': 'https://real-time-finance-data.p.rapidapi.com/company-balance-sheet', 'description': ""Get public company's **quarterly** or **annual** balance sheet. Supports the *stock* type only."", 'method': 'GET', 'required_parameters': [{'name': 'period', 'type': 'ENUM', 'description': ""Period for which to get company's balance sheet.\n\n**Periods**: *QUARTERLY*, *ANNUAL*."", 'default': ''}, {'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol (ticker).\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`AAPL`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/company-balance-sheet""\nquerystring = {""language"": language, ""period"": period, ""symbol"": symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'balance_sheet': {'type': 'array', 'items': {'type': 'object', 'properties': {'year': {'type': 'integer'}, 'currency': {'type': 'string'}, 'cash_and_short_term_investments': {'type': 'number'}, 'total_assets': {'type': 'integer'}, 'total_liabilities': {'type': 'integer'}, 'total_equity': {'type': 'integer'}, 'shares_outstanding': {'type': 'integer'}, 'price_to_book': {'type': 'number'}, 'return_on_assets_percent': {'type': 'number'}, 'return_on_capital_percent': {'type': 'number'}}}}, 'period': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Company Income Statement,Get public company's **quarterly** or **annual** income statement. Supports the *stock* type only.,GET,"{'name': 'Company Income Statement', 'url': 'https://real-time-finance-data.p.rapidapi.com/company-income-statement', 'description': ""Get public company's **quarterly** or **annual** income statement. Supports the *stock* type only."", 'method': 'GET', 'required_parameters': [{'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol (ticker).\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`AAPL`*', 'default': 'AAPL:NASDAQ'}, {'name': 'period', 'type': 'ENUM', 'description': ""Period for which to get company's income statement.\n\n**Periods**: *QUARTERLY*, *ANNUAL*."", 'default': ''}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/company-income-statement""\nquerystring = {""symbol"": symbol, ""language"": language, ""period"": period}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'income_statement': {'type': 'array', 'items': {'type': 'object', 'properties': {'year': {'type': 'integer'}, 'quarter': {'type': 'integer'}, 'currency': {'type': 'string'}, 'revenue': {'type': 'integer'}, 'operating_expense': {'type': 'integer'}, 'net_income': {'type': 'integer'}, 'net_profit_margin': {'type': 'number'}, 'earnings_per_share': {'type': 'number'}, 'EBITDA': {'type': 'integer'}, 'effective_task_rate_percent': {'type': 'number'}}}}, 'period': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Stock News,"Get the latest news related to a specific stock. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.",GET,"{'name': 'Stock News', 'url': 'https://real-time-finance-data.p.rapidapi.com/stock-news', 'description': 'Get the latest news related to a specific stock. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.', 'method': 'GET', 'required_parameters': [{'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol / ticker.\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`^DJI`*\n**e.g.** *`VTSAX`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/stock-news""\nquerystring = {""symbol"": symbol, ""language"": language}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'news': {'type': 'array', 'items': {'type': 'object', 'properties': {'article_title': {'type': 'string'}, 'article_url': {'type': 'string'}, 'article_photo_url': {'type': 'string'}, 'source': {'type': 'string'}, 'post_time_utc': {'type': 'string'}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Stock Time Series,"Get stock time series and key news events for the following periods: **1 day**, **5 days**, **1 month**, **6 months**, **year-to-date**, **1 year**, **5 years** and **all times (max)**. In addition, the endpoints returns the key news events that affected the stock prices in the specified period. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.",GET,"{'name': 'Stock Time Series', 'url': 'https://real-time-finance-data.p.rapidapi.com/stock-time-series', 'description': 'Get stock time series and key news events for the following periods: **1 day**, **5 days**, **1 month**, **6 months**, **year-to-date**, **1 year**, **5 years** and **all times (max)**. In addition, the endpoints returns the key news events that affected the stock prices in the specified period. Supports all stock types: *stock*, *index*, *mutual fund* and *futures*.', 'method': 'GET', 'required_parameters': [{'name': 'period', 'type': 'ENUM', 'description': 'Period for which to return time series and key events.\n\n**Periods:**\n- **1D** - 1 day.\n- **5D** - 5 days.\n- **1M** - 1 month.\n- **6M** - 6 months.\n- **YTD** - year-to-date.\n- **1Y** - 1 year.\n- **5Y** - 5 years.\n- **MAX** - all times.', 'default': ''}, {'name': 'symbol', 'type': 'STRING', 'description': 'Stock symbol (ticker).\n\n**e.g.** *`MSFT:NASDAQ`*\n**e.g.** *`MSFT`*\n**e.g.** *`^DJI`*\n**e.g.** *`VTSAX`*', 'default': 'AAPL:NASDAQ'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/stock-time-series""\nquerystring = {""language"": language, ""period"": period, ""symbol"": symbol}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'pre_or_post_market': {'type': 'number'}, 'pre_or_post_market_change': {'type': 'number'}, 'pre_or_post_market_change_percent': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'time_series': {'type': 'object', 'properties': {'2022-11-14 09:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'integer'}, 'change_percent': {'type': 'integer'}, 'volume': {'type': 'integer'}}}, '2022-11-14 10:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 10:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 11:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 11:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 12:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 12:30:00': {'type': 'object', 'properties': {'price': {'type': 'integer'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 13:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 13:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 14:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 14:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 15:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 15:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-14 16:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 09:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 10:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 10:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 11:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 11:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 12:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 12:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 13:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 13:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 14:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 14:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 15:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 15:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-15 16:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 09:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 10:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 10:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 11:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 11:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 12:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 12:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 13:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 13:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 14:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 14:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 15:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 15:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-16 16:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 09:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 10:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 10:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 11:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 11:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 12:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 12:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 13:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 13:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 14:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 14:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 15:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 15:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-17 16:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 09:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 10:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 10:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 11:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 11:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 12:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 12:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 13:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 13:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 14:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 14:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 15:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 15:30:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}, '2022-11-18 16:00:00': {'type': 'object', 'properties': {'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'volume': {'type': 'integer'}}}}}, 'key_events': {'type': 'array'}, 'utc_offset_sec': {'type': 'integer'}, 'interval_sec': {'type': 'integer'}, 'period': {'type': 'string'}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Search,"Find stocks, indices, mutual funds, futures, currency / forex / crypto using a free-form query or symbol as seen on Google Finance - https://www.google.com/finance.",GET,"{'name': 'Search', 'url': 'https://real-time-finance-data.p.rapidapi.com/search', 'description': 'Find stocks, indices, mutual funds, futures, currency / forex / crypto using a free-form query or symbol as seen on Google Finance - https://www.google.com/finance.', 'method': 'GET', 'required_parameters': [{'name': 'query', 'type': 'STRING', 'description': 'Free-form search query.\n\n**e.g.** *`AAPL`*\n**e.g.** *`Microsoft NASDAQ`*\n**e.g.** *`Dow Johns`*\n**e.g.** *`USD to EUR`*', 'default': 'Apple'}], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/search""\nquerystring = {""language"": language, ""query"": query}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'stock': {'type': 'array', 'items': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'country_code': {'type': 'string'}, 'exchange': {'type': 'string'}, 'exchange_open': {'type': 'string'}, 'exchange_close': {'type': 'string'}, 'timezone': {'type': 'string'}, 'utc_offset_sec': {'type': 'integer'}, 'currency': {'type': 'string'}, 'google_mid': {'type': 'string'}}}}, 'index': {'type': 'array', 'items': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'exchange_open': {'type': 'string'}, 'exchange_close': {'type': 'string'}, 'timezone': {'type': 'string'}, 'utc_offset_sec': {'type': 'integer'}, 'google_mid': {'type': 'string'}}}}, 'mutual_fund': {'type': 'array', 'items': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'name': {'type': 'string'}, 'type': {'type': 'string'}, 'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'currency': {'type': 'string'}, 'google_mid': {'type': 'string'}}}}, 'currency': {'type': 'array', 'items': {'type': 'object', 'properties': {'from_symbol': {'type': 'string'}, 'to_symbol': {'type': 'string'}, 'from_currency_name': {'type': 'string'}, 'to_currency_name': {'type': 'string'}, 'type': {'type': 'string'}, 'exchange_rate': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'google_mid': {'type': 'string'}}}}, 'futures': {'type': 'array'}, 'ETF': {'type': 'array', 'items': {'type': 'object', 'properties': {'symbol': {'type': 'string'}, 'type': {'type': 'string'}, 'name': {'type': 'string'}, 'price': {'type': 'number'}, 'change': {'type': 'number'}, 'change_percent': {'type': 'number'}, 'previous_close': {'type': 'number'}, 'last_update_utc': {'type': 'string'}, 'google_mid': {'type': 'string'}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Finanace,Real-Time Finance Data,"Get stocks / market quotes and trends, ETF, international exchanges / forex, crypto, related news and analytics in real-time.",Market Trends,"Get the latest market trends and relevant news. Supported trends: **Most Active**, **Gainers**, **Losers**, **Crypto**, **Currencies** and **Climate Leaders**.",GET,"{'name': 'Market Trends', 'url': 'https://real-time-finance-data.p.rapidapi.com/market-trends', 'description': 'Get the latest market trends and relevant news. Supported trends: **Most Active**, **Gainers**, **Losers**, **Crypto**, **Currencies** and **Climate Leaders**.', 'method': 'GET', 'required_parameters': [{'name': 'trend_type', 'type': 'ENUM', 'description': 'Trend type.\n\n**Supported trend types:**\n\n- *MARKET_INDEXES*\n- *MOST_ACTIVE*\n- *GAINERS*\n- *LOSERS*\n- *CRYPTO*\n- *CURRENCIES*\n- *CLIMATE_LEADERS*', 'default': ''}], 'optional_parameters': [{'name': 'country', 'type': 'STRING', 'description': 'The country for which to get trends, specified as a 2-letter country code - see [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).\n\n**Default**: *us*.', 'default': 'us'}, {'name': 'language', 'type': 'STRING', 'description': 'The language to use for the results, specified as a 2-letter language code - see [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).\n\n**Default**: *en*.', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://real-time-finance-data.p.rapidapi.com/market-trends""\nquerystring = {""country"": country, ""trend_type"": trend_type, ""language"": language}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""real-time-finance-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'request_id': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'trends': {'type': 'array', 'items': {'type': 'object'}}, 'news': {'type': 'array', 'items': {'type': 'object', 'properties': {'article_title': {'type': 'string'}, 'article_url': {'type': 'string'}, 'article_photo_url': {'type': 'string'}, 'source': {'type': 'string'}, 'post_time_utc': {'type': 'string'}, 'stocks_in_news': {'type': 'array', 'items': {'type': 'object'}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Entertainment,YTStream - Download YouTube Videos,It is a web service that empowers its users to download or stream Youtube videos. It is open for Freemium use. It can be used to embed your favorite Youtube videos anywhere and also if you want to deal with deeper details of the video and want to play it yourself then you can use the video info JSON object provided by the API and do whatever you want.,Download/Stream,"Return the download information of the video, including the download URL (in the key 'format'), the video title, description, and other details.",GET,"{'name': 'Download/Stream', 'url': 'https://ytstream-download-youtube-videos.p.rapidapi.com/dl', 'description': ""Return the download information of the video, including the download URL (in the key 'format'), the video title, description, and other details."", 'method': 'GET', 'required_parameters': [{'name': 'id', 'type': 'STRING', 'description': 'Youtube Video Id', 'default': 'UxxajLWwzqY'}], 'optional_parameters': [{'name': 'cgeo', 'type': 'STRING', 'description': 'Country code in ISO 3166 format of the end user. It is important to provide geo of the end user to get the best speed and direct links. Not providing cgeo may lead to extra quota cost in case of proxied link. If links are used in the server, then cgeo will be the geo of the server.'}], 'code': 'import requests\n\nurl = ""https://ytstream-download-youtube-videos.p.rapidapi.com/dl""\nquerystring = {""id"":""UxxajLWwzqY""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""ytstream-download-youtube-videos.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players Statistics per game id,"Get statistics from one or more players. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players Statistics per game id', 'url': 'https://api-nba-v1.p.rapidapi.com/players/statistics', 'description': 'Get statistics from one or more players.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'game', 'type': 'NUMBER', 'description': '', 'default': '8133'}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players/statistics""\nquerystring = {""game"": game}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'game': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Standings per team and season,"Get the standings for a league & season. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest + +> Parameters `league` & `season` are required.",GET,"{'name': 'Standings per team and season', 'url': 'https://api-nba-v1.p.rapidapi.com/standings', 'description': 'Get the standings for a league & season.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest\n\n> Parameters `league` & `season` are required.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'league', 'type': 'STRING', 'description': '', 'default': 'standard'}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/standings""\nquerystring = {""league"": league, ""team"": team, ""season"": season}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'team': {'type': 'string'}, 'league': {'type': 'string'}, 'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'conference': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'division': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'gamesBehind': {'type': 'string'}}}, 'win': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'loss': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'gamesBehind': {'type': 'string'}, 'streak': {'type': 'integer'}, 'winStreak': {'type': 'boolean'}, 'tieBreakerPoints': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Standings per division and season,"Get the standings for a league & season. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest + +> Parameters `league` & `season` are required.",GET,"{'name': 'Standings per division and season', 'url': 'https://api-nba-v1.p.rapidapi.com/standings', 'description': 'Get the standings for a league & season.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest\n\n> Parameters `league` & `season` are required.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': 'southeast'}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': 'standard'}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/standings""\nquerystring = {""season"": season, ""division"": division, ""league"": league}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'season': {'type': 'string'}, 'league': {'type': 'string'}, 'division': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'conference': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'division': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'gamesBehind': {'type': 'string'}}}, 'win': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'loss': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'gamesBehind': {'type': 'string'}, 'streak': {'type': 'integer'}, 'winStreak': {'type': 'boolean'}, 'tieBreakerPoints': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players,"Get data about players. + +The player `id` are **unique** in the API and players keep it among all seasons. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players', 'url': 'https://api-nba-v1.p.rapidapi.com/players', 'description': 'Get data about players.\n\nThe player `id` are **unique** in the API and players keep it among all seasons.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'country', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': '1'}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players""\nquerystring = {""season"": season, ""team"": team}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams per id,"Get data about teams. + +The team `id` are **unique** in the API and teams keep it among all seasons. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest",GET,"{'name': 'Teams per id', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Get data about teams.\n\nThe team `id` are **unique** in the API and teams keep it among all seasons.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'code', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\nquerystring = {""id"": id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'id': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'city': {'type': 'string'}, 'logo': {'type': 'string'}, 'allStar': {'type': 'boolean'}, 'nbaFranchise': {'type': 'boolean'}, 'leagues': {'type': 'object', 'properties': {'standard': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'vegas': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'utah': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'sacramento': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games per team and season,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games per team and season', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""team"": team, ""season"": season}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'team': {'type': 'string'}, 'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games per season,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games per season', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""season"": season}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games per id,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games per id', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '8899'}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""id"": id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'id': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'date': {'type': 'object', 'properties': {'start': {'type': 'string'}, 'end': {'type': 'string'}, 'duration': {'type': 'string'}}}, 'stage': {'type': 'integer'}, 'status': {'type': 'object', 'properties': {'clock': {'type': 'null'}, 'halftime': {'type': 'boolean'}, 'short': {'type': 'integer'}, 'long': {'type': 'string'}}}, 'periods': {'type': 'object', 'properties': {'current': {'type': 'integer'}, 'total': {'type': 'integer'}, 'endOfPeriod': {'type': 'boolean'}}}, 'arena': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}}}, 'teams': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'home': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}}}, 'scores': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}, 'home': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}}}, 'officials': {'type': 'array', 'items': {'type': 'string'}}, 'timesTied': {'type': 'integer'}, 'leadChanges': {'type': 'integer'}, 'nugget': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games between two teams,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games between two teams', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': '1-2'}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""h2h"": h2h}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'h2h': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players Statistics per player and season,"Get statistics from one or more players. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players Statistics per player and season', 'url': 'https://api-nba-v1.p.rapidapi.com/players/statistics', 'description': 'Get statistics from one or more players.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'game', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2020'}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '236'}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players/statistics""\nquerystring = {""season"": season, ""id"": id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'season': {'type': 'string'}, 'id': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'player': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'firstname': {'type': 'string'}, 'lastname': {'type': 'string'}}}, 'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'game': {'type': 'object', 'properties': {'id': {'type': 'integer'}}}, 'points': {'type': 'integer'}, 'pos': {'type': 'string'}, 'min': {'type': 'string'}, 'fgm': {'type': 'integer'}, 'fga': {'type': 'integer'}, 'fgp': {'type': 'string'}, 'ftm': {'type': 'integer'}, 'fta': {'type': 'integer'}, 'ftp': {'type': 'string'}, 'tpm': {'type': 'integer'}, 'tpa': {'type': 'integer'}, 'tpp': {'type': 'string'}, 'offReb': {'type': 'integer'}, 'defReb': {'type': 'integer'}, 'totReb': {'type': 'integer'}, 'assists': {'type': 'integer'}, 'pFouls': {'type': 'integer'}, 'steals': {'type': 'integer'}, 'turnovers': {'type': 'integer'}, 'blocks': {'type': 'integer'}, 'plusMinus': {'type': 'string'}, 'comment': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players Statistics per team and season,"Get statistics from one or more players. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players Statistics per team and season', 'url': 'https://api-nba-v1.p.rapidapi.com/players/statistics', 'description': 'Get statistics from one or more players.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2020'}, {'name': 'game', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players/statistics""\nquerystring = {""season"": season, ""team"": team}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'team': {'type': 'string'}, 'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Search players,Search a player by lastname.,GET,"{'name': 'Search players', 'url': 'https://api-nba-v1.p.rapidapi.com/players', 'description': 'Search a player by lastname.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': 'james'}, {'name': 'country', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players""\nquerystring = {""search"": search}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'search': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Search teams,Search team by name.,GET,"{'name': 'Search teams', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Search team by name.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'code', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': 'atl'}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\nquerystring = {""search"": search}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'search': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'city': {'type': 'string'}, 'logo': {'type': 'string'}, 'allStar': {'type': 'boolean'}, 'nbaFranchise': {'type': 'boolean'}, 'leagues': {'type': 'object', 'properties': {'standard': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'vegas': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'utah': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'sacramento': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Standings per conference and season,"Get the standings for a league & season. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest + +> Parameters `league` & `season` are required.",GET,"{'name': 'Standings per conference and season', 'url': 'https://api-nba-v1.p.rapidapi.com/standings', 'description': 'Get the standings for a league & season.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest\n\n> Parameters `league` & `season` are required.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': 'standard'}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': 'east'}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/standings""\nquerystring = {""league"": league, ""season"": season, ""conference"": conference}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'season': {'type': 'string'}, 'league': {'type': 'string'}, 'conference': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'conference': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'division': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'gamesBehind': {'type': 'string'}}}, 'win': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'loss': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'gamesBehind': {'type': 'string'}, 'streak': {'type': 'integer'}, 'winStreak': {'type': 'boolean'}, 'tieBreakerPoints': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players per country,"Get data about players. + +The player `id` are **unique** in the API and players keep it among all seasons. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players per country', 'url': 'https://api-nba-v1.p.rapidapi.com/players', 'description': 'Get data about players.\n\nThe player `id` are **unique** in the API and players keep it among all seasons.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': '', 'default': 'spain'}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players""\nquerystring = {""country"": country}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'country': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players per id,"Get data about players. + +The player `id` are **unique** in the API and players keep it among all seasons. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players per id', 'url': 'https://api-nba-v1.p.rapidapi.com/players', 'description': 'Get data about players.\n\nThe player `id` are **unique** in the API and players keep it among all seasons.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '1'}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players""\nquerystring = {""id"": id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'id': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'firstname': {'type': 'string'}, 'lastname': {'type': 'string'}, 'birth': {'type': 'object', 'properties': {'date': {'type': 'string'}, 'country': {'type': 'string'}}}, 'nba': {'type': 'object', 'properties': {'start': {'type': 'integer'}, 'pro': {'type': 'integer'}}}, 'height': {'type': 'object', 'properties': {'feets': {'type': 'null'}, 'inches': {'type': 'null'}, 'meters': {'type': 'null'}}}, 'weight': {'type': 'object', 'properties': {'pounds': {'type': 'null'}, 'kilograms': {'type': 'null'}}}, 'college': {'type': 'null'}, 'affiliation': {'type': 'string'}, 'leagues': {'type': 'object', 'properties': {'standard': {'type': 'object', 'properties': {'jersey': {'type': 'integer'}, 'active': {'type': 'boolean'}, 'pos': {'type': 'null'}}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Players per team and season,"Get data about players. + +The player `id` are **unique** in the API and players keep it among all seasons. + +> This endpoint requires at least one parameter.",GET,"{'name': 'Players per team and season', 'url': 'https://api-nba-v1.p.rapidapi.com/players', 'description': 'Get data about players.\n\nThe player `id` are **unique** in the API and players keep it among all seasons.\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'country', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/players""\nquerystring = {""season"": season, ""team"": team}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams per code,"Get data about teams. + +The team `id` are **unique** in the API and teams keep it among all seasons. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest",GET,"{'name': 'Teams per code', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Get data about teams.\n\nThe team `id` are **unique** in the API and teams keep it among all seasons.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'code', 'type': 'STRING', 'description': '', 'default': 'ATL'}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\nquerystring = {""code"": code}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'code': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'city': {'type': 'string'}, 'logo': {'type': 'string'}, 'allStar': {'type': 'boolean'}, 'nbaFranchise': {'type': 'boolean'}, 'leagues': {'type': 'object', 'properties': {'standard': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'vegas': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'utah': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}, 'sacramento': {'type': 'object', 'properties': {'conference': {'type': 'string'}, 'division': {'type': 'string'}}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams per division,"Get data about teams. + +The team `id` are **unique** in the API and teams keep it among all seasons. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest",GET,"{'name': 'Teams per division', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Get data about teams.\n\nThe team `id` are **unique** in the API and teams keep it among all seasons.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'code', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': 'Southeast'}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\nquerystring = {""division"": division}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'division': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'city': {'type': 'string'}, 'logo': {'type': 'string'}, 'allStar': {'type': 'boolean'}, 'nbaFranchise': {'type': 'boolean'}, 'leagues': {'type': 'object'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams per conference,"Get data about teams. + +The team `id` are **unique** in the API and teams keep it among all seasons. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest",GET,"{'name': 'Teams per conference', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Get data about teams.\n\nThe team `id` are **unique** in the API and teams keep it among all seasons.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': 'East'}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'code', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\nquerystring = {""conference"": conference}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'conference': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games per date,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games per date', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': '2022-02-12'}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""date"": date}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'date': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'date': {'type': 'object', 'properties': {'start': {'type': 'string'}, 'end': {'type': 'string'}, 'duration': {'type': 'string'}}}, 'stage': {'type': 'integer'}, 'status': {'type': 'object', 'properties': {'clock': {'type': 'null'}, 'halftime': {'type': 'boolean'}, 'short': {'type': 'integer'}, 'long': {'type': 'string'}}}, 'periods': {'type': 'object', 'properties': {'current': {'type': 'integer'}, 'total': {'type': 'integer'}, 'endOfPeriod': {'type': 'boolean'}}}, 'arena': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}}}, 'teams': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'home': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}}}, 'scores': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}, 'home': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}}}, 'officials': {'type': 'array', 'items': {'type': 'string'}}, 'timesTied': {'type': 'integer'}, 'leadChanges': {'type': 'integer'}, 'nugget': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games in live,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games in live', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': 'all'}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': ''}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""live"": live}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'live': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'date': {'type': 'object', 'properties': {'start': {'type': 'string'}, 'end': {'type': 'string'}, 'duration': {'type': 'string'}}}, 'stage': {'type': 'integer'}, 'status': {'type': 'object', 'properties': {'clock': {'type': 'null'}, 'halftime': {'type': 'boolean'}, 'short': {'type': 'integer'}, 'long': {'type': 'string'}}}, 'periods': {'type': 'object', 'properties': {'current': {'type': 'integer'}, 'total': {'type': 'integer'}, 'endOfPeriod': {'type': 'boolean'}}}, 'arena': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}}}, 'teams': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'home': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}}}, 'scores': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}, 'home': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}}}, 'officials': {'type': 'array', 'items': {'type': 'string'}}, 'timesTied': {'type': 'integer'}, 'leadChanges': {'type': 'integer'}, 'nugget': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Standings,"Get the standings for a league & season. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest + +> Parameters `league` & `season` are required.",GET,"{'name': 'Standings', 'url': 'https://api-nba-v1.p.rapidapi.com/standings', 'description': 'Get the standings for a league & season.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest\n\n> Parameters `league` & `season` are required.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2021'}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': 'standard'}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/standings""\nquerystring = {""season"": season, ""league"": league}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'league': {'type': 'string'}, 'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'conference': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'division': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'rank': {'type': 'integer'}, 'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'gamesBehind': {'type': 'string'}}}, 'win': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'loss': {'type': 'object', 'properties': {'home': {'type': 'integer'}, 'away': {'type': 'integer'}, 'total': {'type': 'integer'}, 'percentage': {'type': 'string'}, 'lastTen': {'type': 'integer'}}}, 'gamesBehind': {'type': 'string'}, 'streak': {'type': 'integer'}, 'winStreak': {'type': 'boolean'}, 'tieBreakerPoints': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games Statistics,Get the statistics of the teams that played a game.,GET,"{'name': 'Games Statistics', 'url': 'https://api-nba-v1.p.rapidapi.com/games/statistics', 'description': 'Get the statistics of the teams that played a game.', 'method': 'GET', 'required_parameters': [{'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '10403'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games/statistics""\nquerystring = {""id"": id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'id': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'team': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'statistics': {'type': 'array', 'items': {'type': 'object', 'properties': {'fastBreakPoints': {'type': 'integer'}, 'pointsInPaint': {'type': 'integer'}, 'biggestLead': {'type': 'integer'}, 'secondChancePoints': {'type': 'integer'}, 'pointsOffTurnovers': {'type': 'integer'}, 'longestRun': {'type': 'integer'}, 'points': {'type': 'integer'}, 'fgm': {'type': 'integer'}, 'fga': {'type': 'integer'}, 'fgp': {'type': 'string'}, 'ftm': {'type': 'integer'}, 'fta': {'type': 'integer'}, 'ftp': {'type': 'string'}, 'tpm': {'type': 'integer'}, 'tpa': {'type': 'integer'}, 'tpp': {'type': 'string'}, 'offReb': {'type': 'integer'}, 'defReb': {'type': 'integer'}, 'totReb': {'type': 'integer'}, 'assists': {'type': 'integer'}, 'pFouls': {'type': 'integer'}, 'steals': {'type': 'integer'}, 'turnovers': {'type': 'integer'}, 'blocks': {'type': 'integer'}, 'plusMinus': {'type': 'string'}, 'min': {'type': 'string'}}}}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Games,"Get the list of games according to the parameters. + +**Available status** +* 1 : Not Started +* 2 : live +* 3 : Finished + +> This endpoint requires at least one parameter.",GET,"{'name': 'Games', 'url': 'https://api-nba-v1.p.rapidapi.com/games', 'description': 'Get the list of games according to the parameters.\n\n**Available status**\n* 1 : Not Started\n* 2 : live\n* 3 : Finished\n\n> This endpoint requires at least one parameter.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'live', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'date', 'type': 'DATE (YYYY-MM-DD)', 'description': '', 'default': '2022-02-12'}, {'name': 'h2h', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'team', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/games""\nquerystring = {""date"": date}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'date': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'league': {'type': 'string'}, 'season': {'type': 'integer'}, 'date': {'type': 'object', 'properties': {'start': {'type': 'string'}, 'end': {'type': 'string'}, 'duration': {'type': 'string'}}}, 'stage': {'type': 'integer'}, 'status': {'type': 'object', 'properties': {'clock': {'type': 'null'}, 'halftime': {'type': 'boolean'}, 'short': {'type': 'integer'}, 'long': {'type': 'string'}}}, 'periods': {'type': 'object', 'properties': {'current': {'type': 'integer'}, 'total': {'type': 'integer'}, 'endOfPeriod': {'type': 'boolean'}}}, 'arena': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}}}, 'teams': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}, 'home': {'type': 'object', 'properties': {'id': {'type': 'integer'}, 'name': {'type': 'string'}, 'nickname': {'type': 'string'}, 'code': {'type': 'string'}, 'logo': {'type': 'string'}}}}}, 'scores': {'type': 'object', 'properties': {'visitors': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}, 'home': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}, 'series': {'type': 'object', 'properties': {'win': {'type': 'integer'}, 'loss': {'type': 'integer'}}}, 'linescore': {'type': 'array', 'items': {'type': 'string'}}, 'points': {'type': 'integer'}}}}}, 'officials': {'type': 'array', 'items': {'type': 'string'}}, 'timesTied': {'type': 'integer'}, 'leadChanges': {'type': 'integer'}, 'nugget': {'type': 'null'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams Statistics,Get the overall statistics of a team for a given `season`.,GET,"{'name': 'Teams Statistics', 'url': 'https://api-nba-v1.p.rapidapi.com/teams/statistics', 'description': 'Get the overall statistics of a team for a given `season`.', 'method': 'GET', 'required_parameters': [{'name': 'id', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'season', 'type': 'NUMBER', 'description': '', 'default': '2020'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams/statistics""\nquerystring = {""id"": id, ""season"": season}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'season': {'type': 'string'}}}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object', 'properties': {'games': {'type': 'integer'}, 'fastBreakPoints': {'type': 'integer'}, 'pointsInPaint': {'type': 'integer'}, 'biggestLead': {'type': 'integer'}, 'secondChancePoints': {'type': 'integer'}, 'pointsOffTurnovers': {'type': 'integer'}, 'longestRun': {'type': 'integer'}, 'points': {'type': 'integer'}, 'fgm': {'type': 'integer'}, 'fga': {'type': 'integer'}, 'fgp': {'type': 'string'}, 'ftm': {'type': 'integer'}, 'fta': {'type': 'integer'}, 'ftp': {'type': 'string'}, 'tpm': {'type': 'integer'}, 'tpa': {'type': 'integer'}, 'tpp': {'type': 'string'}, 'offReb': {'type': 'integer'}, 'defReb': {'type': 'integer'}, 'totReb': {'type': 'integer'}, 'assists': {'type': 'integer'}, 'pFouls': {'type': 'integer'}, 'steals': {'type': 'integer'}, 'turnovers': {'type': 'integer'}, 'blocks': {'type': 'integer'}, 'plusMinus': {'type': 'integer'}}}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Teams,"Get data about teams. + +The team `id` are **unique** in the API and teams keep it among all seasons. + +**Available conferences** +* East +* West + +**Available divisions** +* Atlantic +* Central +* Northwest +* Pacific +* Southeast +* Southwest",GET,"{'name': 'Teams', 'url': 'https://api-nba-v1.p.rapidapi.com/teams', 'description': 'Get data about teams.\n\nThe team `id` are **unique** in the API and teams keep it among all seasons.\n\n**Available conferences**\n* East\n* West\n\n**Available divisions**\n* Atlantic\n* Central\n* Northwest\n* Pacific\n* Southeast\n* Southwest', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'code', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'search', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'league', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'conference', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'division', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': '', 'default': ''}, {'name': 'id', 'type': 'NUMBER', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/teams""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'array'}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'object'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Leagues,"Get the list of available leagues. + +All `leagues` can be used in other endpoints as filters. + +**Available leagues** +* Africa +* Orlando +* Sacramento +* Standard +* Utah +* Vegas + +> This endpoint does not require any parameters.",GET,"{'name': 'Leagues', 'url': 'https://api-nba-v1.p.rapidapi.com/leagues', 'description': 'Get the list of available leagues.\n\nAll `leagues` can be used in other endpoints as filters.\n\n**Available leagues**\n* Africa\n* Orlando\n* Sacramento\n* Standard\n* Utah\n* Vegas\n\n> This endpoint does not require any parameters.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/leagues""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'array'}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'string'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Sports,API-NBA,"All NBA Stats DATA, Games, Livescore, Standings, Players, Statistics... Documentation : https://api-sports.io/documentation/nba/v2",Seasons,"All `seasons` can be used in other endpoints as filters. Seasons are only **4-digit keys** like `YYYY`. + +> This endpoint does not require any parameters.",GET,"{'name': 'Seasons', 'url': 'https://api-nba-v1.p.rapidapi.com/seasons', 'description': 'All `seasons` can be used in other endpoints as filters. Seasons are only **4-digit keys** like `YYYY`.\n\n> This endpoint does not require any parameters.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://api-nba-v1.p.rapidapi.com/seasons""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""api-nba-v1.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {'type': 'object', 'properties': {'get': {'type': 'string'}, 'parameters': {'type': 'array'}, 'errors': {'type': 'array'}, 'results': {'type': 'integer'}, 'response': {'type': 'array', 'items': {'type': 'integer'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search LinkedIn Profiles via Google,"Search LinkedIn profiles via Google using keyword, name, location, job title and company. For each search, this API will return top 100 results from Google. 1 credit per call.",POST,"{'name': 'Search LinkedIn Profiles via Google', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/google-profiles', 'description': 'Search LinkedIn profiles via Google using keyword, name, location, job title and company. For each search, this API will return top 100 results from Google. 1 credit per call.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-profiles""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.post(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 111, 'body': '...', 'headers': '', 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company Details from Crunchbase (NEW),Get all public details of a company on Crunchbase - including funding rounds. **2 credits per call.**,GET,"{'name': 'Get Company Details from Crunchbase (NEW)', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-details-from-crunchbase', 'description': 'Get all public details of a company on Crunchbase - including funding rounds. **2 credits per call.**', 'method': 'GET', 'required_parameters': [{'name': 'crunchbase', 'type': 'STRING', 'description': '', 'default': 'https://www.crunchbase.com/organization/kinly-c638'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-details-from-crunchbase""\nquerystring = {""crunchbase"": crunchbase}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company Ads Count,Get number of ads the company posted on LinkedIn. **1 credit per call.**,GET,"{'name': 'Get Company Ads Count', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-ads-count', 'description': 'Get number of ads the company posted on LinkedIn. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'company_id', 'type': 'STRING', 'description': '', 'default': '162479'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-ads-count""\nquerystring = {""company_id"": company_id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Extra Profile Data,"Get more profile’s data fields like languages, top skills, certifications, publications, patents, awards",GET,"{'name': 'Get Extra Profile Data', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-extra-profile-data', 'description': 'Get more profile’s data fields like languages, top skills, certifications, publications, patents, awards', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/ajjames/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-extra-profile-data""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company by ID,"Given a company’s LinkedIn internal ID, the API will return valuable data points in JSON format. **1 credit per call.**",GET,"{'name': 'Get Company by ID', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-id', 'description': 'Given a company’s LinkedIn internal ID, the API will return valuable data points in JSON format. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'company_id', 'type': 'STRING', 'description': '', 'default': '162479'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-id""\nquerystring = {""company_id"": company_id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search LinkedIn Company Pages via Google,Find up to 100 companies that match your criteria via Google.,POST,"{'name': 'Search LinkedIn Company Pages via Google', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/google-companies', 'description': 'Find up to 100 companies that match your criteria via Google.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-companies""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.post(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 111, 'body': '...', 'headers': '', 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Job Details,"Scrape the full job details, including the company basic information. **1 credit per call.**",GET,"{'name': 'Get Job Details', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-job-details', 'description': 'Scrape the full job details, including the company basic information. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'job_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/jobs/view/3690897280/'}], 'optional_parameters': [{'name': 'include_skills', 'type': 'STRING', 'description': 'Including skills will cost 1 more credit', 'default': 'false'}], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-job-details""\nquerystring = {""include_skills"": include_skills, ""job_url"": job_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company by URL,"Given a company’s LinkedIn URL, the API will return valuable data points in JSON format. **1 credit per call.**",GET,"{'name': 'Get Company by URL', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-linkedinurl', 'description': 'Given a company’s LinkedIn URL, the API will return valuable data points in JSON format. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/company/apple/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-linkedinurl""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Recommendation Received,Get profile’s recommendations (received). **1 credit per call**.,GET,"{'name': 'Get Recommendation Received', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-recommendations-received', 'description': 'Get profile’s recommendations (received). **1 credit per call**.', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/ajjames'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-recommendations-received""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Recommendation Given,Get profile’s recommendations (given). **1 credit per call**.,GET,"{'name': 'Get Recommendation Given', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-recommendations-given', 'description': 'Get profile’s recommendations (given). **1 credit per call**.', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/ajjames'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-recommendations-given""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search Jobs,"Search jobs posted on LinkedIn. This endpoint is useful for scraping job openings of a specific company on LinkedIn. + +To scrape all results from each search, change the param *start* from 0 to 25, 50, ... until you see less than 25 results returned. + +**2 credits per call.**",GET,"{'name': 'Search Jobs', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/search-jobs', 'description': 'Search jobs posted on LinkedIn. This endpoint is useful for scraping job openings of a specific company on LinkedIn. \n\nTo scrape all results from each search, change the param *start* from 0 to 25, 50, ... until you see less than 25 results returned.\n\n**2 credits per call.**', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'industry_code', 'type': 'STRING', 'description': 'You can find all valid industry codes from [this page]( https://learn.microsoft.com/en-us/linkedin/shared/references/reference-tables/industry-codes).', 'default': '4,5'}, {'name': 'company_id', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'sort_by', 'type': 'STRING', 'description': 'Possible values: most_relevant, most_recent', 'default': 'most_relevant'}, {'name': 'date_posted', 'type': 'STRING', 'description': 'Possible values: any_time, past_month, past_week, past_24_hours\n', 'default': 'any_time'}, {'name': 'salary', 'type': 'STRING', 'description': 'Possible values: 40k+, 60k+, 80k+, 100k+, 120k+, 140k+, 160k+, 180k+, 200k+', 'default': ''}, {'name': 'onsite_remote', 'type': 'STRING', 'description': 'Possible values: on-site, remote, hybrid', 'default': ''}, {'name': 'start', 'type': 'NUMBER', 'description': 'Should be one of: 0, 25, 50, 75, etc.', 'default': '0'}, {'name': 'experience_level', 'type': 'STRING', 'description': 'Possible values: internship, associate, director, entry level, mid-senior level, executive', 'default': ''}, {'name': 'function_id', 'type': 'STRING', 'description': 'Please follow [this instruction](https://rapidapi.com/freshdata-freshdata-default/api/fresh-linkedin-profile-data/tutorials/how-to-find-function_id-on-linkedin%3F) to get the function_id of your choice.', 'default': 'it,sale'}, {'name': 'geo_code', 'type': 'NUMBER', 'description': 'Use this param to target jobs in specific region/country. To search worldwide, use 92000000.\nTo find other geo codes, please follow this [link](https://rapidapi.com/freshdata-freshdata-default/api/fresh-linkedin-profile-data/tutorials/how-to-find-a-geo_code-(geoid)-on-linkedin%3F)', 'default': '103644278'}, {'name': 'title_id', 'type': 'STRING', 'description': 'To find title_id by title, please follow this [link](https://rapidapi.com/freshdata-freshdata-default/api/fresh-linkedin-profile-data/tutorials/how-to-find-a-title_id-on-linkedin%3F)', 'default': ''}, {'name': 'keywords', 'type': 'STRING', 'description': '', 'default': ''}], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-jobs""\nquerystring = {""industry_code"": industry_code, ""sort_by"": sort_by, ""date_posted"": date_posted, ""start"": start, ""function_id"": function_id, ""geo_code"": geo_code}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company's Posts,Get posts from a LinkedIn company page. Pagination is supported to fetch all posts. **2 credits per call.**,GET,"{'name': ""Get Company's Posts"", 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-posts', 'description': 'Get posts from a LinkedIn company page. Pagination is supported to fetch all posts. **2 credits per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/company/amazon/'}], 'optional_parameters': [{'name': 'pagination_token', 'type': 'STRING', 'description': 'Required when fetching the next result page. Please use the token from the result of your previous call.', 'default': ''}, {'name': 'start', 'type': 'NUMBER', 'description': 'Use this param to fetch posts of the next result page: 0 for page 1, 50 for page 2, etc.', 'default': ''}], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-posts""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company by Domain,Find a company on LinkedIn using its web domain. **1 credit per call.**,GET,"{'name': 'Get Company by Domain', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-domain', 'description': 'Find a company on LinkedIn using its web domain. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'domain', 'type': 'STRING', 'description': '', 'default': 'apple.com'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-by-domain""\nquerystring = {""domain"": domain}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Personal Profile,"Get full profile data, including experience & education history, skillset and company related details. Accept all type of profile urls. **1 credit per call.**",GET,"{'name': 'Get Personal Profile', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-linkedin-profile', 'description': 'Get full profile data, including experience & education history, skillset and company related details. Accept all type of profile urls. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-linkedin-profile""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search Decision Makers,"Search for decision makers of any company on LinkedIn. This endpoint will remove any unmatched profiles that returned by LinkedIn. It does much more than a simple search on LinkedIn sales navigator. + +**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.** + +How it works: + +Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credit per request. + +Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE. + +Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it'll cost 50 credits. + +**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.",POST,"{'name': 'Search Decision Makers', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/search-decision-makers', 'description': 'Search for decision makers of any company on LinkedIn. This endpoint will remove any unmatched profiles that returned by LinkedIn. It does much more than a simple search on LinkedIn sales navigator.\n\n**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.**\n\nHow it works:\n\nStep 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credit per request.\n\nStep 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE.\n\nStep 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it\'ll cost 50 credits.\n\n**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-decision-makers""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.post(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 111, 'body': '...', 'headers': '', 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search Employees,"Search employee profiles directly from LinkedIn. No cached databases. +Available filters: current company, past company, industry, country, title keywords, general keywords. + +**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.** + +How it works: + +- Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credits per request. + +- Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE. + +- Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it'll cost 50 credits. + +**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.",POST,"{'name': 'Search Employees', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/search-employees', 'description': 'Search employee profiles directly from LinkedIn. No cached databases. \nAvailable filters: current company, past company, industry, country, title keywords, general keywords.\n\n**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.**\n\nHow it works:\n\n- Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credits per request.\n\n- Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE.\n\n- Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it\'ll cost 50 credits.\n\n**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-employees""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.post(url, headers=headers)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Pesonal Profile by Sales Nav URL,"Get full profile data, including experience & education history, skillset and company related details. **1 credit per call.**",GET,"{'name': 'Get Pesonal Profile by Sales Nav URL', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-linkedin-profile-by-salesnavurl', 'description': 'Get full profile data, including experience & education history, skillset and company related details. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/sales/lead/ACoAAABD0a4B2wblfHunfjGEN-uRLdg2MnWydmk,name,zofi'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-linkedin-profile-by-salesnavurl""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Profile's Posts,Get posts of a person based on profile url. Pagination is supported to get all posts. **2 credits per call.**,GET,"{'name': ""Get Profile's Posts"", 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-posts', 'description': 'Get posts of a person based on profile url. Pagination is supported to get all posts. **2 credits per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [{'name': 'start', 'type': 'NUMBER', 'description': 'Use this param to fetch posts of the next result page: 0 for page 1, 50 for page 2, etc.', 'default': ''}, {'name': 'pagination_token', 'type': 'STRING', 'description': 'Required when fetching the next result page. Please use the token from the result of your previous call.', 'default': ''}, {'name': 'type', 'type': 'STRING', 'description': 'Possible values: \n\n- posts: to scrape posts from tab Posts -- posts or posts reshared by the person\n\n- comments: to scrape posts from tab Comments -- posts the person commented\n\n- reactions: to scrape posts from tab Reactions -- posts the person reacted\n\n', 'default': 'posts'}], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-posts""\nquerystring = {""type"": type, ""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Company Jobs Count,Get number of opening jobs the company posted on LinkedIn. **1 credit per call.**,GET,"{'name': 'Get Company Jobs Count', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-jobs-count', 'description': 'Get number of opening jobs the company posted on LinkedIn. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'company_id', 'type': 'STRING', 'description': '', 'default': '162479'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-company-jobs-count""\nquerystring = {""company_id"": company_id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Profile Recent Activity Time,Get the time of the latest activity. **2 credits per call.**,GET,"{'name': 'Get Profile Recent Activity Time', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-recent-activity-time', 'description': 'Get the time of the latest activity. **2 credits per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-recent-activity-time""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Open to Work Status,"Given a LinkedIn profile URL, the API will let you know if that profile is “open to work” or not. **1 credit per call.**",GET,"{'name': 'Get Open to Work Status', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-opentowork-status', 'description': 'Given a LinkedIn profile URL, the API will let you know if that profile is “open to work” or not. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-opentowork-status""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Profile PDF CV,Get the CV of a LinkedIn profile in PDF format. **1 credit per call.**,GET,"{'name': 'Get Profile PDF CV', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-pdf-cv', 'description': 'Get the CV of a LinkedIn profile in PDF format. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-profile-pdf-cv""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Check Search Status,Get the status of your search using the request_id given in step 1.,GET,"{'name': 'Check Search Status', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/check-search-status', 'description': 'Get the status of your search using the request_id given in step 1.', 'method': 'GET', 'required_parameters': [{'name': 'request_id', 'type': 'STRING', 'description': '', 'default': 'dd1b29063de8927b31fa523d36432b61'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/check-search-status""\nquerystring = {""request_id"": request_id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Search Results,"Get search results. Please make sure the search is ""done"" before calling this endpoint.",GET,"{'name': 'Get Search Results', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-search-results', 'description': 'Get search results. Please make sure the search is ""done"" before calling this endpoint.', 'method': 'GET', 'required_parameters': [{'name': 'page', 'type': 'STRING', 'description': '', 'default': '1'}, {'name': 'request_id', 'type': 'STRING', 'description': '', 'default': 'dd1b29063de8927b31fa523d36432b61'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-search-results""\nquerystring = {""page"": page, ""request_id"": request_id}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Get Open Profile Status,"Given a LinkedIn profile URL, the API will let you know if that profile is “open profile” or not. **1 credit per call.**",GET,"{'name': 'Get Open Profile Status', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/get-open-profile-status', 'description': 'Given a LinkedIn profile URL, the API will let you know if that profile is “open profile” or not. **1 credit per call.**', 'method': 'GET', 'required_parameters': [{'name': 'linkedin_url', 'type': 'STRING', 'description': '', 'default': 'https://www.linkedin.com/in/williamhgates/'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/get-open-profile-status""\nquerystring = {""linkedin_url"": linkedin_url}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 200, 'body': ""{'key1': 'value', 'key2': 'value'}..."", 'headers': {}, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search LinkedIn Profiles via Google,"Search LinkedIn profiles via Google using keyword, name, location, job title and company. For each search, this API will return top 100 results from Google. 1 credit per call.",POST,"{'name': 'Search LinkedIn Profiles via Google', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/google-profiles', 'description': 'Search LinkedIn profiles via Google using keyword, name, location, job title and company. For each search, this API will return top 100 results from Google. 1 credit per call.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-profiles""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-profiles""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search LinkedIn Company Pages via Google,Find up to 100 companies that match your criteria via Google.,POST,"{'name': 'Search LinkedIn Company Pages via Google', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/google-companies', 'description': 'Find up to 100 companies that match your criteria via Google.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-companies""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/google-companies""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search Decision Makers,"Search for decision makers of any company on LinkedIn. This endpoint will remove any unmatched profiles that returned by LinkedIn. It does much more than a simple search on LinkedIn sales navigator. + +**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.** + +How it works: + +Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credit per request. + +Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE. + +Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it'll cost 50 credits. + +**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.",POST,"{'name': 'Search Decision Makers', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/search-decision-makers', 'description': 'Search for decision makers of any company on LinkedIn. This endpoint will remove any unmatched profiles that returned by LinkedIn. It does much more than a simple search on LinkedIn sales navigator.\n\n**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.**\n\nHow it works:\n\nStep 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credit per request.\n\nStep 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE.\n\nStep 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it\'ll cost 50 credits.\n\n**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-decision-makers""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-decision-makers""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Search,Fresh LinkedIn Profile Data,"Reliable API for all LinkedIn Scraping Needs: profiles, companies, activities/posts, and job posts. This API scrapes data directly from LinkedIn upon request so that you'll get real-time data. Say goodbye to stale data! + +We're active and responsive on this platform, please don't hesitate to drop a message in the Discussions or PM channels.",Search Employees,"Search employee profiles directly from LinkedIn. No cached databases. +Available filters: current company, past company, industry, country, title keywords, general keywords. + +**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.** + +How it works: + +- Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credits per request. + +- Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE. + +- Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it'll cost 50 credits. + +**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.",POST,"{'name': 'Search Employees', 'url': 'https://fresh-linkedin-profile-data.p.rapidapi.com/search-employees', 'description': 'Search employee profiles directly from LinkedIn. No cached databases. \nAvailable filters: current company, past company, industry, country, title keywords, general keywords.\n\n**It takes 50 credits to initiate a search and then takes 0.5 credit per profile returned.**\n\nHow it works:\n\n- Step 1: Use this endpoint to make a search using your criteria. This endpoint will return a ""request_id"" so that you can check for the search status anytime in step 2. This endpoint will cost you 50 credits per request.\n\n- Step 2: Check the search status using the endpoint ""/check-search-status"". Calling to this endpoint is FREE.\n\n- Step 3: Once the search is done, you can start collecting the results by using the endpoint ""/get-search-results"". This endpoint will cost you 0.5 credit per one profile. For example, if your search returns 100 results, it\'ll cost 50 credits.\n\n**Please note**: it normally takes a few minutes to complete such a search - but sometimes it may need 24 hours. We recommend you put in all your searches and let this api process them all within 24 hours.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-employees""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://fresh-linkedin-profile-data.p.rapidapi.com/search-employees""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""fresh-linkedin-profile-data.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe by API-Ninjas,"Search over 200,000 creative recipes. See more info at https://api-ninjas.com/api/recipe.",/v1/recipe,"Get a list of recipes for a given search query. Returns at most 10 results. To access more than the first 10 results, use the offset parameter to offset results in multiple API calls.",GET,"{'name': '/v1/recipe', 'url': 'https://recipe-by-api-ninjas.p.rapidapi.com/v1/recipe', 'description': 'Get a list of recipes for a given search query. Returns at most 10 results. To access more than the first 10 results, use the offset parameter to offset results in multiple API calls.', 'method': 'GET', 'required_parameters': [{'name': 'query', 'type': 'STRING', 'description': 'query text to search.', 'default': 'italian wedding soup'}], 'optional_parameters': [{'name': 'offset', 'type': 'STRING', 'description': 'number of results to offset for pagination.', 'default': ''}], 'code': 'import requests\n\nurl = ""https://recipe-by-api-ninjas.p.rapidapi.com/v1/recipe""\nquerystring = {""query"": query}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""recipe-by-api-ninjas.p.rapidapi.com""\n}\n\nresponse = requests.get(url, headers=headers, params=querystring)\n\nprint(response.json())\n', 'statuscode': 111, 'body': '...', 'headers': '', 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Create Recipe Card (Deprecated),Create a recipe card given a recipe.,POST,"{'name': 'Create Recipe Card (Deprecated)', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeRecipe', 'description': 'Create a recipe card given a recipe.', 'method': 'POST', 'required_parameters': [{'name': 'backgroundImage', 'type': 'STRING', 'description': 'The background image (""none"",""background1"", or ""background2"").', 'default': 'background1'}, {'name': 'readyInMinutes', 'type': 'NUMBER', 'description': 'The number of minutes it takes to get the recipe on the table.', 'default': '60'}, {'name': 'title', 'type': 'STRING', 'description': 'The title of the recipe.', 'default': 'Pork tenderloin with green beans'}, {'name': 'image', 'type': 'BINARY', 'description': 'The binary image of the recipe as jpg.', 'default': ''}, {'name': 'mask', 'type': 'STRING', 'description': 'The mask to put over the recipe image (""ellipseMask"", ""diamondMask"", ""diamondMask"", ""starMask"", ""heartMask"", ""potMask"", ""fishMask"").', 'default': 'ellipseMask'}, {'name': 'instructions', 'type': 'STRING', 'description': 'The instructions to make the recipe. One step per line.', 'default': 'cook the beans'}, {'name': 'ingredients', 'type': 'STRING', 'description': 'The ingredient list of the recipe, one ingredient per line.', 'default': '2 cups of green beans'}, {'name': 'servings', 'type': 'NUMBER', 'description': 'The number of servings that you can make from the ingredients.', 'default': '2'}], 'optional_parameters': [{'name': 'fontColor', 'type': 'STRING', 'description': 'The font color on the recipe card as a hex-string.', 'default': '#333333'}, {'name': 'source', 'type': 'STRING', 'description': 'The source of the recipe.', 'default': 'spoonacular.com'}, {'name': 'author', 'type': 'STRING', 'description': 'The author of the recipe.', 'default': 'Emily Henderson'}, {'name': 'backgroundColor', 'type': 'STRING', 'description': 'The background color on the recipe card as a hex-string.', 'default': '#ffffff'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeRecipe""\nquerystring = {""fontColor"": ""#333333"", ""backgroundImage"": ""background1"", ""source"": ""spoonacular.com"", ""readyInMinutes"": ""60"", ""author"": ""Emily Henderson"", ""title"": ""Pork tenderloin with green beans"", ""image"": """", ""mask"": ""ellipseMask"", ""instructions"": ""cook the beans"", ""ingredients"": ""2 cups of green beans"", ""servings"": ""2"", ""backgroundColor"": ""#ffffff""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeRecipe""\nquerystring = {""fontColor"": ""#333333"", ""backgroundImage"": ""background1"", ""source"": ""spoonacular.com"", ""readyInMinutes"": ""60"", ""author"": ""Emily Henderson"", ""title"": ""Pork tenderloin with green beans"", ""image"": """", ""mask"": ""ellipseMask"", ""instructions"": ""cook the beans"", ""ingredients"": ""2 cups of green beans"", ""servings"": ""2"", ""backgroundColor"": ""#ffffff""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {'type': 'object', 'properties': {'status': {'type': 'string'}, 'message': {'type': 'string'}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Recipe Nutrition Widget,"Visualize a recipe's nutritional information as HTML including CSS. + +Full example code of how to work with widgets can be found in our [spoonacular-widget GitHub](https://github.com/ddsky/spoonacular-widgets).",POST,"{'name': 'Recipe Nutrition Widget', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeNutrition', 'description': ""Visualize a recipe's nutritional information as HTML including CSS. \n\nFull example code of how to work with widgets can be found in our [spoonacular-widget GitHub](https://github.com/ddsky/spoonacular-widgets)."", 'method': 'POST', 'required_parameters': [{'name': 'servings', 'type': 'NUMBER', 'description': 'The number of servings.', 'default': '2'}, {'name': 'ingredientList', 'type': 'STRING', 'description': 'The ingredient list of the recipe, one ingredient per line.', 'default': '3 oz flour'}], 'optional_parameters': [{'name': 'showBacklink', 'type': 'BOOLEAN', 'description': 'Whether to show a backlink to spoonacular.', 'default': 'true'}, {'name': 'defaultCss', 'type': 'BOOLEAN', 'description': 'Whether the default CSS should be added to the response.', 'default': 'true'}, {'name': 'language', 'type': 'STRING', 'description': 'The input language, either ""en"" or ""de"".', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeNutrition""\nquerystring = {""servings"": ""2"", ""showBacklink"": ""true"", ""defaultCss"": ""true"", ""ingredientList"": ""3 oz flour"", ""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/visualizeNutrition""\nquerystring = {""servings"": ""2"", ""showBacklink"": ""true"", ""defaultCss"": ""true"", ""ingredientList"": ""3 oz flour"", ""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Detect Food in Text,Detect ingredients and dishes in texts.,POST,"{'name': 'Detect Food in Text', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/detect', 'description': 'Detect ingredients and dishes in texts.', 'method': 'POST', 'required_parameters': [{'name': 'text', 'type': 'STRING', 'description': 'The text in which food items such as dish names and ingredients should be detected in.', 'default': 'I like to eat delicious tacos. Only cheeseburger with cheddar are better than that. But then again, pizza with pepperoni, mushrooms, and tomatoes is so good!'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/detect""\nquerystring = {""text"": ""I like to eat delicious tacos. Only cheeseburger with cheddar are better than that. But then again, pizza with pepperoni, mushrooms, and tomatoes is so good!""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/detect""\nquerystring = {""text"": ""I like to eat delicious tacos. Only cheeseburger with cheddar are better than that. But then again, pizza with pepperoni, mushrooms, and tomatoes is so good!""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Image Analysis (File),Classify and analyze a food image.,POST,"{'name': 'Image Analysis (File)', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/analyze', 'description': 'Classify and analyze a food image.', 'method': 'POST', 'required_parameters': [{'name': 'file', 'type': 'BINARY', 'description': '', 'default': ''}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/analyze""\nquerystring = {""file"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/analyze""\nquerystring = {""file"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Compute Shopping List,Compute a shopping list from a set of simple foods. This endpoint does not require usernames.,POST,"{'name': 'Compute Shopping List', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/shopping-list/compute', 'description': 'Compute a shopping list from a set of simple foods. This endpoint does not require usernames.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/shopping-list/compute""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/shopping-list/compute""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Generate Shopping List,Generate the shopping list for a user from the meal planner in a given time frame.,POST,"{'name': 'Generate Shopping List', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/shopping-list/2020-06-01/2020-06-07', 'description': 'Generate the shopping list for a user from the meal planner in a given time frame.', 'method': 'POST', 'required_parameters': [{'name': 'end-date', 'type': 'string', 'description': 'The end date in the format yyyy-mm-dd.', 'default': '2020-06-07'}, {'name': 'hash', 'type': 'STRING', 'description': 'The private hash for the username.', 'default': '4b5v4398573406'}, {'name': 'start-date', 'type': 'string', 'description': 'The start date in the format yyyy-mm-dd.', 'default': '2020-06-01'}, {'name': 'username', 'type': 'string', 'description': 'The username.', 'default': 'dsky'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/shopping-list/2020-06-01/2020-06-07""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/{username}/shopping-list/{start_date}/{end_date}""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Add to Shopping List,Add an item to the current shopping list of a user.,POST,"{'name': 'Add to Shopping List', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/shopping-list/items', 'description': 'Add an item to the current shopping list of a user.', 'method': 'POST', 'required_parameters': [{'name': 'hash', 'type': 'STRING', 'description': 'The private hash for the username.', 'default': '4b5v4398573406'}, {'name': 'username', 'type': 'string', 'description': 'The username.', 'default': 'dsky'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/shopping-list/items""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/{username}/shopping-list/items""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Add Meal Plan Template,Add a meal plan template for a user.,POST,"{'name': 'Add Meal Plan Template', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/templates', 'description': 'Add a meal plan template for a user.', 'method': 'POST', 'required_parameters': [{'name': 'username', 'type': 'string', 'description': 'The username.', 'default': 'dsky'}, {'name': 'hash', 'type': 'STRING', 'description': 'The private hash for the username.', 'default': '4b5v4398573406'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/templates""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/{username}/templates""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Add to Meal Plan,"Add an item to the user's meal plan. The Add to Meal Plan endpoint is complex, be sure to review the [guide here](https://spoonacular.com/food-api/docs#Add-to-Meal-Plan)",POST,"{'name': 'Add to Meal Plan', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/items', 'description': ""Add an item to the user's meal plan. The Add to Meal Plan endpoint is complex, be sure to review the [guide here](https://spoonacular.com/food-api/docs#Add-to-Meal-Plan)"", 'method': 'POST', 'required_parameters': [{'name': 'hash', 'type': 'STRING', 'description': 'The private hash for the username.', 'default': '4b5v4398573406'}, {'name': 'username', 'type': 'string', 'description': 'The username.', 'default': 'dsky'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/dsky/items""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/mealplanner/{username}/items""\nquerystring = {""hash"": ""4b5v4398573406""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Classify Grocery Product Bulk,"Provide a set of product jsons, get back classified products.",POST,"{'name': 'Classify Grocery Product Bulk', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classifyBatch', 'description': 'Provide a set of product jsons, get back classified products.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [{'name': 'locale', 'type': 'STRING', 'description': 'The display name of the returned category, supported is en_US (for American English) and en_GB (for British English).', 'default': 'en_US'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classifyBatch""\nquerystring = {""locale"": ""en_US""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classifyBatch""\nquerystring = {""locale"": ""en_US""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {'type': 'array', 'items': {'type': 'object', 'properties': {'breadcrumbs': {'type': 'array', 'items': {'type': 'string'}}, 'category': {'type': 'string'}, 'usdaCode': {'type': 'integer'}, 'image': {'type': 'string'}, 'cleanTitle': {'type': 'string'}}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Compute Glycemic Load,Retrieve the glycemic index for a list of ingredients and compute the individual and total glycemic load.,POST,"{'name': 'Compute Glycemic Load', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/glycemicLoad', 'description': 'Retrieve the glycemic index for a list of ingredients and compute the individual and total glycemic load.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [{'name': 'language', 'type': 'STRING', 'description': 'The input language, either \\\\\\""en\\\\\\"" or \\\\\\""de\\\\\\"".', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/glycemicLoad""\nquerystring = {""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/glycemicLoad""\nquerystring = {""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Parse Ingredients,Extract an ingredient from plain text.,POST,"{'name': 'Parse Ingredients', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/parseIngredients', 'description': 'Extract an ingredient from plain text.', 'method': 'POST', 'required_parameters': [{'name': 'ingredientList', 'type': 'STRING', 'description': 'The ingredient list of the recipe, one ingredient per line.', 'default': '3 oz pork shoulder'}, {'name': 'servings', 'type': 'NUMBER', 'description': 'The number of servings that you can make from the ingredients.', 'default': '2'}], 'optional_parameters': [{'name': 'includeNutrition', 'type': 'BOOLEAN', 'description': 'Whether nutrition data should be added to correctly parsed ingredients.', 'default': ''}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/parseIngredients""\nquerystring = {""ingredientList"": ""3 oz pork shoulder"", ""servings"": ""2"", ""includeNutrition"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/parseIngredients""\nquerystring = {""ingredientList"": ""3 oz pork shoulder"", ""servings"": ""2"", ""includeNutrition"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Analyze Recipe,"This endpoint allows you to send raw recipe information, such as title, servings, and ingredients, to then see what we compute (badges, diets, nutrition, and more). This is useful if you have your own recipe data and want to enrich it with our semantic analysis.",POST,"{'name': 'Analyze Recipe', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyze', 'description': 'This endpoint allows you to send raw recipe information, such as title, servings, and ingredients, to then see what we compute (badges, diets, nutrition, and more). This is useful if you have your own recipe data and want to enrich it with our semantic analysis.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [{'name': 'includeTaste', 'type': 'BOOLEAN', 'description': '', 'default': 'false'}, {'name': 'includeNutrition', 'type': 'BOOLEAN', 'description': '', 'default': 'false'}, {'name': 'language', 'type': 'STRING', 'description': 'The input language, either \\\\\\""en\\\\\\"" or \\\\\\""de\\\\\\"".', 'default': 'en'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyze""\nquerystring = {""includeTaste"": ""false"", ""includeNutrition"": ""false"", ""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyze""\nquerystring = {""includeTaste"": ""false"", ""includeNutrition"": ""false"", ""language"": ""en""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Analyze Recipe Instructions,Extract ingredients and equipment from the recipe instruction steps.,POST,"{'name': 'Analyze Recipe Instructions', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyzeInstructions', 'description': 'Extract ingredients and equipment from the recipe instruction steps.', 'method': 'POST', 'required_parameters': [{'name': 'instructions', 'type': 'STRING', 'description': 'The instructions text.', 'default': 'Put the garlic in a pan and then add the onion.'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyzeInstructions""\nquerystring = {""instructions"": ""Put the garlic in a pan and then add the onion.""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/analyzeInstructions""\nquerystring = {""instructions"": ""Put the garlic in a pan and then add the onion.""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Connect User,"In order to call user-specific endpoints, you need to connect your app's users to spoonacular users. + +Just call this endpoint with your user's information and you will get back a username and hash that you must save on your side. In future requests that you make on this user's behalf you simply pass their username and hash alongside your API key.",POST,"{'name': 'Connect User', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/users/connect', 'description': ""In order to call user-specific endpoints, you need to connect your app's users to spoonacular users.\n\nJust call this endpoint with your user's information and you will get back a username and hash that you must save on your side. In future requests that you make on this user's behalf you simply pass their username and hash alongside your API key."", 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/users/connect""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/users/connect""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Map Ingredients to Grocery Products,Map a set of ingredients to products you can buy in the grocery store.,POST,"{'name': 'Map Ingredients to Grocery Products', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/map', 'description': 'Map a set of ingredients to products you can buy in the grocery store.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/map""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/ingredients/map""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Classify a Grocery Product,"Given a grocery product title, this endpoint allows you to detect what basic ingredient it is.",POST,"{'name': 'Classify a Grocery Product', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classify', 'description': 'Given a grocery product title, this endpoint allows you to detect what basic ingredient it is.', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [{'name': 'locale', 'type': 'STRING', 'description': 'The locale of the returned category, supported is en\\_US and en\\_GB.', 'default': 'en_us'}], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classify""\nquerystring = {""locale"": ""en_us""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/products/classify""\nquerystring = {""locale"": ""en_us""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {'properties': {'breadcrumbs': {'items': {'type': 'string'}, 'type': 'array'}, 'category': {'type': 'string'}, 'cleanTitle': {'type': 'string'}, 'usdaCode': {'type': 'integer'}}, 'type': 'object'}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Classify Cuisine,Classify the recipe's cuisine.,POST,"{'name': 'Classify Cuisine', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/cuisine', 'description': ""Classify the recipe's cuisine."", 'method': 'POST', 'required_parameters': [{'name': 'ingredientList', 'type': 'STRING', 'description': 'The ingredient list of the recipe, one ingredient per line.', 'default': '3 oz pork shoulder'}, {'name': 'title', 'type': 'STRING', 'description': 'The title of the recipe.', 'default': 'Pork roast with green beans'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/cuisine""\nquerystring = {""ingredientList"": ""3 oz pork shoulder"", ""title"": ""Pork roast with green beans""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/recipes/cuisine""\nquerystring = {""ingredientList"": ""3 oz pork shoulder"", ""title"": ""Pork roast with green beans""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Food,Recipe - Food - Nutrition,"The spoonacular Nutrition, Recipe, and Food API allows you to access over 365,000 recipes and 86,000 food products. Our food ontology and semantic recipe search engine makes it possible to search for recipes using natural language queries, such as ""gluten free brownies without sugar"" or ""low fat vegan cupcakes."" You can automatically calculate the nutritional information for any recipe, analyze recipe costs, visualize ingredient lists, find recipes for what's in your fridge, find recipes based on special diets, nutritional requirements, or favorite ingredients, classify recipes into types and cuisines, convert ingredient amounts, or even compute an entire meal plan. With our powerful API, you can create many kinds of food and especially nutrition apps. + +Special diets/dietary requirements currently available include: vegan, vegetarian, pescetarian, gluten free, grain free, dairy free, high protein, low sodium, low carb, Paleo, Primal, ketogenic, FODMAP, and Whole 30. We will soon be adding Weight Watcher points, too.",Image Classification (File),Classify a food image.,POST,"{'name': 'Image Classification (File)', 'url': 'https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/classify', 'description': 'Classify a food image.', 'method': 'POST', 'required_parameters': [{'name': 'file', 'type': 'BINARY', 'description': '', 'default': ''}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/classify""\nquerystring = {""file"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://spoonacular-recipe-food-nutrition-v1.p.rapidapi.com/food/images/classify""\nquerystring = {""file"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""spoonacular-recipe-food-nutrition-v1.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...'}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Search cars locations,Search cars locations by name,GET,"{'name': 'Search cars locations', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/locations', 'description': 'Search cars locations by name', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'name', 'type': 'STRING', 'description': 'Name', 'default': 'Berlin'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/locations""\nquerystring = {""locale"": ""en-gb"", ""name"": ""Berlin""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/locations""\nquerystring = {""locale"": ""en-gb"", ""name"": ""Berlin""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': ""{'message': 'You are not subscribed to this API.'}..."", 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Search car rental,Search car rental. Browse our inventory of hundreds of cheap car rentals. Get the best rental car deals on your next trip,GET,"{'name': 'Search car rental', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/search', 'description': 'Search car rental. Browse our inventory of hundreds of cheap car rentals. Get the best rental car deals on your next trip', 'method': 'GET', 'required_parameters': [{'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'drop_off_latitude', 'type': 'NUMBER', 'description': 'Drop off latitude', 'default': 50.08773}, {'name': 'sort_by', 'type': 'STRING', 'description': '', 'default': 'recommended'}, {'name': 'drop_off_datetime', 'type': 'STRING', 'description': 'Drop off datetime', 'default': '2023-06-30 16:00:00'}, {'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'pick_up_latitude', 'type': 'NUMBER', 'description': 'Pick up latitude', 'default': 50.08773}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'pick_up_datetime', 'type': 'STRING', 'description': 'Pick up datetime', 'default': '2023-06-29 16:00:00'}, {'name': 'drop_off_longitude', 'type': 'NUMBER', 'description': 'Drop off longitude', 'default': 14.421133}, {'name': 'pick_up_longitude', 'type': 'NUMBER', 'description': 'Pick up longitude', 'default': 14.421133}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/search""\nquerystring = {""currency"": ""AED"", ""drop_off_latitude"": 50.08773, ""sort_by"": ""recommended"", ""drop_off_datetime"": ""2023-06-30 16:00:00"", ""from_country"": ""it"", ""pick_up_latitude"": 50.08773, ""locale"": ""en-gb"", ""pick_up_datetime"": ""2023-06-29 16:00:00"", ""drop_off_longitude"": 14.421133, ""pick_up_longitude"": 14.421133}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/search""\nquerystring = {""currency"": ""AED"", ""drop_off_latitude"": 50.08773, ""sort_by"": ""recommended"", ""drop_off_datetime"": ""2023-06-30 16:00:00"", ""from_country"": ""it"", ""pick_up_latitude"": 50.08773, ""locale"": ""en-gb"", ""pick_up_datetime"": ""2023-06-29 16:00:00"", ""drop_off_longitude"": 14.421133, ""pick_up_longitude"": 14.421133}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Vehicle supplier details,Vehicle supplier details by vehicle_id,GET,"{'name': 'Vehicle supplier details', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/supplier/details', 'description': 'Vehicle supplier details by vehicle_id', 'method': 'GET', 'required_parameters': [{'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'vehicle_id', 'type': 'NUMBER', 'description': 'Vehicle id', 'default': 699544941}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/supplier/details""\nquerystring = {""from_country"": ""it"", ""locale"": ""en-gb"", ""vehicle_id"": 699544941}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/supplier/details""\nquerystring = {""from_country"": ""it"", ""locale"": ""en-gb"", ""vehicle_id"": 699544941}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Important information,Important information of vehicles,GET,"{'name': 'Important information', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/important-info', 'description': 'Important information of vehicles', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'pick_up_location_id', 'type': 'NUMBER', 'description': 'Pick up location id', 'default': 4123205}, {'name': 'drop_off_location_id', 'type': 'NUMBER', 'description': 'Drop off location id', 'default': 4123205}, {'name': 'drop_off_datetime', 'type': 'STRING', 'description': 'Drop off datetime', 'default': '2023-09-28 16:00:00'}, {'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'pick_up_datetime', 'type': 'STRING', 'description': 'Pick up datetime', 'default': '2023-09-27 16:00:00'}, {'name': 'driver_age', 'type': 'NUMBER', 'description': 'Driver age', 'default': 30}, {'name': 'vehicle_id', 'type': 'NUMBER', 'description': 'Vehicle id', 'default': 663317713}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/important-info""\nquerystring = {""locale"": ""en-gb"", ""pick_up_location_id"": 4123205, ""drop_off_location_id"": 4123205, ""drop_off_datetime"": ""2023-09-28 16:00:00"", ""from_country"": ""it"", ""pick_up_datetime"": ""2023-09-27 16:00:00"", ""driver_age"": 30, ""vehicle_id"": 663317713}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/important-info""\nquerystring = {""locale"": ""en-gb"", ""pick_up_location_id"": 4123205, ""drop_off_location_id"": 4123205, ""drop_off_datetime"": ""2023-09-28 16:00:00"", ""from_country"": ""it"", ""pick_up_datetime"": ""2023-09-27 16:00:00"", ""driver_age"": 30, ""vehicle_id"": 663317713}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Exchange rates,Get currency exchange rates,GET,"{'name': 'Exchange rates', 'url': 'https://booking-com.p.rapidapi.com/v1/metadata/exchange-rates', 'description': 'Get currency exchange rates', 'method': 'GET', 'required_parameters': [{'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/metadata/exchange-rates""\nquerystring = {""currency"": ""AED"", ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/metadata/exchange-rates""\nquerystring = {""currency"": ""AED"", ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Car rental details,"Car rental details by vehicle_id. First, call `Search car rental`",GET,"{'name': 'Car rental details', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/detail', 'description': 'Car rental details by vehicle_id. First, call `Search car rental`', 'method': 'GET', 'required_parameters': [{'name': 'vehicle_id', 'type': 'NUMBER', 'description': 'Vehicle id', 'default': 699544941}, {'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'search_key', 'type': 'STRING', 'description': 'Search key', 'default': 'eyJkcml2ZXJzQWdlIjozNSwiZHJvcE9mZkRhdGVUaW1lIjoiMjAyMS0xMS0xMlQxMDowMDowMCIsImRyb3BPZmZMb2NhdGlvbiI6IjU1Ljc1MjIwMSwzNy42MTU2MDEiLCJkcm9wT2ZmTG9jYXRpb25UeXBlIjoiTEFUTE9ORyIsInBpY2tVcERhdGVUaW1lIjoiMjAyMS0xMS0wOVQxMDowMDowMCIsInBpY2tVcExvY2F0aW9uIjoiNTUuNzUyMjAxLDM3LjYxNTYwMSIsInBpY2tVcExvY2F0aW9uVHlwZSI6IkxBVExPTkciLCJyZW50YWxEdXJhdGlvbkluRGF5cyI6Mywic2VydmljZUZlYXR1cmVzIjpbIk5PX09QQVFVRVMiLCJTVVBSRVNTX0ZJWEVEX1BSSUNFX1ZFSElDTEVTIl19'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/detail""\nquerystring = {""vehicle_id"": 699544941, ""currency"": ""AED"", ""from_country"": ""it"", ""locale"": ""en-gb"", ""search_key"": ""eyJkcml2ZXJzQWdlIjozNSwiZHJvcE9mZkRhdGVUaW1lIjoiMjAyMS0xMS0xMlQxMDowMDowMCIsImRyb3BPZmZMb2NhdGlvbiI6IjU1Ljc1MjIwMSwzNy42MTU2MDEiLCJkcm9wT2ZmTG9jYXRpb25UeXBlIjoiTEFUTE9ORyIsInBpY2tVcERhdGVUaW1lIjoiMjAyMS0xMS0wOVQxMDowMDowMCIsInBpY2tVcExvY2F0aW9uIjoiNTUuNzUyMjAxLDM3LjYxNTYwMSIsInBpY2tVcExvY2F0aW9uVHlwZSI6IkxBVExPTkciLCJyZW50YWxEdXJhdGlvbkluRGF5cyI6Mywic2VydmljZUZlYXR1cmVzIjpbIk5PX09QQVFVRVMiLCJTVVBSRVNTX0ZJWEVEX1BSSUNFX1ZFSElDTEVTIl19""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/detail""\nquerystring = {""vehicle_id"": 699544941, ""currency"": ""AED"", ""from_country"": ""it"", ""locale"": ""en-gb"", ""search_key"": ""eyJkcml2ZXJzQWdlIjozNSwiZHJvcE9mZkRhdGVUaW1lIjoiMjAyMS0xMS0xMlQxMDowMDowMCIsImRyb3BPZmZMb2NhdGlvbiI6IjU1Ljc1MjIwMSwzNy42MTU2MDEiLCJkcm9wT2ZmTG9jYXRpb25UeXBlIjoiTEFUTE9ORyIsInBpY2tVcERhdGVUaW1lIjoiMjAyMS0xMS0wOVQxMDowMDowMCIsInBpY2tVcExvY2F0aW9uIjoiNTUuNzUyMjAxLDM3LjYxNTYwMSIsInBpY2tVcExvY2F0aW9uVHlwZSI6IkxBVExPTkciLCJyZW50YWxEdXJhdGlvbkluRGF5cyI6Mywic2VydmljZUZlYXR1cmVzIjpbIk5PX09QQVFVRVMiLCJTVVBSRVNTX0ZJWEVEX1BSSUNFX1ZFSElDTEVTIl19""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Rental terms,Rental terms and conditions by pick up location_id,GET,"{'name': 'Rental terms', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/terms-conditions', 'description': 'Rental terms and conditions by pick up location_id', 'method': 'GET', 'required_parameters': [{'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'pick_up_location_id', 'type': 'NUMBER', 'description': 'Pick up location id. Use `Vehicle supplier details`', 'default': 4516789}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/terms-conditions""\nquerystring = {""from_country"": ""it"", ""pick_up_location_id"": 4516789, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/terms-conditions""\nquerystring = {""from_country"": ""it"", ""pick_up_location_id"": 4516789, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Rental extras,Get additional services when renting,GET,"{'name': 'Rental extras', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/extras', 'description': 'Get additional services when renting', 'method': 'GET', 'required_parameters': [{'name': 'pick_up_datetime', 'type': 'STRING', 'description': 'Pick up datetime', 'default': '2023-09-27 16:00:00'}, {'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'price', 'type': 'NUMBER', 'description': 'Price', 'default': 2860.87}, {'name': 'drop_off_datetime', 'type': 'STRING', 'description': 'Drop off datetime', 'default': '2023-09-28 16:00:00'}, {'name': 'driver_age', 'type': 'NUMBER', 'description': 'Driver age', 'default': 30}, {'name': 'vehicle_id', 'type': 'NUMBER', 'description': 'Vehicle id', 'default': 663317713}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/extras""\nquerystring = {""pick_up_datetime"": ""2023-09-27 16:00:00"", ""currency"": ""AED"", ""from_country"": ""it"", ""locale"": ""en-gb"", ""price"": 2860.87, ""drop_off_datetime"": ""2023-09-28 16:00:00"", ""driver_age"": 30, ""vehicle_id"": 663317713}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/extras""\nquerystring = {""pick_up_datetime"": ""2023-09-27 16:00:00"", ""currency"": ""AED"", ""from_country"": ""it"", ""locale"": ""en-gb"", ""price"": 2860.87, ""drop_off_datetime"": ""2023-09-28 16:00:00"", ""driver_age"": 30, ""vehicle_id"": 663317713}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Reviews metadata of the hotel,Get reviews metadata of the hotel by hotel_id,GET,"{'name': 'Reviews metadata of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/reviews-filter-metadata', 'description': 'Get reviews metadata of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/reviews-filter-metadata""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/reviews-filter-metadata""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Nearby cities,Get a list of nearby cities by coordinates,GET,"{'name': 'Nearby cities', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/nearby-cities', 'description': 'Get a list of nearby cities by coordinates', 'method': 'GET', 'required_parameters': [{'name': 'latitude', 'type': 'NUMBER', 'description': 'Latitude', 'default': 65.9667}, {'name': 'longitude', 'type': 'NUMBER', 'description': 'Longitude', 'default': -18.5333}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/nearby-cities""\nquerystring = {""latitude"": 65.9667, ""longitude"": -18.5333, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/nearby-cities""\nquerystring = {""latitude"": 65.9667, ""longitude"": -18.5333, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Questions about the hotel,Get questions and answers of hotel staff by hotel_id,GET,"{'name': 'Questions about the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/questions', 'description': 'Get questions and answers of hotel staff by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/questions""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/questions""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Hotel on the map,Get nearby landmarks and geo info of the hotel by hotel_id,GET,"{'name': 'Hotel on the map', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/map-markers', 'description': 'Get nearby landmarks and geo info of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/map-markers""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/map-markers""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Room list of the hotel,"Get room list of the hotel by hotel_id. Room prices, photos and full room descriptions",GET,"{'name': 'Room list of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/room-list', 'description': 'Get room list of the hotel by hotel_id. Room prices, photos and full room descriptions', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}, {'name': 'adults_number_by_rooms', 'type': 'STRING', 'description': 'The number of adults in each room. Specify the number of adults separated by commas, for example: `3,1` Means that the first room will accommodate three adults, and the second room will accommodate 1 adult. If you are looking for just one room for two adults, please specify `2`', 'default': '3,1'}, {'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}], 'optional_parameters': [{'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0,9'}, {'name': 'children_number_by_rooms', 'type': 'STRING', 'description': 'The number of children in each room. Specify the number of children separated by commas, for example: `3,1` Means that the first room will accommodate three children, and the second room will accommodate 1 children', 'default': '2,1'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/room-list""\nquerystring = {""hotel_id"": 1676161, ""currency"": ""AED"", ""checkout_date"": ""2023-09-28"", ""locale"": ""en-gb"", ""children_ages"": ""5,0,9"", ""checkin_date"": ""2023-09-27"", ""children_number_by_rooms"": ""2,1"", ""adults_number_by_rooms"": ""3,1"", ""units"": ""metric""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/room-list""\nquerystring = {""hotel_id"": 1676161, ""currency"": ""AED"", ""checkout_date"": ""2023-09-28"", ""locale"": ""en-gb"", ""children_ages"": ""5,0,9"", ""checkin_date"": ""2023-09-27"", ""children_number_by_rooms"": ""2,1"", ""adults_number_by_rooms"": ""3,1"", ""units"": ""metric""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Reviews about the supplier of vehicles ,Reviews about the supplier of vehicles by location_id,GET,"{'name': 'Reviews about the supplier of vehicles ', 'url': 'https://booking-com.p.rapidapi.com/v1/car-rental/supplier/reviews', 'description': 'Reviews about the supplier of vehicles by location_id', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'location_id', 'type': 'NUMBER', 'description': 'Location id', 'default': 4123205}, {'name': 'from_country', 'type': 'STRING', 'description': '', 'default': 'it'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/supplier/reviews""\nquerystring = {""locale"": ""en-gb"", ""location_id"": 4123205, ""from_country"": ""it""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/car-rental/supplier/reviews""\nquerystring = {""locale"": ""en-gb"", ""location_id"": 4123205, ""from_country"": ""it""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Location highlights of the hotel,"Get location highlights of the hotel by hotel_id. Ex.: metro, rail",GET,"{'name': 'Location highlights of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/location-highlights', 'description': 'Get location highlights of the hotel by hotel_id. Ex.: metro, rail', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/location-highlights""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/location-highlights""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Description of the hotel,Get description of the hotel by hotel_id,GET,"{'name': 'Description of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/description', 'description': 'Get description of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/description""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/description""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Review scores of the hotel,Get review scores of the hotel by hotel_id,GET,"{'name': 'Review scores of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/review-scores', 'description': 'Get review scores of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/review-scores""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/review-scores""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Hotel children policy,Get hotel children policy by hotel_id,GET,"{'name': 'Hotel children policy', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/children-policies', 'description': 'Get hotel children policy by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}], 'optional_parameters': [{'name': 'children_age', 'type': 'NUMBER', 'description': 'Children age', 'default': 5}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/children-policies""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161, ""children_age"": 5}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/children-policies""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161, ""children_age"": 5}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Search hotels by coordinates,Get available hotels by coordinates latitude and longitude,GET,"{'name': 'Search hotels by coordinates', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/search-by-coordinates', 'description': 'Get available hotels by coordinates latitude and longitude', 'method': 'GET', 'required_parameters': [{'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}, {'name': 'room_number', 'type': 'NUMBER', 'description': 'Number of rooms', 'default': '1'}, {'name': 'longitude', 'type': 'NUMBER', 'description': 'Longitude', 'default': -18.5333}, {'name': 'latitude', 'type': 'NUMBER', 'description': 'Latitude', 'default': 65.9667}, {'name': 'filter_by_currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'order_by', 'type': 'STRING', 'description': '', 'default': 'popularity'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'adults_number', 'type': 'NUMBER', 'description': 'Number of adults', 'default': '2'}, {'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}], 'optional_parameters': [{'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0'}, {'name': 'include_adjacency', 'type': 'BOOLEAN', 'description': 'Include nearby places. If there are few hotels in the selected location, nearby locations will be added. You should pay attention to the `primary_count` parameter - it is the number of hotels from the beginning of the array that matches the strict filter.', 'default': True}, {'name': 'children_number', 'type': 'NUMBER', 'description': 'Number of children', 'default': '2'}, {'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'categories_filter_ids', 'type': 'STRING', 'description': 'Search filter IDs. For possible filters use `@Filters for search`', 'default': 'class::2,class::4,free_cancellation::1'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search-by-coordinates""\nquerystring = {""children_ages"": ""5,0"", ""units"": ""metric"", ""room_number"": ""1"", ""longitude"": -18.5333, ""latitude"": 65.9667, ""filter_by_currency"": ""AED"", ""order_by"": ""popularity"", ""locale"": ""en-gb"", ""include_adjacency"": true, ""checkout_date"": ""2023-09-28"", ""adults_number"": ""2"", ""children_number"": ""2"", ""checkin_date"": ""2023-09-27"", ""page_number"": ""0"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search-by-coordinates""\nquerystring = {""children_ages"": ""5,0"", ""units"": ""metric"", ""room_number"": ""1"", ""longitude"": -18.5333, ""latitude"": 65.9667, ""filter_by_currency"": ""AED"", ""order_by"": ""popularity"", ""locale"": ""en-gb"", ""include_adjacency"": true, ""checkout_date"": ""2023-09-28"", ""adults_number"": ""2"", ""children_number"": ""2"", ""checkin_date"": ""2023-09-27"", ""page_number"": ""0"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Policies of the hotel,Get policies of the hotel by hotel_id,GET,"{'name': 'Policies of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/policies', 'description': 'Get policies of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/policies""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/policies""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1676161}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Payment features of the hotel,Get payment features of the hotel by hotel_id,GET,"{'name': 'Payment features of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/payment-features', 'description': 'Get payment features of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/payment-features""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/payment-features""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Reviews of the hotel,Get reviews of the hotel by hotel_id,GET,"{'name': 'Reviews of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/reviews', 'description': 'Get reviews of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'sort_type', 'type': 'STRING', 'description': '', 'default': 'SORT_MOST_RELEVANT'}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [{'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': 0}, {'name': 'language_filter', 'type': 'STRING', 'description': 'Filter reviews by language', 'default': 'en-gb,de,fr'}, {'name': 'customer_type', 'type': 'STRING', 'description': 'Customer types', 'default': 'solo_traveller,review_category_group_of_friends'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/reviews""\nquerystring = {""sort_type"": ""SORT_MOST_RELEVANT"", ""hotel_id"": 1676161, ""locale"": ""en-gb"", ""page_number"": 0, ""language_filter"": ""en-gb,de,fr"", ""customer_type"": ""solo_traveller,review_category_group_of_friends""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/reviews""\nquerystring = {""sort_type"": ""SORT_MOST_RELEVANT"", ""hotel_id"": 1676161, ""locale"": ""en-gb"", ""page_number"": 0, ""language_filter"": ""en-gb,de,fr"", ""customer_type"": ""solo_traveller,review_category_group_of_friends""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Search hotels,"Get available hotels by the filter. Indicate the `destination_id` and `dest_type` -> use **@Search locations** endpoint, check-in and check-out date, number of adults and children. For possible filters use **@Filters for search** endpoint. Use `page_number` to paginate and navigate through the result pages!
Comparable to: ![Search locations](https://i.imgur.com/PCuK81r.png)",GET,"{'name': 'Search hotels', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/search', 'description': 'Get available hotels by the filter. Indicate the `destination_id` and `dest_type` -> use **@Search locations** endpoint, check-in and check-out date, number of adults and children. For possible filters use **@Filters for search** endpoint. Use `page_number` to paginate and navigate through the result pages!
Comparable to: ![Search locations](https://i.imgur.com/PCuK81r.png)', 'method': 'GET', 'required_parameters': [{'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}, {'name': 'dest_type', 'type': 'STRING', 'description': '', 'default': 'city'}, {'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'adults_number', 'type': 'NUMBER', 'description': 'Number of adults', 'default': '2'}, {'name': 'order_by', 'type': 'STRING', 'description': '', 'default': 'popularity'}, {'name': 'dest_id', 'type': 'NUMBER', 'description': 'Destination id, use `Search locations` to find a place, field `dest_id` and `dest_type`', 'default': -553173}, {'name': 'filter_by_currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'room_number', 'type': 'NUMBER', 'description': 'Number of rooms', 'default': '1'}], 'optional_parameters': [{'name': 'children_number', 'type': 'NUMBER', 'description': 'Number of children', 'default': '2'}, {'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0'}, {'name': 'categories_filter_ids', 'type': 'STRING', 'description': 'Search filter IDs. For possible filters use `@Filters for search`', 'default': 'class::2,class::4,free_cancellation::1'}, {'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'include_adjacency', 'type': 'BOOLEAN', 'description': 'Include nearby places. If there are few hotels in the selected location, nearby locations will be added. You should pay attention to the `primary_count` parameter - it is the number of hotels from the beginning of the array that matches the strict filter.', 'default': True}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search""\nquerystring = {""checkin_date"": ""2023-09-27"", ""dest_type"": ""city"", ""children_number"": ""2"", ""units"": ""metric"", ""checkout_date"": ""2023-09-28"", ""children_ages"": ""5,0"", ""adults_number"": ""2"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""order_by"": ""popularity"", ""dest_id"": -553173, ""filter_by_currency"": ""AED"", ""locale"": ""en-gb"", ""room_number"": ""1"", ""page_number"": ""0"", ""include_adjacency"": true}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search""\nquerystring = {""checkin_date"": ""2023-09-27"", ""dest_type"": ""city"", ""children_number"": ""2"", ""units"": ""metric"", ""checkout_date"": ""2023-09-28"", ""children_ages"": ""5,0"", ""adults_number"": ""2"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""order_by"": ""popularity"", ""dest_id"": -553173, ""filter_by_currency"": ""AED"", ""locale"": ""en-gb"", ""room_number"": ""1"", ""page_number"": ""0"", ""include_adjacency"": true}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Tips of the hotel,Get guest tips of the hotel by hotel_id,GET,"{'name': 'Tips of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/tips', 'description': 'Get guest tips of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'sort_type', 'type': 'STRING', 'description': '', 'default': 'SORT_MOST_RELEVANT'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [{'name': 'language_filter', 'type': 'STRING', 'description': 'Filter reviews by language', 'default': 'en-gb,de,fr'}, {'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': 0}, {'name': 'customer_type', 'type': 'STRING', 'description': 'Customer types', 'default': 'solo_traveller,review_category_group_of_friends'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/tips""\nquerystring = {""hotel_id"": 1676161, ""sort_type"": ""SORT_MOST_RELEVANT"", ""language_filter"": ""en-gb,de,fr"", ""locale"": ""en-gb"", ""page_number"": 0, ""customer_type"": ""solo_traveller,review_category_group_of_friends""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/tips""\nquerystring = {""hotel_id"": 1676161, ""sort_type"": ""SORT_MOST_RELEVANT"", ""language_filter"": ""en-gb,de,fr"", ""locale"": ""en-gb"", ""page_number"": 0, ""customer_type"": ""solo_traveller,review_category_group_of_friends""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Facilities of the hotel,"Get facilities of the hotel by hotel_id. Ex.: `Restaurant`, `Room service`, `Breakfast in the room`",GET,"{'name': 'Facilities of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/facilities', 'description': 'Get facilities of the hotel by hotel_id. Ex.: `Restaurant`, `Room service`, `Breakfast in the room`', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/facilities""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/facilities""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Search locations,Search locations or hotels by name. Comparable to: ![Search locations](https://i.imgur.com/wLgLE5X.png),GET,"{'name': 'Search locations', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/locations', 'description': 'Search locations or hotels by name. Comparable to: ![Search locations](https://i.imgur.com/wLgLE5X.png)', 'method': 'GET', 'required_parameters': [{'name': 'name', 'type': 'STRING', 'description': 'Name', 'default': 'Berlin'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/locations""\nquerystring = {""name"": ""Berlin"", ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/locations""\nquerystring = {""name"": ""Berlin"", ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Nearby places of the hotel,"Get nearby places of the hotel by hotel_id. Ex.: nearby `Airport`, `Shopping Centre`",GET,"{'name': 'Nearby places of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/nearby-places', 'description': 'Get nearby places of the hotel by hotel_id. Ex.: nearby `Airport`, `Shopping Centre`', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/nearby-places""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/nearby-places""\nquerystring = {""hotel_id"": 1676161, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Photos of the hotel,Get all photos of the hotel by hotel_id,GET,"{'name': 'Photos of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/photos', 'description': 'Get all photos of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/photos""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/photos""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Filters for search,Get a list of available filters for hotel search,GET,"{'name': 'Filters for search', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/search-filters', 'description': 'Get a list of available filters for hotel search', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'dest_id', 'type': 'NUMBER', 'description': 'Destination id, use `Search locations` to find a place, field `dest_id` and `dest_type`', 'default': -553173}, {'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}, {'name': 'filter_by_currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'dest_type', 'type': 'STRING', 'description': '', 'default': 'city'}, {'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}, {'name': 'order_by', 'type': 'STRING', 'description': '', 'default': 'popularity'}, {'name': 'adults_number', 'type': 'NUMBER', 'description': 'Number of adults', 'default': '2'}, {'name': 'room_number', 'type': 'NUMBER', 'description': 'Number of rooms', 'default': '1'}], 'optional_parameters': [{'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'children_number', 'type': 'NUMBER', 'description': 'Number of children', 'default': '2'}, {'name': 'include_adjacency', 'type': 'BOOLEAN', 'description': 'Include nearby places. If there are few hotels in the selected location, nearby locations will be added. You should pay attention to the `primary_count` parameter - it is the number of hotels from the beginning of the array that matches the strict filter.', 'default': True}, {'name': 'categories_filter_ids', 'type': 'STRING', 'description': 'Search filter IDs. For possible filters use `@Filters for search`', 'default': 'class::2,class::4,free_cancellation::1'}, {'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search-filters""\nquerystring = {""locale"": ""en-gb"", ""page_number"": ""0"", ""dest_id"": -553173, ""checkin_date"": ""2023-09-27"", ""children_number"": ""2"", ""include_adjacency"": true, ""filter_by_currency"": ""AED"", ""checkout_date"": ""2023-09-28"", ""dest_type"": ""city"", ""units"": ""metric"", ""order_by"": ""popularity"", ""adults_number"": ""2"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""children_ages"": ""5,0"", ""room_number"": ""1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/search-filters""\nquerystring = {""locale"": ""en-gb"", ""page_number"": ""0"", ""dest_id"": -553173, ""checkin_date"": ""2023-09-27"", ""children_number"": ""2"", ""include_adjacency"": true, ""filter_by_currency"": ""AED"", ""checkout_date"": ""2023-09-28"", ""dest_type"": ""city"", ""units"": ""metric"", ""order_by"": ""popularity"", ""adults_number"": ""2"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""children_ages"": ""5,0"", ""room_number"": ""1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Districts,Returns all the districts where Booking offers hotels.,GET,"{'name': 'List of Districts', 'url': 'https://booking-com.p.rapidapi.com/v1/static/districts', 'description': 'Returns all the districts where Booking offers hotels.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'name', 'type': 'STRING', 'description': 'District name', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Country ID', 'default': ''}, {'name': 'city_id', 'type': 'STRING', 'description': 'City ID', 'default': ''}, {'name': 'district_id', 'type': 'STRING', 'description': 'District ID', 'default': ''}, {'name': 'page', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/districts""\nquerystring = {""name"": """", ""country"": """", ""city_id"": """", ""district_id"": """", ""page"": ""0""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/districts""\nquerystring = {""name"": """", ""country"": """", ""city_id"": """", ""district_id"": """", ""page"": ""0""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Hotel data,Get hotel data by hotel_id,GET,"{'name': 'Hotel data', 'url': 'https://booking-com.p.rapidapi.com/v1/hotels/data', 'description': 'Get hotel data by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/data""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/hotels/data""\nquerystring = {""hotel_id"": 1377073, ""locale"": ""en-gb""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Payment types,"Returns a list of payments. Only payments with {bookable} set to 1, can be used in processBooking. For processBooking, we always support Visa, Mastercard and American Express.",GET,"{'name': 'List of Payment types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/payment-types', 'description': 'Returns a list of payments. Only payments with {bookable} set to 1, can be used in processBooking. For processBooking, we always support Visa, Mastercard and American Express.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'payment_id', 'type': 'STRING', 'description': 'Payment ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/payment-types""\nquerystring = {""payment_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/payment-types""\nquerystring = {""payment_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Cities,Returns a list of cities where Booking.com offers hotels. location: Latitude and longitude. timezone: Timezone of the city.,GET,"{'name': 'List of Cities', 'url': 'https://booking-com.p.rapidapi.com/v1/static/cities', 'description': 'Returns a list of cities where Booking.com offers hotels. location: Latitude and longitude. timezone: Timezone of the city.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'page', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'city_id', 'type': 'STRING', 'description': 'City ID', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': 'City name', 'default': ''}, {'name': 'latitude', 'type': 'STRING', 'description': 'Latitude location', 'default': ''}, {'name': 'longitude', 'type': 'STRING', 'description': 'Longitude location', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Country ID', 'default': 'it'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/cities""\nquerystring = {""page"": ""0"", ""city_id"": """", ""name"": """", ""latitude"": """", ""longitude"": """", ""country"": ""it""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/cities""\nquerystring = {""page"": ""0"", ""city_id"": """", ""name"": """", ""latitude"": """", ""longitude"": """", ""country"": ""it""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Hotels,This call returns the hotel and room data. List of hotels,GET,"{'name': 'List of Hotels', 'url': 'https://booking-com.p.rapidapi.com/v1/static/hotels', 'description': 'This call returns the hotel and room data. List of hotels', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'page', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'city_id', 'type': 'NUMBER', 'description': 'City ID', 'default': ''}, {'name': 'slug', 'type': 'STRING', 'description': 'Website slug. Ex. `ad/plaza` or `it/castello-delle-serre`', 'default': ''}, {'name': 'region_id', 'type': 'NUMBER', 'description': 'Region ID', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Country ID', 'default': ''}, {'name': 'exact_class', 'type': 'NUMBER', 'description': 'Exact class', 'default': ''}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel ID', 'default': ''}, {'name': 'zip_code', 'type': 'STRING', 'description': 'ZIP Code', 'default': ''}, {'name': 'hotel_type_id', 'type': 'NUMBER', 'description': 'Hotel type ID', 'default': ''}, {'name': 'district_id', 'type': 'NUMBER', 'description': 'District ID', 'default': ''}, {'name': 'name', 'type': 'STRING', 'description': 'Hotel name', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotels""\nquerystring = {""page"": ""0"", ""city_id"": """", ""slug"": """", ""region_id"": """", ""country"": """", ""exact_class"": """", ""hotel_id"": """", ""zip_code"": """", ""hotel_type_id"": """", ""district_id"": """", ""name"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotels""\nquerystring = {""page"": ""0"", ""city_id"": """", ""slug"": """", ""region_id"": """", ""country"": """", ""exact_class"": """", ""hotel_id"": """", ""zip_code"": """", ""hotel_type_id"": """", ""district_id"": """", ""name"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Facility types,Returns facility types names and their translations,GET,"{'name': 'List of Facility types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/facility-types', 'description': 'Returns facility types names and their translations', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'facility_id', 'type': 'STRING', 'description': 'Facility ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/facility-types""\nquerystring = {""facility_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/facility-types""\nquerystring = {""facility_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Regions,Returns all the regions where Booking offers hotels.,GET,"{'name': 'List of Regions', 'url': 'https://booking-com.p.rapidapi.com/v1/static/regions', 'description': 'Returns all the regions where Booking offers hotels.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'region_id', 'type': 'STRING', 'description': 'Region IDs', 'default': ''}, {'name': 'page', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'name', 'type': 'STRING', 'description': 'Region name', 'default': ''}, {'name': 'country', 'type': 'STRING', 'description': 'Country ID', 'default': ''}, {'name': 'region_type', 'type': 'STRING', 'description': 'Region types', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/regions""\nquerystring = {""region_id"": """", ""page"": ""0"", ""name"": """", ""country"": """", ""region_type"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/regions""\nquerystring = {""region_id"": """", ""page"": ""0"", ""name"": """", ""country"": """", ""region_type"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Hotel types,Returns hotel types names and their translations.,GET,"{'name': 'List of Hotel types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/hotel-types', 'description': 'Returns hotel types names and their translations.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'hotel_type_id', 'type': 'STRING', 'description': 'Hotel type ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotel-types""\nquerystring = {""hotel_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotel-types""\nquerystring = {""hotel_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Room facility types,Returns room facility types names,GET,"{'name': 'List of Room facility types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/room-facility-types', 'description': 'Returns room facility types names', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'room_facility_type_id', 'type': 'STRING', 'description': 'Room facility type ID', 'default': ''}, {'name': 'facility_type_id', 'type': 'STRING', 'description': 'Facility type ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/room-facility-types""\nquerystring = {""room_facility_type_id"": """", ""facility_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/room-facility-types""\nquerystring = {""room_facility_type_id"": """", ""facility_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Hotel facility types,Returns hotel facility types names and their translations,GET,"{'name': 'List of Hotel facility types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/hotel-facility-types', 'description': 'Returns hotel facility types names and their translations', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'hotel_facility_type_id', 'type': 'STRING', 'description': 'Hotel facility type ID', 'default': ''}, {'name': 'facility_type_id', 'type': 'STRING', 'description': 'Facility type ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotel-facility-types""\nquerystring = {""hotel_facility_type_id"": """", ""facility_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/hotel-facility-types""\nquerystring = {""hotel_facility_type_id"": """", ""facility_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Room types,Returns room types names,GET,"{'name': 'List of Room types', 'url': 'https://booking-com.p.rapidapi.com/v1/static/room-types', 'description': 'Returns room types names', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'room_type_id', 'type': 'STRING', 'description': 'Room type ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/room-types""\nquerystring = {""room_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/room-types""\nquerystring = {""room_type_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Hotel chains,Returns a list of hotel chains.,GET,"{'name': 'List of Hotel chains', 'url': 'https://booking-com.p.rapidapi.com/v1/static/chain-types', 'description': 'Returns a list of hotel chains.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'name', 'type': 'STRING', 'description': 'Hotel chain name', 'default': ''}, {'name': 'chain_id', 'type': 'STRING', 'description': 'Chain ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/chain-types""\nquerystring = {""name"": """", ""chain_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/chain-types""\nquerystring = {""name"": """", ""chain_id"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",List of Countries,Returns all the country where booking offers hotels.,GET,"{'name': 'List of Countries', 'url': 'https://booking-com.p.rapidapi.com/v1/static/country', 'description': 'Returns all the country where booking offers hotels.', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [{'name': 'country', 'type': 'STRING', 'description': 'Country ID', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/country""\nquerystring = {""country"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v1/static/country""\nquerystring = {""country"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Hotels Details,Hotels Details,GET,"{'name': 'Hotels Details', 'url': 'https://booking-com.p.rapidapi.com/v2/hotels/details', 'description': 'Hotels Details', 'method': 'GET', 'required_parameters': [{'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1676161}, {'name': 'currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/details""\nquerystring = {""hotel_id"": 1676161, ""currency"": ""AED"", ""locale"": ""en-gb"", ""checkout_date"": ""2023-09-28"", ""checkin_date"": ""2023-09-27""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/details""\nquerystring = {""hotel_id"": 1676161, ""currency"": ""AED"", ""locale"": ""en-gb"", ""checkout_date"": ""2023-09-28"", ""checkin_date"": ""2023-09-27""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Hotels Search,"Get available hotels by the filter. Indicate the `destination_id` and `dest_type` -> use **@Search locations** endpoint, check-in and check-out date, number of adults and children. For possible filters use **@Filters for search** endpoint. Use `page_number` to paginate and navigate through the result pages!
Comparable to: ![Search locations](https://i.imgur.com/PCuK81r.png)",GET,"{'name': 'Hotels Search', 'url': 'https://booking-com.p.rapidapi.com/v2/hotels/search', 'description': 'Get available hotels by the filter. Indicate the `destination_id` and `dest_type` -> use **@Search locations** endpoint, check-in and check-out date, number of adults and children. For possible filters use **@Filters for search** endpoint. Use `page_number` to paginate and navigate through the result pages!
Comparable to: ![Search locations](https://i.imgur.com/PCuK81r.png)', 'method': 'GET', 'required_parameters': [{'name': 'order_by', 'type': 'STRING', 'description': '', 'default': 'popularity'}, {'name': 'adults_number', 'type': 'NUMBER', 'description': 'Number of adults', 'default': '2'}, {'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}, {'name': 'filter_by_currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'dest_id', 'type': 'NUMBER', 'description': 'Destination id, use `Search locations` to find a place, field `dest_id` and `dest_type`', 'default': -553173}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}, {'name': 'room_number', 'type': 'NUMBER', 'description': 'Number of rooms', 'default': '1'}, {'name': 'dest_type', 'type': 'STRING', 'description': '', 'default': 'city'}], 'optional_parameters': [{'name': 'include_adjacency', 'type': 'BOOLEAN', 'description': 'Include nearby places. If there are few hotels in the selected location, nearby locations will be added. You should pay attention to the `primary_count` parameter - it is the number of hotels from the beginning of the array that matches the strict filter.', 'default': True}, {'name': 'children_number', 'type': 'NUMBER', 'description': 'Number of children', 'default': '2'}, {'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0'}, {'name': 'categories_filter_ids', 'type': 'STRING', 'description': 'Search filter IDs. For possible filters use `@Filters for search` ex: `price::USD-140-190`, or `price::USD-150-min` or `price::USD-150-max`', 'default': 'class::2,class::4,free_cancellation::1'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/search""\nquerystring = {""include_adjacency"": true, ""children_number"": ""2"", ""order_by"": ""popularity"", ""adults_number"": ""2"", ""checkin_date"": ""2023-09-27"", ""filter_by_currency"": ""AED"", ""page_number"": ""0"", ""dest_id"": -553173, ""locale"": ""en-gb"", ""checkout_date"": ""2023-09-28"", ""units"": ""metric"", ""room_number"": ""1"", ""children_ages"": ""5,0"", ""dest_type"": ""city"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/search""\nquerystring = {""include_adjacency"": true, ""children_number"": ""2"", ""order_by"": ""popularity"", ""adults_number"": ""2"", ""checkin_date"": ""2023-09-27"", ""filter_by_currency"": ""AED"", ""page_number"": ""0"", ""dest_id"": -553173, ""locale"": ""en-gb"", ""checkout_date"": ""2023-09-28"", ""units"": ""metric"", ""room_number"": ""1"", ""children_ages"": ""5,0"", ""dest_type"": ""city"", ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Meta Properties description,Get meta properties description,GET,"{'name': 'Meta Properties description', 'url': 'https://booking-com.p.rapidapi.com/v2/hotels/meta-properties', 'description': 'Get meta properties description', 'method': 'GET', 'required_parameters': [], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/meta-properties""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/meta-properties""\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Filters for search,Get a list of available filters for hotel search,GET,"{'name': 'Filters for search', 'url': 'https://booking-com.p.rapidapi.com/v2/hotels/search-filters', 'description': 'Get a list of available filters for hotel search', 'method': 'GET', 'required_parameters': [{'name': 'checkin_date', 'type': 'STRING', 'description': 'Checkin date', 'default': '2023-09-27'}, {'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'room_number', 'type': 'NUMBER', 'description': 'Number of rooms', 'default': '1'}, {'name': 'dest_id', 'type': 'NUMBER', 'description': 'Destination id, use `Search locations` to find a place, field `dest_id` and `dest_type`', 'default': -553173}, {'name': 'checkout_date', 'type': 'STRING', 'description': 'Checkout date', 'default': '2023-09-28'}, {'name': 'adults_number', 'type': 'NUMBER', 'description': 'Number of adults', 'default': '2'}, {'name': 'filter_by_currency', 'type': 'STRING', 'description': '', 'default': 'AED'}, {'name': 'dest_type', 'type': 'STRING', 'description': '', 'default': 'city'}, {'name': 'order_by', 'type': 'STRING', 'description': '', 'default': 'popularity'}, {'name': 'units', 'type': 'STRING', 'description': '', 'default': 'metric'}], 'optional_parameters': [{'name': 'include_adjacency', 'type': 'BOOLEAN', 'description': 'Include nearby places. If there are few hotels in the selected location, nearby locations will be added. You should pay attention to the `primary_count` parameter - it is the number of hotels from the beginning of the array that matches the strict filter.', 'default': True}, {'name': 'categories_filter_ids', 'type': 'STRING', 'description': 'Search filter IDs. For possible filters use `@Filters for search` ex: `price::USD-140-190`, or `price::USD-150-min` or `price::USD-150-max`', 'default': 'class::2,class::4,free_cancellation::1'}, {'name': 'page_number', 'type': 'NUMBER', 'description': 'Page number', 'default': '0'}, {'name': 'children_number', 'type': 'NUMBER', 'description': 'Number of children', 'default': '2'}, {'name': 'children_ages', 'type': 'STRING', 'description': 'The age of every child. If children will be staying in the room, please indicate their ages separated by commas. 0-less than a year', 'default': '5,0'}], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/search-filters""\nquerystring = {""checkin_date"": ""2023-09-27"", ""locale"": ""en-gb"", ""include_adjacency"": true, ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""room_number"": ""1"", ""dest_id"": -553173, ""checkout_date"": ""2023-09-28"", ""page_number"": ""0"", ""adults_number"": ""2"", ""filter_by_currency"": ""AED"", ""dest_type"": ""city"", ""children_number"": ""2"", ""order_by"": ""popularity"", ""children_ages"": ""5,0"", ""units"": ""metric""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/search-filters""\nquerystring = {""checkin_date"": ""2023-09-27"", ""locale"": ""en-gb"", ""include_adjacency"": true, ""categories_filter_ids"": ""class::2,class::4,free_cancellation::1"", ""room_number"": ""1"", ""dest_id"": -553173, ""checkout_date"": ""2023-09-28"", ""page_number"": ""0"", ""adults_number"": ""2"", ""filter_by_currency"": ""AED"", ""dest_type"": ""city"", ""children_number"": ""2"", ""order_by"": ""popularity"", ""children_ages"": ""5,0"", ""units"": ""metric""}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 1, 'schema': ''}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",Description of the hotel,Get description of the hotel by hotel_id,GET,"{'name': 'Description of the hotel', 'url': 'https://booking-com.p.rapidapi.com/v2/hotels/description', 'description': 'Get description of the hotel by hotel_id', 'method': 'GET', 'required_parameters': [{'name': 'locale', 'type': 'STRING', 'description': '', 'default': 'en-gb'}, {'name': 'hotel_id', 'type': 'NUMBER', 'description': 'Hotel id', 'default': 1377073}], 'optional_parameters': [], 'code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/description""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1377073}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com.p.rapidapi.com/v2/hotels/description""\nquerystring = {""locale"": ""en-gb"", ""hotel_id"": 1377073}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com.p.rapidapi.com""\n }\n\nresponse = requests.get(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI +Travel,Booking com,"Find all hotels, view prices, photos of the hotels, reviews. Find car rental deals. **Site:** booking.com **Support**: [tipsters@rapi.one](mailto:tipsters@rapi.one) / t.me/api_tipsters",flights/multi-city,Get flights multi-city,POST,"{'name': 'flights/multi-city', 'url': 'https://booking-com13.p.rapidapi.com/flights/multi-city', 'description': 'Get flights multi-city', 'method': 'POST', 'required_parameters': [], 'optional_parameters': [{'name': 'min_price', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'infant_age', 'type': 'STRING', 'description': 'The `infant_age `must be a number(0, 1) and separated by commas\nEx: 0,1', 'default': ''}, {'name': 'page', 'type': 'NUMBER', 'description': '', 'default': '1'}, {'name': 'number_of_stops', 'type': 'ENUM', 'description': 'Default: `All`', 'default': ''}, {'name': 'children_age', 'type': 'STRING', 'description': 'The `children_age `must be a number and separated by commas\nEx: 9,2,16\n', 'default': ''}, {'name': 'country_flag', 'type': 'STRING', 'description': '`countryFlag` from `languages` endpoint\n\nDefault: `us`', 'default': 'us'}, {'name': 'adult_number', 'type': 'NUMBER', 'description': 'Default: 1', 'default': ''}, {'name': 'max_price', 'type': 'NUMBER', 'description': '', 'default': ''}, {'name': 'class', 'type': 'ENUM', 'description': 'Default: `Economy`', 'default': ''}, {'name': 'travel_time', 'type': 'STRING', 'description': 'Format: `hh:mm`\nEx: 21:30', 'default': ''}, {'name': 'airlines', 'type': 'STRING', 'description': 'airlines comma-separated or empty for all types\nGet from this API\nresultSetMetaData->marketingCarriers[index]->code\nEx: SK,BT', 'default': ''}], 'code': 'import requests\n\nurl = ""https://booking-com13.p.rapidapi.com/flights/multi-city""\nquerystring = {""min_price"": """", ""infant_age"": """", ""page"": ""1"", ""number_of_stops"": """", ""children_age"": """", ""country_flag"": ""us"", ""adult_number"": """", ""max_price"": """", ""class"": """", ""travel_time"": """", ""airlines"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com13.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'convert_code': 'import requests\n\nurl = ""https://booking-com13.p.rapidapi.com/flights/multi-city""\nquerystring = {""min_price"": """", ""infant_age"": """", ""page"": ""1"", ""number_of_stops"": """", ""children_age"": """", ""country_flag"": ""us"", ""adult_number"": """", ""max_price"": """", ""class"": """", ""travel_time"": """", ""airlines"": """"}\n\nheaders = {\n ""X-RapidAPI-Key"": ""YOUR_RAPID_API_KEY"",\n ""X-RapidAPI-Host"": ""booking-com13.p.rapidapi.com""\n }\n\nresponse = requests.post(url, headers=headers, params=querystring)\nprint(response.json())\n', 'test_endpoint': '...', 'statuscode': 200, 'schema': {'type': 'object', 'properties': {'currentPage': {'type': 'integer'}, 'data': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'availableFilters': {'type': 'array'}, 'availableSortTypes': {'type': 'array', 'items': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}, 'name': {'type': 'string'}}}}, 'carrierCodes': {'type': 'array'}, 'carrierNames': {'type': 'array'}, 'filteredFlightsCount': {'type': 'integer'}, 'flights': {'type': 'array', 'items': {'type': 'object'}}, 'flightsCount': {'type': 'integer'}, 'quickSortPrices': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'carrierPromo': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'currency': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}}}, 'value': {'type': 'integer'}}}, 'cheapTrip': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'currency': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}}}, 'value': {'type': 'integer'}}}, 'recommendation': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'currency': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}}}, 'value': {'type': 'integer'}}}, 'shortTrip': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'currency': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}}}, 'value': {'type': 'integer'}}}}}, 'resultSetMetaData': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'marketingCarriers': {'type': 'array', 'items': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'code': {'type': 'string'}, 'name': {'type': 'string'}}}}, 'priceRange': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'max': {'type': 'integer'}, 'min': {'type': 'integer'}}}, 'travelTimeRange': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'max': {'type': 'integer'}, 'min': {'type': 'integer'}}}}}, 'routes': {'type': 'array', 'items': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'departureAt': {'type': 'string'}, 'departureDate': {'type': 'string'}, 'departureTimeOfDay': {'type': 'null'}, 'destination': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'cityCode': {'type': 'string'}, 'cityName': {'type': 'string'}, 'code': {'type': 'string'}, 'continentCode': {'type': 'string'}, 'continentName': {'type': 'string'}, 'countryCode': {'type': 'string'}, 'countryName': {'type': 'string'}, 'name': {'type': 'string'}}}, 'origin': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'cityCode': {'type': 'string'}, 'cityName': {'type': 'string'}, 'code': {'type': 'string'}, 'continentCode': {'type': 'string'}, 'continentName': {'type': 'string'}, 'countryCode': {'type': 'string'}, 'countryName': {'type': 'string'}, 'name': {'type': 'string'}}}}}}, 'searchPath': {'type': 'string'}, 'sponsoredTrips': {'type': 'array', 'items': {'type': 'object'}}, 'travelers': {'type': 'array', 'items': {'type': 'object', 'properties': {'__typename': {'type': 'string'}, 'ageType': {'type': 'string'}}}}, 'tripCampaigns': {'type': 'array'}, 'type': {'type': 'string'}, 'validWithVoucher': {'type': 'boolean'}}}, 'message': {'type': 'string'}, 'resultsPerPage': {'type': 'integer'}, 'status': {'type': 'boolean'}, 'totalResultCount': {'type': 'integer'}}}}",{'SIGN-UP-FOR-KEY': 'YOUR_RAPID_API_KEY'},RapidAPI