License: MIT
ubuntu2004
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"This notebook is the data analysis I did for [this post](https://lettertok.com/index.php/2020/08/26/rethinking-hydroxychloroquine/)."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# [Boulware et al.](https://www.nejm.org/doi/10.1056/NEJMoa2016638)\n",
"\n",
"> The incidence of new illness compatible with Covid-19 did not differ significantly between participants receiving hydroxychloroquine (49 of 414 [11.8%]) and those receiving placebo (58 of 407 [14.3%])"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.830543061802432"
]
},
"execution_count": 1,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( (49/414) / (58/407))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"The study used [Fisher's exact test](https://en.wikipedia.org/wiki/Fisher%27s_exact_test) to calculate the p-value. In this case, p is the answer to the question, \"Assume that there are $821$ patients, $107$ of whom are sick. We pick $414$ of them at random. We would expect $\\frac{107}{821} \\cdot 414 \\approx 53.96 \\approx 54$ to be sick. What's the chance that 49 or less are sick, or 59 or more are sick?\"\n",
"\n",
"($49$ is the number we actually observed, and $59$ goes the same distance in the opposite direction, since it's a two-tailed test.)\n",
"\n",
"For instance, the chance that the first 49 patients we choose are sick is \n",
"$\\frac{107}{821} \\cdot \\frac{106}{820} \\cdots \\frac{59}{773}$.\n",
"Of the $772$ patients not yet chosen, $58$ of them are sick. \n",
"The chance that the next $414 - 49 = 365$ patients we choose are healthy is\n",
"$\\frac{714}{772} \\cdot \\frac{713}{771} \\cdots \\frac{350}{408} $.\n",
"But it was arbitrary to make the first $49$ patients sick, \n",
"so we multiply by ${414 \\choose 49}$.\n",
"\n",
"Let's write a function that does just that."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def chance(sick_patients):\n",
" prob = 1\n",
" for i in range(sick_patients):\n",
" prob = prob * (107-i)/(821-i)\n",
" for i in range(414-sick_patients):\n",
" prob = prob * (821-107 - i)/(821- sick_patients -i)\n",
" prob = prob * binomial(414,sick_patients)\n",
" return prob"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Let's check that the chances sum to 1"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.00000000000000\n"
]
}
],
"source": [
"sum = 0\n",
"for i in range(822): #0 to 821\n",
" sum += chance(i)\n",
"print(n(sum))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.350871118206300\n"
]
}
],
"source": [
"sum = 0\n",
"for i in range(50): #0 to 49\n",
" sum += chance(i)\n",
"for i in range(59,822): #59 to 821\n",
" sum += chance(i)\n",
"print(n(sum))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"And we get p=0.35, just as the paper says.\n",
"\n",
"Now let's do the Bayesian analysis I describe in the blog."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"ineffective_proportion = 58/407\n",
"effective_proportion = ineffective_proportion * 0.9\n",
"very_effective_proportion = ineffective_proportion * 0.5\n",
"dangerous_proportion = ineffective_proportion * 1.1\n",
"very_dangerous_proportion = ineffective_proportion * 1.5"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0712530712530713\n",
"0.128255528255528\n",
"0.142506142506143\n",
"0.156756756756757\n",
"0.213759213759214\n"
]
}
],
"source": [
"print(n(very_effective_proportion))\n",
"print(n(effective_proportion))\n",
"print(n(ineffective_proportion))\n",
"print(n(dangerous_proportion))\n",
"print(n(very_dangerous_proportion))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2180.65375347407\n",
"294570.250630714\n"
]
}
],
"source": [
"#Motorcycle versus stock market\n",
"print( 10000 * 0.97^50)\n",
"print( 10000 * 1.07^50)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"f(x) = x^49 * (1-x)^(414-49) * binomial(414,49, hold=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}</script></html>"
],
"text/plain": [
"x |--> -(x - 1)^365*x^49*binomial(414, 49)"
]
},
"execution_count": 9,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(f)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}"
]
},
"execution_count": 10,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"latex(f)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.000171386510778484\n",
"0.0503315749025967\n",
"0.0214397799798485\n",
"0.00504589206399895\n",
"1.61492837223403e-7\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)))\n",
"print(n(f(effective_proportion)))\n",
"print(n(f(ineffective_proportion)))\n",
"print(n(f(dangerous_proportion)))\n",
"print(n(f(very_dangerous_proportion)))\n",
"#The n() function makes the output a decimal instead of a huge fraction"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00342773021556968\n",
"1.00663149805193\n",
"0.428795599596971\n",
"0.100917841279979\n",
"3.22985674446806e-6\n"
]
}
],
"source": [
"print(n(100*0.2*f(very_effective_proportion)))\n",
"print(n(100*0.2*f(effective_proportion)))\n",
"print(n(100*0.2*f(ineffective_proportion)))\n",
"print(n(100*0.2*f(dangerous_proportion)))\n",
"print(n(100*0.2*f(very_dangerous_proportion)))\n",
"#The n() function makes the output a decimal instead of a huge fraction"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.53977589900120"
]
},
"execution_count": 14,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(total * 0.2 * 100)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00222612278695435\n",
"0.653751950985142\n",
"0.278479225369819\n",
"0.0655406032432649\n",
"2.09761481950923e-6\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)/total))\n",
"print(n(f(effective_proportion)/total))\n",
"print(n(f(ineffective_proportion)/total))\n",
"print(n(f(dangerous_proportion)/total))\n",
"print(n(f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.222612278695435\n",
"65.3751950985142\n",
"27.8479225369819\n",
"6.55406032432649\n",
"0.000209761481950923\n"
]
}
],
"source": [
"print(n(100*f(very_effective_proportion)/total))\n",
"print(n(100*f(effective_proportion)/total))\n",
"print(n(100*f(ineffective_proportion)/total))\n",
"print(n(100*f(dangerous_proportion)/total))\n",
"print(n(100*f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"34.4021926227904\n"
]
}
],
"source": [
"print(n(100*f(ineffective_proportion)/total) + n(100*f(dangerous_proportion)/total)+ n(100*f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Digression: what if the data was different? That is, suppose the hydroxychloroquine results were the same as the control?"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"58.9975429975430"
]
},
"execution_count": 18,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(58/407 * 414)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.142512077294686"
]
},
"execution_count": 19,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(59/414)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"0.142506142506143"
]
},
"execution_count": 20,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(58/407)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Specifically, suppose 59 out of 414 of the hydroxychloroquine group got infected. That's 14.3%, \n",
"almost exactly the same as the placebo group's 14.3%. Now follow the same procedure as before:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"fake_f(x) = x^59 * (1-x)^(414-59) * binomial(414,59, hold=True)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{355} x^{59} {414 \\choose 59}</script></html>"
],
"text/plain": [
"x |--> -(x - 1)^355*x^59*binomial(414, 59)"
]
},
"execution_count": 22,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(fake_f)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.96804363176439e-7\n",
"0.0388781457121887\n",
"0.0560069722228632\n",
"0.0404266781168745\n",
"0.0000579218083589014\n"
]
}
],
"source": [
"print(n(fake_f(very_effective_proportion)))\n",
"print(n(fake_f(effective_proportion)))\n",
"print(n(fake_f(ineffective_proportion)))\n",
"print(n(fake_f(dangerous_proportion)))\n",
"print(n(fake_f(very_dangerous_proportion)))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = fake_f(very_effective_proportion) + fake_f(effective_proportion) + fake_f(ineffective_proportion) + fake_f(dangerous_proportion) + fake_f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.45382645519118e-6\n",
"0.287199307235300\n",
"0.413732788128065\n",
"0.298638572810091\n",
"0.000427878000088801\n"
]
}
],
"source": [
"print(n(fake_f(very_effective_proportion)/total))\n",
"print(n(fake_f(effective_proportion)/total))\n",
"print(n(fake_f(ineffective_proportion)/total))\n",
"print(n(fake_f(dangerous_proportion)/total))\n",
"print(n(fake_f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Another digression: What if our priors were different?"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"ineffective_proportion = 58/407\n",
"effective_proportion = ineffective_proportion * 0.9\n",
"very_effective_proportion = ineffective_proportion * 0.5\n",
"dangerous_proportion = ineffective_proportion * 1.1\n",
"very_dangerous_proportion = ineffective_proportion * 1.5"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"f(x) = x^49 * (1-x)^(414-49) * binomial(414,49, hold=True)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{365} x^{49} {414 \\choose 49}</script></html>"
],
"text/plain": [
"x |--> -(x - 1)^365*x^49*binomial(414, 49)"
]
},
"execution_count": 28,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(f)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"prior_very_effective_proportion = 40\n",
"prior_effective_proportion = 40\n",
"prior_ineffective_proportion = 10\n",
"prior_dangerous_proportion = 5 \n",
"prior_very_dangerous_proportion = 5"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"posterior_very_effective_proportion = prior_very_effective_proportion * f(very_effective_proportion)\n",
"posterior_effective_proportion = prior_effective_proportion * f(effective_proportion)\n",
"posterior_ineffective_proportion = prior_ineffective_proportion * f(ineffective_proportion)\n",
"posterior_dangerous_proportion = prior_dangerous_proportion * f(dangerous_proportion)\n",
"posterior_very_dangerous_proportion = prior_very_dangerous_proportion * f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = posterior_very_effective_proportion + posterior_effective_proportion + posterior_ineffective_proportion + posterior_dangerous_proportion + posterior_very_dangerous_proportion"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00303372982676281\n",
"0.890924258370064\n",
"0.0948769242524658\n",
"0.0111647302255928\n",
"3.57325114785736e-7\n"
]
}
],
"source": [
"print(n(posterior_very_effective_proportion/total))\n",
"print(n(posterior_effective_proportion/total))\n",
"print(n(posterior_ineffective_proportion/total))\n",
"print(n(posterior_dangerous_proportion/total))\n",
"print(n(posterior_very_dangerous_proportion/total))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.303372982676281\n",
"89.0924258370064\n",
"9.48769242524658\n",
"1.11647302255928\n",
"0.0000357325114785736\n"
]
}
],
"source": [
"print(n(100*posterior_very_effective_proportion/total))\n",
"print(n(100*posterior_effective_proportion/total))\n",
"print(n(100*posterior_ineffective_proportion/total))\n",
"print(n(100*posterior_dangerous_proportion/total))\n",
"print(n(100*posterior_very_dangerous_proportion/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"End of digressions.\n",
"\n",
"We can also integrate the likelihood function to get probabilties. (Well, we should multiply by the prior, but we assume the prior is uniform, i.e. $y = 1$.)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"Graphics object consisting of 2 graphics primitives"
]
},
"execution_count": 34,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"plot(f,0,1)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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+5v8ZlGvV69ezR4fFRWl7t27N/ucTp06aeTIkfxW6QL+/EzAvTrq+81ngDu05edhxYoVmjFjhl588UVdccUVbcrBaTgElZiYGKWkpCg/P7/R4/n5+crIyGj2Oenp6U2OX7NmjVJTUxUdHd3scxzHkdfrVe/evQMTHO3Gn58JuFdHfb/5DHAHf38eli9frptuuknPP/+8Jk+e3PYgfk8NB9rJCy+84ERHRztLly51tm/f7syePds588wznV27djmO4zh33XWX87Of/azh+B07djhnnHGGM2fOHGf79u3O0qVLnejoaOell15qOOaee+5xXn/9defzzz93PB6Pc/PNNztRUVHOhg0bOvz9wXe+/kw4juN4PB7H4/E4KSkpzvXXX+94PB5n27ZtNuLDR+3x/eYzwL18/Xl4/vnnnaioKCc3N9cpKytruH399dd+Z6AsISjl5uY6AwYMcGJiYpwRI0Y4BQUFDX924403OmPHjm10/Nq1a53hw4c7MTExzsCBA53Fixc3+vPZs2c7/fv3d2JiYpyePXs6WVlZTmFhYUe8FQSIrz8TkprcBgwY0LGh4bdAf7/5DHA3X34exo4d2+zPw4033uj367ORLgAAQAuYswQAANACyhIAAEALKEsAAAAtoCwBAAC0gLIEAADQAsoSAABACyhLAAAALaAsAQAAtICyBAAA0ALKEgAAQAsoSwAAAC34/y+6yK66l+7DAAAAAElFTkSuQmCC",
"text/plain": [
"Graphics object consisting of 1 graphics primitive"
]
},
"execution_count": 35,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"plot(f,0,0.2)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0024096385542168746\n",
"0.0016948379490692445\n",
"0.0007148006051476249\n",
"0.9999999999999979\n",
"0.7033577488637344\n"
]
}
],
"source": [
"total_area = numerical_integral(f, 0, 1)[0]\n",
"print(total_area)\n",
"at_least_effective_area = numerical_integral(f, 0, effective_proportion)[0]\n",
"print(at_least_effective_area)\n",
"not_effective_area = numerical_integral(f, effective_proportion,1)[0]\n",
"print(not_effective_area)\n",
"\n",
"#To check that the pieces add to the total\n",
"print( (at_least_effective_area + not_effective_area) / total_area ) \n",
"\n",
"print(at_least_effective_area / total_area)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So the probability of effectiveness is roughly 70%.\n",
"\n",
"But really we should do this in 2 dimensions, since the control group's infection rate\n",
"is also determined by the data, so it may vary."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{365} x^{49} {\\left(y - 1\\right)}^{349} y^{58} {414 \\choose 49} {407 \\choose 58}</script></html>"
],
"text/plain": [
"(x, y) |--> (x - 1)^365*x^49*(y - 1)^349*y^58*binomial(414, 49)*binomial(407, 58)"
]
},
"execution_count": 37,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^49 * (1-x)^(414-49) * binomial(414,49,hold=True) * y^58 * (1-y)^(407-58) * binomial(407,58,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": "\n<iframe srcdoc=\"\n<html>\n<head>\n <style>\n * {\n margin: 0;\n padding: 0;\n overflow: hidden;\n }\n body, html { \n height: 100%;\n width: 100%;\n }\n </style>\n <script type="text/javascript" src="/nbextensions/jsmol/JSmol.min.js"></script>\n</head>\n<body>\n <script type="text/javascript">\n var script = [\n 'data "model list"',\n '10',\n 'empty',\n 'Xx -3.0 -4.0 -1.5',\n 'Xx 0.0 -4.0 -1.5',\n 'Xx 3.0 -4.0 -1.5',\n 'Xx 4.0 -3.0 -1.5',\n 'Xx 4.0 0.0 -1.5',\n 'Xx 4.0 3.0 -1.5',\n 'Xx -4.0 -3.0 -1.5',\n 'Xx -4.0 -3.0 0.0',\n 'Xx -4.0 -3.0 1.5',\n 'Xx 5.5 5.5 5.5',\n 'end "model list"; show data',\n 'select *',\n 'wireframe off; spacefill off',\n 'set labelOffset 0 0',\n 'background [255,255,255]',\n 'spin OFF',\n 'moveto 0 -764 -346 -545 76.39',\n 'centerAt absolute {0 0 0}',\n 'zoom 100',\n 'frank OFF',\n 'set perspectivedepth ON',\n 'pmesh obj_1 inline "1629',\n '-3 -3 -1.5',\n '-3 -2.84615 -1.5',\n '-2.84615 -2.84615 -1.5',\n '-2.84615 -3 -1.5',\n '-3 -2.69231 -1.5',\n '-2.84615 -2.69231 -1.5',\n '-3 -2.53846 -1.5',\n '-2.84615 -2.53846 -1.5',\n '-3 -2.38462 -1.5',\n '-2.84615 -2.38462 -1.5',\n '-3 -2.23077 -1.5',\n '-2.84615 -2.23077 -1.5',\n '-3 -2.07692 -1.5',\n '-2.84615 -2.07692 -1.5',\n '-3 -1.92308 -1.5',\n '-2.84615 -1.92308 -1.5',\n '-3 -1.76923 -1.5',\n '-2.84615 -1.76923 -1.5',\n '-3 -1.61538 -1.5',\n '-2.84615 -1.61538 -1.5',\n '-3 -1.46154 -1.5',\n '-2.84615 -1.46154 -1.5',\n '-3 -1.30769 -1.5',\n '-2.84615 -1.30769 -1.5',\n '-3 -1.15385 -1.5',\n '-2.84615 -1.15385 -1.5',\n '-3 -1 -1.5',\n '-2.84615 -1 -1.5',\n '-3 -0.846154 -1.5',\n '-2.84615 -0.846154 -1.5',\n '-3 -0.692308 -1.5',\n '-2.84615 -0.692308 -1.5',\n '-3 -0.538462 -1.5',\n '-2.84615 -0.538462 -1.5',\n '-3 -0.384615 -1.5',\n '-2.84615 -0.384615 -1.5',\n '-3 -0.230769 -1.5',\n '-2.84615 -0.230769 -1.5',\n '-3 -0.0769231 -1.5',\n '-2.84615 -0.0769231 -1.5',\n '-3 0.0769231 -1.5',\n '-2.84615 0.0769231 -1.5',\n '-3 0.230769 -1.5',\n '-2.84615 0.230769 -1.5',\n '-3 0.384615 -1.5',\n '-2.84615 0.384615 -1.5',\n '-3 0.538462 -1.5',\n '-2.84615 0.538462 -1.5',\n '-3 0.692308 -1.5',\n '-2.84615 0.692308 -1.5',\n '-3 0.846154 -1.5',\n '-2.84615 0.846154 -1.5',\n '-3 1 -1.5',\n '-2.84615 1 -1.5',\n '-3 1.15385 -1.5',\n '-2.84615 1.15385 -1.5',\n '-3 1.30769 -1.5',\n '-2.84615 1.30769 -1.5',\n '-3 1.46154 -1.5',\n '-2.84615 1.46154 -1.5',\n '-3 1.61538 -1.5',\n '-2.84615 1.61538 -1.5',\n '-3 1.76923 -1.5',\n '-2.84615 1.76923 -1.5',\n '-3 1.92308 -1.5',\n '-2.84615 1.92308 -1.5',\n '-3 2.07692 -1.5',\n '-2.84615 2.07692 -1.5',\n '-3 2.23077 -1.5',\n '-2.84615 2.23077 -1.5',\n '-3 2.38462 -1.5',\n '-2.84615 2.38462 -1.5',\n '-3 2.53846 -1.5',\n '-2.84615 2.53846 -1.5',\n '-3 2.69231 -1.5',\n '-2.84615 2.69231 -1.5',\n '-3 2.84615 -1.5',\n '-2.84615 2.84615 -1.5',\n '-3 3 -1.5',\n '-2.84615 3 -1.5',\n '-2.69231 -2.84615 -1.5',\n '-2.69231 -3 -1.5',\n '-2.69231 -2.69231 -1.5',\n '-2.69231 -2.53846 -1.5',\n '-2.69231 -2.38462 -1.5',\n '-2.69231 -2.23077 -1.5',\n '-2.69231 -2.07692 -1.5',\n '-2.69231 -1.92308 -1.5',\n '-2.69231 -1.76923 -1.5',\n '-2.69231 -1.61538 -1.5',\n '-2.69231 -1.46154 -1.5',\n '-2.69231 -1.30769 -1.5',\n '-2.69231 -1.15385 -1.5',\n '-2.69231 -1 -1.5',\n '-2.69231 -0.846154 -1.5',\n '-2.69231 -0.692308 -1.5',\n '-2.69231 -0.538462 -1.5',\n '-2.69231 -0.384615 -1.5',\n '-2.69231 -0.230769 -1.5',\n '-2.69231 -0.0769231 -1.5',\n '-2.69231 0.0769231 -1.5',\n '-2.69231 0.230769 -1.5',\n '-2.69231 0.384615 -1.5',\n '-2.69231 0.538462 -1.5',\n '-2.69231 0.692308 -1.5',\n '-2.69231 0.846154 -1.5',\n '-2.69231 1 -1.5',\n '-2.69231 1.15385 -1.5',\n '-2.69231 1.30769 -1.5',\n '-2.69231 1.46154 -1.5',\n '-2.69231 1.61538 -1.5',\n '-2.69231 1.76923 -1.5',\n '-2.69231 1.92308 -1.5',\n '-2.69231 2.07692 -1.5',\n '-2.69231 2.23077 -1.5',\n '-2.69231 2.38462 -1.5',\n '-2.69231 2.53846 -1.5',\n '-2.69231 2.69231 -1.5',\n '-2.69231 2.84615 -1.5',\n '-2.69231 3 -1.5',\n '-2.53846 -2.84615 -1.5',\n '-2.53846 -3 -1.5',\n '-2.53846 -2.69231 -1.5',\n '-2.53846 -2.53846 -1.5',\n '-2.53846 -2.38462 -1.49764',\n '-2.53846 -2.23077 -1.46024',\n '-2.53846 -2.07692 -1.45353',\n '-2.53846 -1.92308 -1.49231',\n '-2.53846 -1.76923 -1.49973',\n '-2.53846 -1.61538 -1.5',\n '-2.53846 -1.46154 -1.5',\n '-2.53846 -1.30769 -1.5',\n '-2.53846 -1.15385 -1.5',\n '-2.53846 -1 -1.5',\n '-2.53846 -0.846154 -1.5',\n '-2.53846 -0.692308 -1.5',\n '-2.53846 -0.538462 -1.5',\n '-2.53846 -0.384615 -1.5',\n '-2.53846 -0.230769 -1.5',\n '-2.53846 -0.0769231 -1.5',\n '-2.53846 0.0769231 -1.5',\n '-2.53846 0.230769 -1.5',\n '-2.53846 0.384615 -1.5',\n '-2.53846 0.538462 -1.5',\n '-2.53846 0.692308 -1.5',\n '-2.53846 0.846154 -1.5',\n '-2.53846 1 -1.5',\n '-2.53846 1.15385 -1.5',\n '-2.53846 1.30769 -1.5',\n '-2.53846 1.46154 -1.5',\n '-2.53846 1.61538 -1.5',\n '-2.53846 1.76923 -1.5',\n '-2.53846 1.92308 -1.5',\n '-2.53846 2.07692 -1.5',\n '-2.53846 2.23077 -1.5',\n '-2.53846 2.38462 -1.5',\n '-2.53846 2.53846 -1.5',\n '-2.53846 2.69231 -1.5',\n '-2.53846 2.84615 -1.5',\n '-2.53846 3 -1.5',\n '-2.38462 -2.84615 -1.5',\n '-2.38462 -3 -1.5',\n '-2.38462 -2.69231 -1.5',\n '-2.38462 -2.53846 -1.49989',\n '-2.38462 -2.38462 -1.39318',\n '-2.38462 -2.23077 0.302299',\n '-2.38462 -2.07692 0.606503',\n '-2.38462 -1.92308 -1.1513',\n '-2.38462 -1.76923 -1.48759',\n '-2.38462 -1.61538 -1.49988',\n '-2.38462 -1.46154 -1.5',\n '-2.38462 -1.30769 -1.5',\n '-2.38462 -1.15385 -1.5',\n '-2.38462 -1 -1.5',\n '-2.38462 -0.846154 -1.5',\n '-2.38462 -0.692308 -1.5',\n '-2.38462 -0.538462 -1.5',\n '-2.38462 -0.384615 -1.5',\n '-2.38462 -0.230769 -1.5',\n '-2.38462 -0.0769231 -1.5',\n '-2.38462 0.0769231 -1.5',\n '-2.38462 0.230769 -1.5',\n '-2.38462 0.384615 -1.5',\n '-2.38462 0.538462 -1.5',\n '-2.38462 0.692308 -1.5',\n '-2.38462 0.846154 -1.5',\n '-2.38462 1 -1.5',\n '-2.38462 1.15385 -1.5',\n '-2.38462 1.30769 -1.5',\n '-2.38462 1.46154 -1.5',\n '-2.38462 1.61538 -1.5',\n '-2.38462 1.76923 -1.5',\n '-2.38462 1.92308 -1.5',\n '-2.38462 2.07692 -1.5',\n '-2.38462 2.23077 -1.5',\n '-2.38462 2.38462 -1.5',\n '-2.38462 2.53846 -1.5',\n '-2.38462 2.69231 -1.5',\n '-2.38462 2.84615 -1.5',\n '-2.38462 3 -1.5',\n '-2.23077 -2.84615 -1.5',\n '-2.23077 -3 -1.5',\n '-2.23077 -2.69231 -1.5',\n '-2.23077 -2.53846 -1.49984',\n '-2.23077 -2.38462 -1.34787',\n '-2.23077 -2.23077 1.06676',\n '-2.23077 -2.07692 1.5',\n '-2.23077 -1.92308 -1.00339',\n '-2.23077 -1.76923 -1.48232',\n '-2.23077 -1.61538 -1.49982',\n '-2.23077 -1.46154 -1.5',\n '-2.23077 -1.30769 -1.5',\n '-2.23077 -1.15385 -1.5',\n '-2.23077 -1 -1.5',\n '-2.23077 -0.846154 -1.5',\n '-2.23077 -0.692308 -1.5',\n '-2.23077 -0.538462 -1.5',\n '-2.23077 -0.384615 -1.5',\n '-2.23077 -0.230769 -1.5',\n '-2.23077 -0.0769231 -1.5',\n '-2.23077 0.0769231 -1.5',\n '-2.23077 0.230769 -1.5',\n '-2.23077 0.384615 -1.5',\n '-2.23077 0.538462 -1.5',\n '-2.23077 0.692308 -1.5',\n '-2.23077 0.846154 -1.5',\n '-2.23077 1 -1.5',\n '-2.23077 1.15385 -1.5',\n '-2.23077 1.30769 -1.5',\n '-2.23077 1.46154 -1.5',\n '-2.23077 1.61538 -1.5',\n '-2.23077 1.76923 -1.5',\n '-2.23077 1.92308 -1.5',\n '-2.23077 2.07692 -1.5',\n '-2.23077 2.23077 -1.5',\n '-2.23077 2.38462 -1.5',\n '-2.23077 2.53846 -1.5',\n '-2.23077 2.69231 -1.5',\n '-2.23077 2.84615 -1.5',\n '-2.23077 3 -1.5',\n '-2.07692 -2.84615 -1.5',\n '-2.07692 -3 -1.5',\n '-2.07692 -2.69231 -1.5',\n '-2.07692 -2.53846 -1.49998',\n '-2.07692 -2.38462 -1.47863',\n '-2.07692 -2.23077 -1.13938',\n '-2.07692 -2.07692 -1.07851',\n '-2.07692 -1.92308 -1.43023',\n '-2.07692 -1.76923 -1.49752',\n '-2.07692 -1.61538 -1.49998',\n '-2.07692 -1.46154 -1.5',\n '-2.07692 -1.30769 -1.5',\n '-2.07692 -1.15385 -1.5',\n '-2.07692 -1 -1.5',\n '-2.07692 -0.846154 -1.5',\n '-2.07692 -0.692308 -1.5',\n '-2.07692 -0.538462 -1.5',\n '-2.07692 -0.384615 -1.5',\n '-2.07692 -0.230769 -1.5',\n '-2.07692 -0.0769231 -1.5',\n '-2.07692 0.0769231 -1.5',\n '-2.07692 0.230769 -1.5',\n '-2.07692 0.384615 -1.5',\n '-2.07692 0.538462 -1.5',\n '-2.07692 0.692308 -1.5',\n '-2.07692 0.846154 -1.5',\n '-2.07692 1 -1.5',\n '-2.07692 1.15385 -1.5',\n '-2.07692 1.30769 -1.5',\n '-2.07692 1.46154 -1.5',\n '-2.07692 1.61538 -1.5',\n '-2.07692 1.76923 -1.5',\n '-2.07692 1.92308 -1.5',\n '-2.07692 2.07692 -1.5',\n '-2.07692 2.23077 -1.5',\n '-2.07692 2.38462 -1.5',\n '-2.07692 2.53846 -1.5',\n '-2.07692 2.69231 -1.5',\n '-2.07692 2.84615 -1.5',\n '-2.07692 3 -1.5',\n '-1.92308 -2.84615 -1.5',\n '-1.92308 -3 -1.5',\n '-1.92308 -2.69231 -1.5',\n '-1.92308 -2.53846 -1.5',\n '-1.92308 -2.38462 -1.49946',\n '-1.92308 -2.23077 -1.49089',\n '-1.92308 -2.07692 -1.48935',\n '-1.92308 -1.92308 -1.49824',\n '-1.92308 -1.76923 -1.49994',\n '-1.92308 -1.61538 -1.5',\n '-1.92308 -1.46154 -1.5',\n '-1.92308 -1.30769 -1.5',\n '-1.92308 -1.15385 -1.5',\n '-1.92308 -1 -1.5',\n '-1.92308 -0.846154 -1.5',\n '-1.92308 -0.692308 -1.5',\n '-1.92308 -0.538462 -1.5',\n '-1.92308 -0.384615 -1.5',\n '-1.92308 -0.230769 -1.5',\n '-1.92308 -0.0769231 -1.5',\n '-1.92308 0.0769231 -1.5',\n '-1.92308 0.230769 -1.5',\n '-1.92308 0.384615 -1.5',\n '-1.92308 0.538462 -1.5',\n '-1.92308 0.692308 -1.5',\n '-1.92308 0.846154 -1.5',\n '-1.92308 1 -1.5',\n '-1.92308 1.15385 -1.5',\n '-1.92308 1.30769 -1.5',\n '-1.92308 1.46154 -1.5',\n '-1.92308 1.61538 -1.5',\n '-1.92308 1.76923 -1.5',\n '-1.92308 1.92308 -1.5',\n '-1.92308 2.07692 -1.5',\n '-1.92308 2.23077 -1.5',\n '-1.92308 2.38462 -1.5',\n '-1.92308 2.53846 -1.5',\n '-1.92308 2.69231 -1.5',\n '-1.92308 2.84615 -1.5',\n '-1.92308 3 -1.5',\n '-1.76923 -2.84615 -1.5',\n '-1.76923 -3 -1.5',\n '-1.76923 -2.69231 -1.5',\n '-1.76923 -2.53846 -1.5',\n '-1.76923 -2.38462 -1.5',\n '-1.76923 -2.23077 -1.49994',\n '-1.76923 -2.07692 -1.49993',\n '-1.76923 -1.92308 -1.49999',\n '-1.76923 -1.76923 -1.5',\n '-1.76923 -1.61538 -1.5',\n '-1.76923 -1.46154 -1.5',\n '-1.76923 -1.30769 -1.5',\n '-1.76923 -1.15385 -1.5',\n '-1.76923 -1 -1.5',\n '-1.76923 -0.846154 -1.5',\n '-1.76923 -0.692308 -1.5',\n '-1.76923 -0.538462 -1.5',\n '-1.76923 -0.384615 -1.5',\n '-1.76923 -0.230769 -1.5',\n '-1.76923 -0.0769231 -1.5',\n '-1.76923 0.0769231 -1.5',\n '-1.76923 0.230769 -1.5',\n '-1.76923 0.384615 -1.5',\n '-1.76923 0.538462 -1.5',\n '-1.76923 0.692308 -1.5',\n '-1.76923 0.846154 -1.5',\n '-1.76923 1 -1.5',\n '-1.76923 1.15385 -1.5',\n '-1.76923 1.30769 -1.5',\n '-1.76923 1.46154 -1.5',\n '-1.76923 1.61538 -1.5',\n '-1.76923 1.76923 -1.5',\n '-1.76923 1.92308 -1.5',\n '-1.76923 2.07692 -1.5',\n '-1.76923 2.23077 -1.5',\n '-1.76923 2.38462 -1.5',\n '-1.76923 2.53846 -1.5',\n '-1.76923 2.69231 -1.5',\n '-1.76923 2.84615 -1.5',\n '-1.76923 3 -1.5',\n '-1.61538 -2.84615 -1.5',\n '-1.61538 -3 -1.5',\n '-1.61538 -2.69231 -1.5',\n '-1.61538 -2.53846 -1.5',\n '-1.61538 -2.38462 -1.5',\n '-1.61538 -2.23077 -1.5',\n '-1.61538 -2.07692 -1.5',\n '-1.61538 -1.92308 -1.5',\n '-1.61538 -1.76923 -1.5',\n '-1.61538 -1.61538 -1.5',\n '-1.61538 -1.46154 -1.5',\n '-1.61538 -1.30769 -1.5',\n '-1.61538 -1.15385 -1.5',\n '-1.61538 -1 -1.5',\n '-1.61538 -0.846154 -1.5',\n '-1.61538 -0.692308 -1.5',\n '-1.61538 -0.538462 -1.5',\n '-1.61538 -0.384615 -1.5',\n '-1.61538 -0.230769 -1.5',\n '-1.61538 -0.0769231 -1.5',\n '-1.61538 0.0769231 -1.5',\n '-1.61538 0.230769 -1.5',\n '-1.61538 0.384615 -1.5',\n '-1.61538 0.538462 -1.5',\n '-1.61538 0.692308 -1.5',\n '-1.61538 0.846154 -1.5',\n '-1.61538 1 -1.5',\n '-1.61538 1.15385 -1.5',\n '-1.61538 1.30769 -1.5',\n '-1.61538 1.46154 -1.5',\n '-1.61538 1.61538 -1.5',\n '-1.61538 1.76923 -1.5',\n '-1.61538 1.92308 -1.5',\n '-1.61538 2.07692 -1.5',\n '-1.61538 2.23077 -1.5',\n '-1.61538 2.38462 -1.5',\n '-1.61538 2.53846 -1.5',\n '-1.61538 2.69231 -1.5',\n '-1.61538 2.84615 -1.5',\n '-1.61538 3 -1.5',\n '-1.46154 -2.84615 -1.5',\n '-1.46154 -3 -1.5',\n '-1.46154 -2.69231 -1.5',\n '-1.46154 -2.53846 -1.5',\n '-1.46154 -2.38462 -1.5',\n '-1.46154 -2.23077 -1.5',\n '-1.46154 -2.07692 -1.5',\n '-1.46154 -1.92308 -1.5',\n '-1.46154 -1.76923 -1.5',\n '-1.46154 -1.61538 -1.5',\n '-1.46154 -1.46154 -1.5',\n '-1.46154 -1.30769 -1.5',\n '-1.46154 -1.15385 -1.5',\n '-1.46154 -1 -1.5',\n '-1.46154 -0.846154 -1.5',\n '-1.46154 -0.692308 -1.5',\n '-1.46154 -0.538462 -1.5',\n '-1.46154 -0.384615 -1.5',\n '-1.46154 -0.230769 -1.5',\n '-1.46154 -0.0769231 -1.5',\n '-1.46154 0.0769231 -1.5',\n '-1.46154 0.230769 -1.5',\n '-1.46154 0.384615 -1.5',\n '-1.46154 0.538462 -1.5',\n '-1.46154 0.692308 -1.5',\n '-1.46154 0.846154 -1.5',\n '-1.46154 1 -1.5',\n '-1.46154 1.15385 -1.5',\n '-1.46154 1.30769 -1.5',\n '-1.46154 1.46154 -1.5',\n '-1.46154 1.61538 -1.5',\n '-1.46154 1.76923 -1.5',\n '-1.46154 1.92308 -1.5',\n '-1.46154 2.07692 -1.5',\n '-1.46154 2.23077 -1.5',\n '-1.46154 2.38462 -1.5',\n '-1.46154 2.53846 -1.5',\n '-1.46154 2.69231 -1.5',\n '-1.46154 2.84615 -1.5',\n '-1.46154 3 -1.5',\n '-1.30769 -2.84615 -1.5',\n '-1.30769 -3 -1.5',\n '-1.30769 -2.69231 -1.5',\n '-1.30769 -2.53846 -1.5',\n '-1.30769 -2.38462 -1.5',\n '-1.30769 -2.23077 -1.5',\n '-1.30769 -2.07692 -1.5',\n '-1.30769 -1.92308 -1.5',\n '-1.30769 -1.76923 -1.5',\n '-1.30769 -1.61538 -1.5',\n '-1.30769 -1.46154 -1.5',\n '-1.30769 -1.30769 -1.5',\n '-1.30769 -1.15385 -1.5',\n '-1.30769 -1 -1.5',\n '-1.30769 -0.846154 -1.5',\n '-1.30769 -0.692308 -1.5',\n '-1.30769 -0.538462 -1.5',\n '-1.30769 -0.384615 -1.5',\n '-1.30769 -0.230769 -1.5',\n '-1.30769 -0.0769231 -1.5',\n '-1.30769 0.0769231 -1.5',\n '-1.30769 0.230769 -1.5',\n '-1.30769 0.384615 -1.5',\n '-1.30769 0.538462 -1.5',\n '-1.30769 0.692308 -1.5',\n '-1.30769 0.846154 -1.5',\n '-1.30769 1 -1.5',\n '-1.30769 1.15385 -1.5',\n '-1.30769 1.30769 -1.5',\n '-1.30769 1.46154 -1.5',\n '-1.30769 1.61538 -1.5',\n '-1.30769 1.76923 -1.5',\n '-1.30769 1.92308 -1.5',\n '-1.30769 2.07692 -1.5',\n '-1.30769 2.23077 -1.5',\n '-1.30769 2.38462 -1.5',\n '-1.30769 2.53846 -1.5',\n '-1.30769 2.69231 -1.5',\n '-1.30769 2.84615 -1.5',\n '-1.30769 3 -1.5',\n '-1.15385 -2.84615 -1.5',\n '-1.15385 -3 -1.5',\n '-1.15385 -2.69231 -1.5',\n '-1.15385 -2.53846 -1.5',\n '-1.15385 -2.38462 -1.5',\n '-1.15385 -2.23077 -1.5',\n '-1.15385 -2.07692 -1.5',\n '-1.15385 -1.92308 -1.5',\n '-1.15385 -1.76923 -1.5',\n '-1.15385 -1.61538 -1.5',\n '-1.15385 -1.46154 -1.5',\n '-1.15385 -1.30769 -1.5',\n '-1.15385 -1.15385 -1.5',\n '-1.15385 -1 -1.5',\n '-1.15385 -0.846154 -1.5',\n '-1.15385 -0.692308 -1.5',\n '-1.15385 -0.538462 -1.5',\n '-1.15385 -0.384615 -1.5',\n '-1.15385 -0.230769 -1.5',\n '-1.15385 -0.0769231 -1.5',\n '-1.15385 0.0769231 -1.5',\n '-1.15385 0.230769 -1.5',\n '-1.15385 0.384615 -1.5',\n '-1.15385 0.538462 -1.5',\n '-1.15385 0.692308 -1.5',\n '-1.15385 0.846154 -1.5',\n '-1.15385 1 -1.5',\n '-1.15385 1.15385 -1.5',\n '-1.15385 1.30769 -1.5',\n '-1.15385 1.46154 -1.5',\n '-1.15385 1.61538 -1.5',\n '-1.15385 1.76923 -1.5',\n '-1.15385 1.92308 -1.5',\n '-1.15385 2.07692 -1.5',\n '-1.15385 2.23077 -1.5',\n '-1.15385 2.38462 -1.5',\n '-1.15385 2.53846 -1.5',\n '-1.15385 2.69231 -1.5',\n '-1.15385 2.84615 -1.5',\n '-1.15385 3 -1.5',\n '-1 -2.84615 -1.5',\n '-1 -3 -1.5',\n '-1 -2.69231 -1.5',\n '-1 -2.53846 -1.5',\n '-1 -2.38462 -1.5',\n '-1 -2.23077 -1.5',\n '-1 -2.07692 -1.5',\n '-1 -1.92308 -1.5',\n '-1 -1.76923 -1.5',\n '-1 -1.61538 -1.5',\n '-1 -1.46154 -1.5',\n '-1 -1.30769 -1.5',\n '-1 -1.15385 -1.5',\n '-1 -1 -1.5',\n '-1 -0.846154 -1.5',\n '-1 -0.692308 -1.5',\n '-1 -0.538462 -1.5',\n '-1 -0.384615 -1.5',\n '-1 -0.230769 -1.5',\n '-1 -0.0769231 -1.5',\n '-1 0.0769231 -1.5',\n '-1 0.230769 -1.5',\n '-1 0.384615 -1.5',\n '-1 0.538462 -1.5',\n '-1 0.692308 -1.5',\n '-1 0.846154 -1.5',\n '-1 1 -1.5',\n '-1 1.15385 -1.5',\n '-1 1.30769 -1.5',\n '-1 1.46154 -1.5',\n '-1 1.61538 -1.5',\n '-1 1.76923 -1.5',\n '-1 1.92308 -1.5',\n '-1 2.07692 -1.5',\n '-1 2.23077 -1.5',\n '-1 2.38462 -1.5',\n '-1 2.53846 -1.5',\n '-1 2.69231 -1.5',\n '-1 2.84615 -1.5',\n '-1 3 -1.5',\n '-0.846154 -2.84615 -1.5',\n '-0.846154 -3 -1.5',\n '-0.846154 -2.69231 -1.5',\n '-0.846154 -2.53846 -1.5',\n '-0.846154 -2.38462 -1.5',\n '-0.846154 -2.23077 -1.5',\n '-0.846154 -2.07692 -1.5',\n '-0.846154 -1.92308 -1.5',\n '-0.846154 -1.76923 -1.5',\n '-0.846154 -1.61538 -1.5',\n '-0.846154 -1.46154 -1.5',\n '-0.846154 -1.30769 -1.5',\n '-0.846154 -1.15385 -1.5',\n '-0.846154 -1 -1.5',\n '-0.846154 -0.846154 -1.5',\n '-0.846154 -0.692308 -1.5',\n '-0.846154 -0.538462 -1.5',\n '-0.846154 -0.384615 -1.5',\n '-0.846154 -0.230769 -1.5',\n '-0.846154 -0.0769231 -1.5',\n '-0.846154 0.0769231 -1.5',\n '-0.846154 0.230769 -1.5',\n '-0.846154 0.384615 -1.5',\n '-0.846154 0.538462 -1.5',\n '-0.846154 0.692308 -1.5',\n '-0.846154 0.846154 -1.5',\n '-0.846154 1 -1.5',\n '-0.846154 1.15385 -1.5',\n '-0.846154 1.30769 -1.5',\n '-0.846154 1.46154 -1.5',\n '-0.846154 1.61538 -1.5',\n '-0.846154 1.76923 -1.5',\n '-0.846154 1.92308 -1.5',\n '-0.846154 2.07692 -1.5',\n '-0.846154 2.23077 -1.5',\n '-0.846154 2.38462 -1.5',\n '-0.846154 2.53846 -1.5',\n '-0.846154 2.69231 -1.5',\n '-0.846154 2.84615 -1.5',\n '-0.846154 3 -1.5',\n '-0.692308 -2.84615 -1.5',\n '-0.692308 -3 -1.5',\n '-0.692308 -2.69231 -1.5',\n '-0.692308 -2.53846 -1.5',\n '-0.692308 -2.38462 -1.5',\n '-0.692308 -2.23077 -1.5',\n '-0.692308 -2.07692 -1.5',\n '-0.692308 -1.92308 -1.5',\n '-0.692308 -1.76923 -1.5',\n '-0.692308 -1.61538 -1.5',\n '-0.692308 -1.46154 -1.5',\n '-0.692308 -1.30769 -1.5',\n '-0.692308 -1.15385 -1.5',\n '-0.692308 -1 -1.5',\n '-0.692308 -0.846154 -1.5',\n '-0.692308 -0.692308 -1.5',\n '-0.692308 -0.538462 -1.5',\n '-0.692308 -0.384615 -1.5',\n '-0.692308 -0.230769 -1.5',\n '-0.692308 -0.0769231 -1.5',\n '-0.692308 0.0769231 -1.5',\n '-0.692308 0.230769 -1.5',\n '-0.692308 0.384615 -1.5',\n '-0.692308 0.538462 -1.5',\n '-0.692308 0.692308 -1.5',\n '-0.692308 0.846154 -1.5',\n '-0.692308 1 -1.5',\n '-0.692308 1.15385 -1.5',\n '-0.692308 1.30769 -1.5',\n '-0.692308 1.46154 -1.5',\n '-0.692308 1.61538 -1.5',\n '-0.692308 1.76923 -1.5',\n '-0.692308 1.92308 -1.5',\n '-0.692308 2.07692 -1.5',\n '-0.692308 2.23077 -1.5',\n '-0.692308 2.38462 -1.5',\n '-0.692308 2.53846 -1.5',\n '-0.692308 2.69231 -1.5',\n '-0.692308 2.84615 -1.5',\n '-0.692308 3 -1.5',\n '-0.538462 -2.84615 -1.5',\n '-0.538462 -3 -1.5',\n '-0.538462 -2.69231 -1.5',\n '-0.538462 -2.53846 -1.5',\n '-0.538462 -2.38462 -1.5',\n '-0.538462 -2.23077 -1.5',\n '-0.538462 -2.07692 -1.5',\n '-0.538462 -1.92308 -1.5',\n '-0.538462 -1.76923 -1.5',\n '-0.538462 -1.61538 -1.5',\n '-0.538462 -1.46154 -1.5',\n '-0.538462 -1.30769 -1.5',\n '-0.538462 -1.15385 -1.5',\n '-0.538462 -1 -1.5',\n '-0.538462 -0.846154 -1.5',\n '-0.538462 -0.692308 -1.5',\n '-0.538462 -0.538462 -1.5',\n '-0.538462 -0.384615 -1.5',\n '-0.538462 -0.230769 -1.5',\n '-0.538462 -0.0769231 -1.5',\n '-0.538462 0.0769231 -1.5',\n '-0.538462 0.230769 -1.5',\n '-0.538462 0.384615 -1.5',\n '-0.538462 0.538462 -1.5',\n '-0.538462 0.692308 -1.5',\n '-0.538462 0.846154 -1.5',\n '-0.538462 1 -1.5',\n '-0.538462 1.15385 -1.5',\n '-0.538462 1.30769 -1.5',\n '-0.538462 1.46154 -1.5',\n '-0.538462 1.61538 -1.5',\n '-0.538462 1.76923 -1.5',\n '-0.538462 1.92308 -1.5',\n '-0.538462 2.07692 -1.5',\n '-0.538462 2.23077 -1.5',\n '-0.538462 2.38462 -1.5',\n '-0.538462 2.53846 -1.5',\n '-0.538462 2.69231 -1.5',\n '-0.538462 2.84615 -1.5',\n '-0.538462 3 -1.5',\n '-0.384615 -2.84615 -1.5',\n '-0.384615 -3 -1.5',\n '-0.384615 -2.69231 -1.5',\n '-0.384615 -2.53846 -1.5',\n '-0.384615 -2.38462 -1.5',\n '-0.384615 -2.23077 -1.5',\n '-0.384615 -2.07692 -1.5',\n '-0.384615 -1.92308 -1.5',\n '-0.384615 -1.76923 -1.5',\n '-0.384615 -1.61538 -1.5',\n '-0.384615 -1.46154 -1.5',\n '-0.384615 -1.30769 -1.5',\n '-0.384615 -1.15385 -1.5',\n '-0.384615 -1 -1.5',\n '-0.384615 -0.846154 -1.5',\n '-0.384615 -0.692308 -1.5',\n '-0.384615 -0.538462 -1.5',\n '-0.384615 -0.384615 -1.5',\n '-0.384615 -0.230769 -1.5',\n '-0.384615 -0.0769231 -1.5',\n '-0.384615 0.0769231 -1.5',\n '-0.384615 0.230769 -1.5',\n '-0.384615 0.384615 -1.5',\n '-0.384615 0.538462 -1.5',\n '-0.384615 0.692308 -1.5',\n '-0.384615 0.846154 -1.5',\n '-0.384615 1 -1.5',\n '-0.384615 1.15385 -1.5',\n '-0.384615 1.30769 -1.5',\n '-0.384615 1.46154 -1.5',\n '-0.384615 1.61538 -1.5',\n '-0.384615 1.76923 -1.5',\n '-0.384615 1.92308 -1.5',\n '-0.384615 2.07692 -1.5',\n '-0.384615 2.23077 -1.5',\n '-0.384615 2.38462 -1.5',\n '-0.384615 2.53846 -1.5',\n '-0.384615 2.69231 -1.5',\n '-0.384615 2.84615 -1.5',\n '-0.384615 3 -1.5',\n '-0.230769 -2.84615 -1.5',\n '-0.230769 -3 -1.5',\n '-0.230769 -2.69231 -1.5',\n '-0.230769 -2.53846 -1.5',\n '-0.230769 -2.38462 -1.5',\n '-0.230769 -2.23077 -1.5',\n '-0.230769 -2.07692 -1.5',\n '-0.230769 -1.92308 -1.5',\n '-0.230769 -1.76923 -1.5',\n '-0.230769 -1.61538 -1.5',\n '-0.230769 -1.46154 -1.5',\n '-0.230769 -1.30769 -1.5',\n '-0.230769 -1.15385 -1.5',\n '-0.230769 -1 -1.5',\n '-0.230769 -0.846154 -1.5',\n '-0.230769 -0.692308 -1.5',\n '-0.230769 -0.538462 -1.5',\n '-0.230769 -0.384615 -1.5',\n '-0.230769 -0.230769 -1.5',\n '-0.230769 -0.0769231 -1.5',\n '-0.230769 0.0769231 -1.5',\n '-0.230769 0.230769 -1.5',\n '-0.230769 0.384615 -1.5',\n '-0.230769 0.538462 -1.5',\n '-0.230769 0.692308 -1.5',\n '-0.230769 0.846154 -1.5',\n '-0.230769 1 -1.5',\n '-0.230769 1.15385 -1.5',\n '-0.230769 1.30769 -1.5',\n '-0.230769 1.46154 -1.5',\n '-0.230769 1.61538 -1.5',\n '-0.230769 1.76923 -1.5',\n '-0.230769 1.92308 -1.5',\n '-0.230769 2.07692 -1.5',\n '-0.230769 2.23077 -1.5',\n '-0.230769 2.38462 -1.5',\n '-0.230769 2.53846 -1.5',\n '-0.230769 2.69231 -1.5',\n '-0.230769 2.84615 -1.5',\n '-0.230769 3 -1.5',\n '-0.0769231 -2.84615 -1.5',\n '-0.0769231 -3 -1.5',\n '-0.0769231 -2.69231 -1.5',\n '-0.0769231 -2.53846 -1.5',\n '-0.0769231 -2.38462 -1.5',\n '-0.0769231 -2.23077 -1.5',\n '-0.0769231 -2.07692 -1.5',\n '-0.0769231 -1.92308 -1.5',\n '-0.0769231 -1.76923 -1.5',\n '-0.0769231 -1.61538 -1.5',\n '-0.0769231 -1.46154 -1.5',\n '-0.0769231 -1.30769 -1.5',\n '-0.0769231 -1.15385 -1.5',\n '-0.0769231 -1 -1.5',\n '-0.0769231 -0.846154 -1.5',\n '-0.0769231 -0.692308 -1.5',\n '-0.0769231 -0.538462 -1.5',\n '-0.0769231 -0.384615 -1.5',\n '-0.0769231 -0.230769 -1.5',\n '-0.0769231 -0.0769231 -1.5',\n '-0.0769231 0.0769231 -1.5',\n '-0.0769231 0.230769 -1.5',\n '-0.0769231 0.384615 -1.5',\n '-0.0769231 0.538462 -1.5',\n '-0.0769231 0.692308 -1.5',\n '-0.0769231 0.846154 -1.5',\n '-0.0769231 1 -1.5',\n '-0.0769231 1.15385 -1.5',\n '-0.0769231 1.30769 -1.5',\n '-0.0769231 1.46154 -1.5',\n '-0.0769231 1.61538 -1.5',\n '-0.0769231 1.76923 -1.5',\n '-0.0769231 1.92308 -1.5',\n '-0.0769231 2.07692 -1.5',\n '-0.0769231 2.23077 -1.5',\n '-0.0769231 2.38462 -1.5',\n '-0.0769231 2.53846 -1.5',\n '-0.0769231 2.69231 -1.5',\n '-0.0769231 2.84615 -1.5',\n '-0.0769231 3 -1.5',\n '0.0769231 -2.84615 -1.5',\n '0.0769231 -3 -1.5',\n '0.0769231 -2.69231 -1.5',\n '0.0769231 -2.53846 -1.5',\n '0.0769231 -2.38462 -1.5',\n '0.0769231 -2.23077 -1.5',\n '0.0769231 -2.07692 -1.5',\n '0.0769231 -1.92308 -1.5',\n '0.0769231 -1.76923 -1.5',\n '0.0769231 -1.61538 -1.5',\n '0.0769231 -1.46154 -1.5',\n '0.0769231 -1.30769 -1.5',\n '0.0769231 -1.15385 -1.5',\n '0.0769231 -1 -1.5',\n '0.0769231 -0.846154 -1.5',\n '0.0769231 -0.692308 -1.5',\n '0.0769231 -0.538462 -1.5',\n '0.0769231 -0.384615 -1.5',\n '0.0769231 -0.230769 -1.5',\n '0.0769231 -0.0769231 -1.5',\n '0.0769231 0.0769231 -1.5',\n '0.0769231 0.230769 -1.5',\n '0.0769231 0.384615 -1.5',\n '0.0769231 0.538462 -1.5',\n '0.0769231 0.692308 -1.5',\n '0.0769231 0.846154 -1.5',\n '0.0769231 1 -1.5',\n '0.0769231 1.15385 -1.5',\n '0.0769231 1.30769 -1.5',\n '0.0769231 1.46154 -1.5',\n '0.0769231 1.61538 -1.5',\n '0.0769231 1.76923 -1.5',\n '0.0769231 1.92308 -1.5',\n '0.0769231 2.07692 -1.5',\n '0.0769231 2.23077 -1.5',\n '0.0769231 2.38462 -1.5',\n '0.0769231 2.53846 -1.5',\n '0.0769231 2.69231 -1.5',\n '0.0769231 2.84615 -1.5',\n '0.0769231 3 -1.5',\n '0.230769 -2.84615 -1.5',\n '0.230769 -3 -1.5',\n '0.230769 -2.69231 -1.5',\n '0.230769 -2.53846 -1.5',\n '0.230769 -2.38462 -1.5',\n '0.230769 -2.23077 -1.5',\n '0.230769 -2.07692 -1.5',\n '0.230769 -1.92308 -1.5',\n '0.230769 -1.76923 -1.5',\n '0.230769 -1.61538 -1.5',\n '0.230769 -1.46154 -1.5',\n '0.230769 -1.30769 -1.5',\n '0.230769 -1.15385 -1.5',\n '0.230769 -1 -1.5',\n '0.230769 -0.846154 -1.5',\n '0.230769 -0.692308 -1.5',\n '0.230769 -0.538462 -1.5',\n '0.230769 -0.384615 -1.5',\n '0.230769 -0.230769 -1.5',\n '0.230769 -0.0769231 -1.5',\n '0.230769 0.0769231 -1.5',\n '0.230769 0.230769 -1.5',\n '0.230769 0.384615 -1.5',\n '0.230769 0.538462 -1.5',\n '0.230769 0.692308 -1.5',\n '0.230769 0.846154 -1.5',\n '0.230769 1 -1.5',\n '0.230769 1.15385 -1.5',\n '0.230769 1.30769 -1.5',\n '0.230769 1.46154 -1.5',\n '0.230769 1.61538 -1.5',\n '0.230769 1.76923 -1.5',\n '0.230769 1.92308 -1.5',\n '0.230769 2.07692 -1.5',\n '0.230769 2.23077 -1.5',\n '0.230769 2.38462 -1.5',\n '0.230769 2.53846 -1.5',\n '0.230769 2.69231 -1.5',\n '0.230769 2.84615 -1.5',\n '0.230769 3 -1.5',\n '0.384615 -2.84615 -1.5',\n '0.384615 -3 -1.5',\n '0.384615 -2.69231 -1.5',\n '0.384615 -2.53846 -1.5',\n '0.384615 -2.38462 -1.5',\n '0.384615 -2.23077 -1.5',\n '0.384615 -2.07692 -1.5',\n '0.384615 -1.92308 -1.5',\n '0.384615 -1.76923 -1.5',\n '0.384615 -1.61538 -1.5',\n '0.384615 -1.46154 -1.5',\n '0.384615 -1.30769 -1.5',\n '0.384615 -1.15385 -1.5',\n '0.384615 -1 -1.5',\n '0.384615 -0.846154 -1.5',\n '0.384615 -0.692308 -1.5',\n '0.384615 -0.538462 -1.5',\n '0.384615 -0.384615 -1.5',\n '0.384615 -0.230769 -1.5',\n '0.384615 -0.0769231 -1.5',\n '0.384615 0.0769231 -1.5',\n '0.384615 0.230769 -1.5',\n '0.384615 0.384615 -1.5',\n '0.384615 0.538462 -1.5',\n '0.384615 0.692308 -1.5',\n '0.384615 0.846154 -1.5',\n '0.384615 1 -1.5',\n '0.384615 1.15385 -1.5',\n '0.384615 1.30769 -1.5',\n '0.384615 1.46154 -1.5',\n '0.384615 1.61538 -1.5',\n '0.384615 1.76923 -1.5',\n '0.384615 1.92308 -1.5',\n '0.384615 2.07692 -1.5',\n '0.384615 2.23077 -1.5',\n '0.384615 2.38462 -1.5',\n '0.384615 2.53846 -1.5',\n '0.384615 2.69231 -1.5',\n '0.384615 2.84615 -1.5',\n '0.384615 3 -1.5',\n '0.538462 -2.84615 -1.5',\n '0.538462 -3 -1.5',\n '0.538462 -2.69231 -1.5',\n '0.538462 -2.53846 -1.5',\n '0.538462 -2.38462 -1.5',\n '0.538462 -2.23077 -1.5',\n '0.538462 -2.07692 -1.5',\n '0.538462 -1.92308 -1.5',\n '0.538462 -1.76923 -1.5',\n '0.538462 -1.61538 -1.5',\n '0.538462 -1.46154 -1.5',\n '0.538462 -1.30769 -1.5',\n '0.538462 -1.15385 -1.5',\n '0.538462 -1 -1.5',\n '0.538462 -0.846154 -1.5',\n '0.538462 -0.692308 -1.5',\n '0.538462 -0.538462 -1.5',\n '0.538462 -0.384615 -1.5',\n '0.538462 -0.230769 -1.5',\n '0.538462 -0.0769231 -1.5',\n '0.538462 0.0769231 -1.5',\n '0.538462 0.230769 -1.5',\n '0.538462 0.384615 -1.5',\n '0.538462 0.538462 -1.5',\n '0.538462 0.692308 -1.5',\n '0.538462 0.846154 -1.5',\n '0.538462 1 -1.5',\n '0.538462 1.15385 -1.5',\n '0.538462 1.30769 -1.5',\n '0.538462 1.46154 -1.5',\n '0.538462 1.61538 -1.5',\n '0.538462 1.76923 -1.5',\n '0.538462 1.92308 -1.5',\n '0.538462 2.07692 -1.5',\n '0.538462 2.23077 -1.5',\n '0.538462 2.38462 -1.5',\n '0.538462 2.53846 -1.5',\n '0.538462 2.69231 -1.5',\n '0.538462 2.84615 -1.5',\n '0.538462 3 -1.5',\n '0.692308 -2.84615 -1.5',\n '0.692308 -3 -1.5',\n '0.692308 -2.69231 -1.5',\n '0.692308 -2.53846 -1.5',\n '0.692308 -2.38462 -1.5',\n '0.692308 -2.23077 -1.5',\n '0.692308 -2.07692 -1.5',\n '0.692308 -1.92308 -1.5',\n '0.692308 -1.76923 -1.5',\n '0.692308 -1.61538 -1.5',\n '0.692308 -1.46154 -1.5',\n '0.692308 -1.30769 -1.5',\n '0.692308 -1.15385 -1.5',\n '0.692308 -1 -1.5',\n '0.692308 -0.846154 -1.5',\n '0.692308 -0.692308 -1.5',\n '0.692308 -0.538462 -1.5',\n '0.692308 -0.384615 -1.5',\n '0.692308 -0.230769 -1.5',\n '0.692308 -0.0769231 -1.5',\n '0.692308 0.0769231 -1.5',\n '0.692308 0.230769 -1.5',\n '0.692308 0.384615 -1.5',\n '0.692308 0.538462 -1.5',\n '0.692308 0.692308 -1.5',\n '0.692308 0.846154 -1.5',\n '0.692308 1 -1.5',\n '0.692308 1.15385 -1.5',\n '0.692308 1.30769 -1.5',\n '0.692308 1.46154 -1.5',\n '0.692308 1.61538 -1.5',\n '0.692308 1.76923 -1.5',\n '0.692308 1.92308 -1.5',\n '0.692308 2.07692 -1.5',\n '0.692308 2.23077 -1.5',\n '0.692308 2.38462 -1.5',\n '0.692308 2.53846 -1.5',\n '0.692308 2.69231 -1.5',\n '0.692308 2.84615 -1.5',\n '0.692308 3 -1.5',\n '0.846154 -2.84615 -1.5',\n '0.846154 -3 -1.5',\n '0.846154 -2.69231 -1.5',\n '0.846154 -2.53846 -1.5',\n '0.846154 -2.38462 -1.5',\n '0.846154 -2.23077 -1.5',\n '0.846154 -2.07692 -1.5',\n '0.846154 -1.92308 -1.5',\n '0.846154 -1.76923 -1.5',\n '0.846154 -1.61538 -1.5',\n '0.846154 -1.46154 -1.5',\n '0.846154 -1.30769 -1.5',\n '0.846154 -1.15385 -1.5',\n '0.846154 -1 -1.5',\n '0.846154 -0.846154 -1.5',\n '0.846154 -0.692308 -1.5',\n '0.846154 -0.538462 -1.5',\n '0.846154 -0.384615 -1.5',\n '0.846154 -0.230769 -1.5',\n '0.846154 -0.0769231 -1.5',\n '0.846154 0.0769231 -1.5',\n '0.846154 0.230769 -1.5',\n '0.846154 0.384615 -1.5',\n '0.846154 0.538462 -1.5',\n '0.846154 0.692308 -1.5',\n '0.846154 0.846154 -1.5',\n '0.846154 1 -1.5',\n '0.846154 1.15385 -1.5',\n '0.846154 1.30769 -1.5',\n '0.846154 1.46154 -1.5',\n '0.846154 1.61538 -1.5',\n '0.846154 1.76923 -1.5',\n '0.846154 1.92308 -1.5',\n '0.846154 2.07692 -1.5',\n '0.846154 2.23077 -1.5',\n '0.846154 2.38462 -1.5',\n '0.846154 2.53846 -1.5',\n '0.846154 2.69231 -1.5',\n '0.846154 2.84615 -1.5',\n '0.846154 3 -1.5',\n '1 -2.84615 -1.5',\n '1 -3 -1.5',\n '1 -2.69231 -1.5',\n '1 -2.53846 -1.5',\n '1 -2.38462 -1.5',\n '1 -2.23077 -1.5',\n '1 -2.07692 -1.5',\n '1 -1.92308 -1.5',\n '1 -1.76923 -1.5',\n '1 -1.61538 -1.5',\n '1 -1.46154 -1.5',\n '1 -1.30769 -1.5',\n '1 -1.15385 -1.5',\n '1 -1 -1.5',\n '1 -0.846154 -1.5',\n '1 -0.692308 -1.5',\n '1 -0.538462 -1.5',\n '1 -0.384615 -1.5',\n '1 -0.230769 -1.5',\n '1 -0.0769231 -1.5',\n '1 0.0769231 -1.5',\n '1 0.230769 -1.5',\n '1 0.384615 -1.5',\n '1 0.538462 -1.5',\n '1 0.692308 -1.5',\n '1 0.846154 -1.5',\n '1 1 -1.5',\n '1 1.15385 -1.5',\n '1 1.30769 -1.5',\n '1 1.46154 -1.5',\n '1 1.61538 -1.5',\n '1 1.76923 -1.5',\n '1 1.92308 -1.5',\n '1 2.07692 -1.5',\n '1 2.23077 -1.5',\n '1 2.38462 -1.5',\n '1 2.53846 -1.5',\n '1 2.69231 -1.5',\n '1 2.84615 -1.5',\n '1 3 -1.5',\n '1.15385 -2.84615 -1.5',\n '1.15385 -3 -1.5',\n '1.15385 -2.69231 -1.5',\n '1.15385 -2.53846 -1.5',\n '1.15385 -2.38462 -1.5',\n '1.15385 -2.23077 -1.5',\n '1.15385 -2.07692 -1.5',\n '1.15385 -1.92308 -1.5',\n '1.15385 -1.76923 -1.5',\n '1.15385 -1.61538 -1.5',\n '1.15385 -1.46154 -1.5',\n '1.15385 -1.30769 -1.5',\n '1.15385 -1.15385 -1.5',\n '1.15385 -1 -1.5',\n '1.15385 -0.846154 -1.5',\n '1.15385 -0.692308 -1.5',\n '1.15385 -0.538462 -1.5',\n '1.15385 -0.384615 -1.5',\n '1.15385 -0.230769 -1.5',\n '1.15385 -0.0769231 -1.5',\n '1.15385 0.0769231 -1.5',\n '1.15385 0.230769 -1.5',\n '1.15385 0.384615 -1.5',\n '1.15385 0.538462 -1.5',\n '1.15385 0.692308 -1.5',\n '1.15385 0.846154 -1.5',\n '1.15385 1 -1.5',\n '1.15385 1.15385 -1.5',\n '1.15385 1.30769 -1.5',\n '1.15385 1.46154 -1.5',\n '1.15385 1.61538 -1.5',\n '1.15385 1.76923 -1.5',\n '1.15385 1.92308 -1.5',\n '1.15385 2.07692 -1.5',\n '1.15385 2.23077 -1.5',\n '1.15385 2.38462 -1.5',\n '1.15385 2.53846 -1.5',\n '1.15385 2.69231 -1.5',\n '1.15385 2.84615 -1.5',\n '1.15385 3 -1.5',\n '1.30769 -2.84615 -1.5',\n '1.30769 -3 -1.5',\n '1.30769 -2.69231 -1.5',\n '1.30769 -2.53846 -1.5',\n '1.30769 -2.38462 -1.5',\n '1.30769 -2.23077 -1.5',\n '1.30769 -2.07692 -1.5',\n '1.30769 -1.92308 -1.5',\n '1.30769 -1.76923 -1.5',\n '1.30769 -1.61538 -1.5',\n '1.30769 -1.46154 -1.5',\n '1.30769 -1.30769 -1.5',\n '1.30769 -1.15385 -1.5',\n '1.30769 -1 -1.5',\n '1.30769 -0.846154 -1.5',\n '1.30769 -0.692308 -1.5',\n '1.30769 -0.538462 -1.5',\n '1.30769 -0.384615 -1.5',\n '1.30769 -0.230769 -1.5',\n '1.30769 -0.0769231 -1.5',\n '1.30769 0.0769231 -1.5',\n '1.30769 0.230769 -1.5',\n '1.30769 0.384615 -1.5',\n '1.30769 0.538462 -1.5',\n '1.30769 0.692308 -1.5',\n '1.30769 0.846154 -1.5',\n '1.30769 1 -1.5',\n '1.30769 1.15385 -1.5',\n '1.30769 1.30769 -1.5',\n '1.30769 1.46154 -1.5',\n '1.30769 1.61538 -1.5',\n '1.30769 1.76923 -1.5',\n '1.30769 1.92308 -1.5',\n '1.30769 2.07692 -1.5',\n '1.30769 2.23077 -1.5',\n '1.30769 2.38462 -1.5',\n '1.30769 2.53846 -1.5',\n '1.30769 2.69231 -1.5',\n '1.30769 2.84615 -1.5',\n '1.30769 3 -1.5',\n '1.46154 -2.84615 -1.5',\n '1.46154 -3 -1.5',\n '1.46154 -2.69231 -1.5',\n '1.46154 -2.53846 -1.5',\n '1.46154 -2.38462 -1.5',\n '1.46154 -2.23077 -1.5',\n '1.46154 -2.07692 -1.5',\n '1.46154 -1.92308 -1.5',\n '1.46154 -1.76923 -1.5',\n '1.46154 -1.61538 -1.5',\n '1.46154 -1.46154 -1.5',\n '1.46154 -1.30769 -1.5',\n '1.46154 -1.15385 -1.5',\n '1.46154 -1 -1.5',\n '1.46154 -0.846154 -1.5',\n '1.46154 -0.692308 -1.5',\n '1.46154 -0.538462 -1.5',\n '1.46154 -0.384615 -1.5',\n '1.46154 -0.230769 -1.5',\n '1.46154 -0.0769231 -1.5',\n '1.46154 0.0769231 -1.5',\n '1.46154 0.230769 -1.5',\n '1.46154 0.384615 -1.5',\n '1.46154 0.538462 -1.5',\n '1.46154 0.692308 -1.5',\n '1.46154 0.846154 -1.5',\n '1.46154 1 -1.5',\n '1.46154 1.15385 -1.5',\n '1.46154 1.30769 -1.5',\n '1.46154 1.46154 -1.5',\n '1.46154 1.61538 -1.5',\n '1.46154 1.76923 -1.5',\n '1.46154 1.92308 -1.5',\n '1.46154 2.07692 -1.5',\n '1.46154 2.23077 -1.5',\n '1.46154 2.38462 -1.5',\n '1.46154 2.53846 -1.5',\n '1.46154 2.69231 -1.5',\n '1.46154 2.84615 -1.5',\n '1.46154 3 -1.5',\n '1.61538 -2.84615 -1.5',\n '1.61538 -3 -1.5',\n '1.61538 -2.69231 -1.5',\n '1.61538 -2.53846 -1.5',\n '1.61538 -2.38462 -1.5',\n '1.61538 -2.23077 -1.5',\n '1.61538 -2.07692 -1.5',\n '1.61538 -1.92308 -1.5',\n '1.61538 -1.76923 -1.5',\n '1.61538 -1.61538 -1.5',\n '1.61538 -1.46154 -1.5',\n '1.61538 -1.30769 -1.5',\n '1.61538 -1.15385 -1.5',\n '1.61538 -1 -1.5',\n '1.61538 -0.846154 -1.5',\n '1.61538 -0.692308 -1.5',\n '1.61538 -0.538462 -1.5',\n '1.61538 -0.384615 -1.5',\n '1.61538 -0.230769 -1.5',\n '1.61538 -0.0769231 -1.5',\n '1.61538 0.0769231 -1.5',\n '1.61538 0.230769 -1.5',\n '1.61538 0.384615 -1.5',\n '1.61538 0.538462 -1.5',\n '1.61538 0.692308 -1.5',\n '1.61538 0.846154 -1.5',\n '1.61538 1 -1.5',\n '1.61538 1.15385 -1.5',\n '1.61538 1.30769 -1.5',\n '1.61538 1.46154 -1.5',\n '1.61538 1.61538 -1.5',\n '1.61538 1.76923 -1.5',\n '1.61538 1.92308 -1.5',\n '1.61538 2.07692 -1.5',\n '1.61538 2.23077 -1.5',\n '1.61538 2.38462 -1.5',\n '1.61538 2.53846 -1.5',\n '1.61538 2.69231 -1.5',\n '1.61538 2.84615 -1.5',\n '1.61538 3 -1.5',\n '1.76923 -2.84615 -1.5',\n '1.76923 -3 -1.5',\n '1.76923 -2.69231 -1.5',\n '1.76923 -2.53846 -1.5',\n '1.76923 -2.38462 -1.5',\n '1.76923 -2.23077 -1.5',\n '1.76923 -2.07692 -1.5',\n '1.76923 -1.92308 -1.5',\n '1.76923 -1.76923 -1.5',\n '1.76923 -1.61538 -1.5',\n '1.76923 -1.46154 -1.5',\n '1.76923 -1.30769 -1.5',\n '1.76923 -1.15385 -1.5',\n '1.76923 -1 -1.5',\n '1.76923 -0.846154 -1.5',\n '1.76923 -0.692308 -1.5',\n '1.76923 -0.538462 -1.5',\n '1.76923 -0.384615 -1.5',\n '1.76923 -0.230769 -1.5',\n '1.76923 -0.0769231 -1.5',\n '1.76923 0.0769231 -1.5',\n '1.76923 0.230769 -1.5',\n '1.76923 0.384615 -1.5',\n '1.76923 0.538462 -1.5',\n '1.76923 0.692308 -1.5',\n '1.76923 0.846154 -1.5',\n '1.76923 1 -1.5',\n '1.76923 1.15385 -1.5',\n '1.76923 1.30769 -1.5',\n '1.76923 1.46154 -1.5',\n '1.76923 1.61538 -1.5',\n '1.76923 1.76923 -1.5',\n '1.76923 1.92308 -1.5',\n '1.76923 2.07692 -1.5',\n '1.76923 2.23077 -1.5',\n '1.76923 2.38462 -1.5',\n '1.76923 2.53846 -1.5',\n '1.76923 2.69231 -1.5',\n '1.76923 2.84615 -1.5',\n '1.76923 3 -1.5',\n '1.92308 -2.84615 -1.5',\n '1.92308 -3 -1.5',\n '1.92308 -2.69231 -1.5',\n '1.92308 -2.53846 -1.5',\n '1.92308 -2.38462 -1.5',\n '1.92308 -2.23077 -1.5',\n '1.92308 -2.07692 -1.5',\n '1.92308 -1.92308 -1.5',\n '1.92308 -1.76923 -1.5',\n '1.92308 -1.61538 -1.5',\n '1.92308 -1.46154 -1.5',\n '1.92308 -1.30769 -1.5',\n '1.92308 -1.15385 -1.5',\n '1.92308 -1 -1.5',\n '1.92308 -0.846154 -1.5',\n '1.92308 -0.692308 -1.5',\n '1.92308 -0.538462 -1.5',\n '1.92308 -0.384615 -1.5',\n '1.92308 -0.230769 -1.5',\n '1.92308 -0.0769231 -1.5',\n '1.92308 0.0769231 -1.5',\n '1.92308 0.230769 -1.5',\n '1.92308 0.384615 -1.5',\n '1.92308 0.538462 -1.5',\n '1.92308 0.692308 -1.5',\n '1.92308 0.846154 -1.5',\n '1.92308 1 -1.5',\n '1.92308 1.15385 -1.5',\n '1.92308 1.30769 -1.5',\n '1.92308 1.46154 -1.5',\n '1.92308 1.61538 -1.5',\n '1.92308 1.76923 -1.5',\n '1.92308 1.92308 -1.5',\n '1.92308 2.07692 -1.5',\n '1.92308 2.23077 -1.5',\n '1.92308 2.38462 -1.5',\n '1.92308 2.53846 -1.5',\n '1.92308 2.69231 -1.5',\n '1.92308 2.84615 -1.5',\n '1.92308 3 -1.5',\n '2.07692 -2.84615 -1.5',\n '2.07692 -3 -1.5',\n '2.07692 -2.69231 -1.5',\n '2.07692 -2.53846 -1.5',\n '2.07692 -2.38462 -1.5',\n '2.07692 -2.23077 -1.5',\n '2.07692 -2.07692 -1.5',\n '2.07692 -1.92308 -1.5',\n '2.07692 -1.76923 -1.5',\n '2.07692 -1.61538 -1.5',\n '2.07692 -1.46154 -1.5',\n '2.07692 -1.30769 -1.5',\n '2.07692 -1.15385 -1.5',\n '2.07692 -1 -1.5',\n '2.07692 -0.846154 -1.5',\n '2.07692 -0.692308 -1.5',\n '2.07692 -0.538462 -1.5',\n '2.07692 -0.384615 -1.5',\n '2.07692 -0.230769 -1.5',\n '2.07692 -0.0769231 -1.5',\n '2.07692 0.0769231 -1.5',\n '2.07692 0.230769 -1.5',\n '2.07692 0.384615 -1.5',\n '2.07692 0.538462 -1.5',\n '2.07692 0.692308 -1.5',\n '2.07692 0.846154 -1.5',\n '2.07692 1 -1.5',\n '2.07692 1.15385 -1.5',\n '2.07692 1.30769 -1.5',\n '2.07692 1.46154 -1.5',\n '2.07692 1.61538 -1.5',\n '2.07692 1.76923 -1.5',\n '2.07692 1.92308 -1.5',\n '2.07692 2.07692 -1.5',\n '2.07692 2.23077 -1.5',\n '2.07692 2.38462 -1.5',\n '2.07692 2.53846 -1.5',\n '2.07692 2.69231 -1.5',\n '2.07692 2.84615 -1.5',\n '2.07692 3 -1.5',\n '2.23077 -2.84615 -1.5',\n '2.23077 -3 -1.5',\n '2.23077 -2.69231 -1.5',\n '2.23077 -2.53846 -1.5',\n '2.23077 -2.38462 -1.5',\n '2.23077 -2.23077 -1.5',\n '2.23077 -2.07692 -1.5',\n '2.23077 -1.92308 -1.5',\n '2.23077 -1.76923 -1.5',\n '2.23077 -1.61538 -1.5',\n '2.23077 -1.46154 -1.5',\n '2.23077 -1.30769 -1.5',\n '2.23077 -1.15385 -1.5',\n '2.23077 -1 -1.5',\n '2.23077 -0.846154 -1.5',\n '2.23077 -0.692308 -1.5',\n '2.23077 -0.538462 -1.5',\n '2.23077 -0.384615 -1.5',\n '2.23077 -0.230769 -1.5',\n '2.23077 -0.0769231 -1.5',\n '2.23077 0.0769231 -1.5',\n '2.23077 0.230769 -1.5',\n '2.23077 0.384615 -1.5',\n '2.23077 0.538462 -1.5',\n '2.23077 0.692308 -1.5',\n '2.23077 0.846154 -1.5',\n '2.23077 1 -1.5',\n '2.23077 1.15385 -1.5',\n '2.23077 1.30769 -1.5',\n '2.23077 1.46154 -1.5',\n '2.23077 1.61538 -1.5',\n '2.23077 1.76923 -1.5',\n '2.23077 1.92308 -1.5',\n '2.23077 2.07692 -1.5',\n '2.23077 2.23077 -1.5',\n '2.23077 2.38462 -1.5',\n '2.23077 2.53846 -1.5',\n '2.23077 2.69231 -1.5',\n '2.23077 2.84615 -1.5',\n '2.23077 3 -1.5',\n '2.38462 -2.84615 -1.5',\n '2.38462 -3 -1.5',\n '2.38462 -2.69231 -1.5',\n '2.38462 -2.53846 -1.5',\n '2.38462 -2.38462 -1.5',\n '2.38462 -2.23077 -1.5',\n '2.38462 -2.07692 -1.5',\n '2.38462 -1.92308 -1.5',\n '2.38462 -1.76923 -1.5',\n '2.38462 -1.61538 -1.5',\n '2.38462 -1.46154 -1.5',\n '2.38462 -1.30769 -1.5',\n '2.38462 -1.15385 -1.5',\n '2.38462 -1 -1.5',\n '2.38462 -0.846154 -1.5',\n '2.38462 -0.692308 -1.5',\n '2.38462 -0.538462 -1.5',\n '2.38462 -0.384615 -1.5',\n '2.38462 -0.230769 -1.5',\n '2.38462 -0.0769231 -1.5',\n '2.38462 0.0769231 -1.5',\n '2.38462 0.230769 -1.5',\n '2.38462 0.384615 -1.5',\n '2.38462 0.538462 -1.5',\n '2.38462 0.692308 -1.5',\n '2.38462 0.846154 -1.5',\n '2.38462 1 -1.5',\n '2.38462 1.15385 -1.5',\n '2.38462 1.30769 -1.5',\n '2.38462 1.46154 -1.5',\n '2.38462 1.61538 -1.5',\n '2.38462 1.76923 -1.5',\n '2.38462 1.92308 -1.5',\n '2.38462 2.07692 -1.5',\n '2.38462 2.23077 -1.5',\n '2.38462 2.38462 -1.5',\n '2.38462 2.53846 -1.5',\n '2.38462 2.69231 -1.5',\n '2.38462 2.84615 -1.5',\n '2.38462 3 -1.5',\n '2.53846 -2.84615 -1.5',\n '2.53846 -3 -1.5',\n '2.53846 -2.69231 -1.5',\n '2.53846 -2.53846 -1.5',\n '2.53846 -2.38462 -1.5',\n '2.53846 -2.23077 -1.5',\n '2.53846 -2.07692 -1.5',\n '2.53846 -1.92308 -1.5',\n '2.53846 -1.76923 -1.5',\n '2.53846 -1.61538 -1.5',\n '2.53846 -1.46154 -1.5',\n '2.53846 -1.30769 -1.5',\n '2.53846 -1.15385 -1.5',\n '2.53846 -1 -1.5',\n '2.53846 -0.846154 -1.5',\n '2.53846 -0.692308 -1.5',\n '2.53846 -0.538462 -1.5',\n '2.53846 -0.384615 -1.5',\n '2.53846 -0.230769 -1.5',\n '2.53846 -0.0769231 -1.5',\n '2.53846 0.0769231 -1.5',\n '2.53846 0.230769 -1.5',\n '2.53846 0.384615 -1.5',\n '2.53846 0.538462 -1.5',\n '2.53846 0.692308 -1.5',\n '2.53846 0.846154 -1.5',\n '2.53846 1 -1.5',\n '2.53846 1.15385 -1.5',\n '2.53846 1.30769 -1.5',\n '2.53846 1.46154 -1.5',\n '2.53846 1.61538 -1.5',\n '2.53846 1.76923 -1.5',\n '2.53846 1.92308 -1.5',\n '2.53846 2.07692 -1.5',\n '2.53846 2.23077 -1.5',\n '2.53846 2.38462 -1.5',\n '2.53846 2.53846 -1.5',\n '2.53846 2.69231 -1.5',\n '2.53846 2.84615 -1.5',\n '2.53846 3 -1.5',\n '2.69231 -2.84615 -1.5',\n '2.69231 -3 -1.5',\n '2.69231 -2.69231 -1.5',\n '2.69231 -2.53846 -1.5',\n '2.69231 -2.38462 -1.5',\n '2.69231 -2.23077 -1.5',\n '2.69231 -2.07692 -1.5',\n '2.69231 -1.92308 -1.5',\n '2.69231 -1.76923 -1.5',\n '2.69231 -1.61538 -1.5',\n '2.69231 -1.46154 -1.5',\n '2.69231 -1.30769 -1.5',\n '2.69231 -1.15385 -1.5',\n '2.69231 -1 -1.5',\n '2.69231 -0.846154 -1.5',\n '2.69231 -0.692308 -1.5',\n '2.69231 -0.538462 -1.5',\n '2.69231 -0.384615 -1.5',\n '2.69231 -0.230769 -1.5',\n '2.69231 -0.0769231 -1.5',\n '2.69231 0.0769231 -1.5',\n '2.69231 0.230769 -1.5',\n '2.69231 0.384615 -1.5',\n '2.69231 0.538462 -1.5',\n '2.69231 0.692308 -1.5',\n '2.69231 0.846154 -1.5',\n '2.69231 1 -1.5',\n '2.69231 1.15385 -1.5',\n '2.69231 1.30769 -1.5',\n '2.69231 1.46154 -1.5',\n '2.69231 1.61538 -1.5',\n '2.69231 1.76923 -1.5',\n '2.69231 1.92308 -1.5',\n '2.69231 2.07692 -1.5',\n '2.69231 2.23077 -1.5',\n '2.69231 2.38462 -1.5',\n '2.69231 2.53846 -1.5',\n '2.69231 2.69231 -1.5',\n '2.69231 2.84615 -1.5',\n '2.69231 3 -1.5',\n '2.84615 -2.84615 -1.5',\n '2.84615 -3 -1.5',\n '2.84615 -2.69231 -1.5',\n '2.84615 -2.53846 -1.5',\n '2.84615 -2.38462 -1.5',\n '2.84615 -2.23077 -1.5',\n '2.84615 -2.07692 -1.5',\n '2.84615 -1.92308 -1.5',\n '2.84615 -1.76923 -1.5',\n '2.84615 -1.61538 -1.5',\n '2.84615 -1.46154 -1.5',\n '2.84615 -1.30769 -1.5',\n '2.84615 -1.15385 -1.5',\n '2.84615 -1 -1.5',\n '2.84615 -0.846154 -1.5',\n '2.84615 -0.692308 -1.5',\n '2.84615 -0.538462 -1.5',\n '2.84615 -0.384615 -1.5',\n '2.84615 -0.230769 -1.5',\n '2.84615 -0.0769231 -1.5',\n '2.84615 0.0769231 -1.5',\n '2.84615 0.230769 -1.5',\n '2.84615 0.384615 -1.5',\n '2.84615 0.538462 -1.5',\n '2.84615 0.692308 -1.5',\n '2.84615 0.846154 -1.5',\n '2.84615 1 -1.5',\n '2.84615 1.15385 -1.5',\n '2.84615 1.30769 -1.5',\n '2.84615 1.46154 -1.5',\n '2.84615 1.61538 -1.5',\n '2.84615 1.76923 -1.5',\n '2.84615 1.92308 -1.5',\n '2.84615 2.07692 -1.5',\n '2.84615 2.23077 -1.5',\n '2.84615 2.38462 -1.5',\n '2.84615 2.53846 -1.5',\n '2.84615 2.69231 -1.5',\n '2.84615 2.84615 -1.5',\n '2.84615 3 -1.5',\n '3 -2.84615 -1.5',\n '3 -3 -1.5',\n '3 -2.69231 -1.5',\n '3 -2.53846 -1.5',\n '3 -2.38462 -1.5',\n '3 -2.23077 -1.5',\n '3 -2.07692 -1.5',\n '3 -1.92308 -1.5',\n '3 -1.76923 -1.5',\n '3 -1.61538 -1.5',\n '3 -1.46154 -1.5',\n '3 -1.30769 -1.5',\n '3 -1.15385 -1.5',\n '3 -1 -1.5',\n '3 -0.846154 -1.5',\n '3 -0.692308 -1.5',\n '3 -0.538462 -1.5',\n '3 -0.384615 -1.5',\n '3 -0.230769 -1.5',\n '3 -0.0769231 -1.5',\n '3 0.0769231 -1.5',\n '3 0.230769 -1.5',\n '3 0.384615 -1.5',\n '3 0.538462 -1.5',\n '3 0.692308 -1.5',\n '3 0.846154 -1.5',\n '3 1 -1.5',\n '3 1.15385 -1.5',\n '3 1.30769 -1.5',\n '3 1.46154 -1.5',\n '3 1.61538 -1.5',\n '3 1.76923 -1.5',\n '3 1.92308 -1.5',\n '3 2.07692 -1.5',\n '3 2.23077 -1.5',\n '3 2.38462 -1.5',\n '3 2.53846 -1.5',\n '3 2.69231 -1.5',\n '3 2.84615 -1.5',\n '3 3 -1.5',\n '-2.53846 -2.38462 -1.49764',\n '-2.53846 -2.23077 -1.46024',\n '-2.53846 -2.07692 -1.45353',\n '-2.53846 -1.92308 -1.49231',\n '-2.38462 -2.38462 -1.39318',\n '-2.38462 -2.23077 0.302299',\n '-2.38462 -2.07692 0.606503',\n '-2.38462 -1.92308 -1.1513',\n '-2.38462 -1.76923 -1.48759',\n '-2.23077 -2.38462 -1.34787',\n '-2.23077 -2.23077 1.06676',\n '-2.23077 -2.07692 1.5',\n '-2.23077 -1.76923 -1.48232',\n '-2.07692 -2.38462 -1.47863',\n '-2.07692 -2.23077 -1.13938',\n '-2.07692 -2.07692 -1.07851',\n '-2.07692 -1.92308 -1.43023',\n '-2.07692 -1.76923 -1.49752',\n '-1.92308 -2.38462 -1.49946',\n '-1.92308 -2.23077 -1.49089',\n '-1.92308 -2.07692 -1.48935',\n '-1.92308 -1.92308 -1.49824',\n '-2.38462 -2.38462 -1.39318',\n '-2.38462 -1.92308 -1.1513',\n '-2.23077 -2.38462 -1.34787',\n '-2.23077 -2.23077 1.06676',\n '-2.23077 -2.07692 1.5',\n '-1.92308 -2.07692 -1.48935',\n '-2.23077 -2.23077 1.06676',\n '1521',\n '5',\n '0',\n '1',\n '2',\n '3',\n '0',\n '5',\n '1',\n '4',\n '5',\n '2',\n '1',\n '5',\n '4',\n '6',\n '7',\n '5',\n '4',\n '5',\n '6',\n '8',\n '9',\n '7',\n '6',\n '5',\n '8',\n '10',\n '11',\n '9',\n '8',\n '5',\n '10',\n '12',\n '13',\n '11',\n '10',\n '5',\n '12',\n '14',\n '15',\n '13',\n '12',\n '5',\n '14',\n '16',\n '17',\n '15',\n '14',\n '5',\n '16',\n '18',\n '19',\n '17',\n '16',\n '5',\n '18',\n '20',\n '21',\n '19',\n '18',\n '5',\n '20',\n '22',\n '23',\n '21',\n '20',\n '5',\n '22',\n '24',\n '25',\n '23',\n '22',\n '5',\n '24',\n '26',\n '27',\n '25',\n '24',\n '5',\n '26',\n '28',\n '29',\n '27',\n '26',\n '5',\n '28',\n '30',\n '31',\n '29',\n '28',\n '5',\n '30',\n '32',\n '33',\n '31',\n '30',\n '5',\n '32',\n '34',\n '35',\n '33',\n '32',\n '5',\n '34',\n '36',\n '37',\n '35',\n '34',\n '5',\n '36',\n '38',\n '39',\n '37',\n '36',\n '5',\n '38',\n '40',\n '41',\n '39',\n '38',\n '5',\n '40',\n '42',\n '43',\n '41',\n '40',\n '5',\n '42',\n '44',\n '45',\n '43',\n '42',\n '5',\n '44',\n '46',\n '47',\n '45',\n '44',\n '5',\n '46',\n '48',\n '49',\n '47',\n '46',\n '5',\n '48',\n '50',\n '51',\n '49',\n '48',\n '5',\n '50',\n '52',\n '53',\n '51',\n '50',\n '5',\n '52',\n '54',\n '55',\n '53',\n '52',\n '5',\n '54',\n '56',\n '57',\n '55',\n '54',\n '5',\n '56',\n '58',\n '59',\n '57',\n '56',\n '5',\n '58',\n '60',\n '61',\n '59',\n '58',\n '5',\n '60',\n '62',\n '63',\n '61',\n '60',\n '5',\n '62',\n '64',\n '65',\n '63',\n '62',\n '5',\n '64',\n '66',\n '67',\n '65',\n '64',\n '5',\n '66',\n '68',\n '69',\n '67',\n '66',\n '5',\n '68',\n '70',\n '71',\n '69',\n '68',\n '5',\n '70',\n '72',\n '73',\n '71',\n '70',\n '5',\n '72',\n '74',\n '75',\n '73',\n '72',\n '5',\n '74',\n '76',\n '77',\n '75',\n '74',\n '5',\n '76',\n '78',\n '79',\n '77',\n '76',\n '5',\n '3',\n '2',\n '80',\n '81',\n '3',\n '5',\n '2',\n '5',\n '82',\n '80',\n '2',\n '5',\n '5',\n '7',\n '83',\n '82',\n '5',\n '5',\n '7',\n '9',\n '84',\n '83',\n '7',\n '5',\n '9',\n '11',\n '85',\n '84',\n '9',\n '5',\n '11',\n '13',\n '86',\n '85',\n '11',\n '5',\n '13',\n '15',\n '87',\n '86',\n '13',\n '5',\n '15',\n '17',\n '88',\n '87',\n '15',\n '5',\n '17',\n '19',\n '89',\n '88',\n '17',\n '5',\n '19',\n '21',\n '90',\n '89',\n '19',\n '5',\n '21',\n '23',\n '91',\n '90',\n '21',\n '5',\n '23',\n '25',\n '92',\n '91',\n '23',\n '5',\n '25',\n '27',\n '93',\n '92',\n '25',\n '5',\n '27',\n '29',\n '94',\n '93',\n '27',\n '5',\n '29',\n '31',\n '95',\n '94',\n '29',\n '5',\n '31',\n '33',\n '96',\n '95',\n '31',\n '5',\n '33',\n '35',\n '97',\n '96',\n '33',\n '5',\n '35',\n '37',\n '98',\n '97',\n '35',\n '5',\n '37',\n '39',\n '99',\n '98',\n '37',\n '5',\n '39',\n '41',\n '100',\n '99',\n '39',\n '5',\n '41',\n '43',\n '101',\n '100',\n '41',\n '5',\n '43',\n '45',\n '102',\n '101',\n '43',\n '5',\n '45',\n '47',\n '103',\n '102',\n '45',\n '5',\n '47',\n '49',\n '104',\n '103',\n '47',\n '5',\n '49',\n '51',\n '105',\n '104',\n '49',\n '5',\n '51',\n '53',\n '106',\n '105',\n '51',\n '5',\n '53',\n '55',\n '107',\n '106',\n '53',\n '5',\n '55',\n '57',\n '108',\n '107',\n '55',\n '5',\n '57',\n '59',\n '109',\n '108',\n '57',\n '5',\n '59',\n '61',\n '110',\n '109',\n '59',\n '5',\n '61',\n '63',\n '111',\n '110',\n '61',\n '5',\n '63',\n '65',\n '112',\n '111',\n '63',\n '5',\n '65',\n '67',\n '113',\n '112',\n '65',\n '5',\n '67',\n '69',\n '114',\n '113',\n '67',\n '5',\n '69',\n '71',\n '115',\n '114',\n '69',\n '5',\n '71',\n '73',\n '116',\n '115',\n '71',\n '5',\n '73',\n '75',\n '117',\n '116',\n '73',\n '5',\n '75',\n '77',\n '118',\n '117',\n '75',\n '5',\n '77',\n '79',\n '119',\n '118',\n '77',\n '5',\n '81',\n '80',\n '120',\n '121',\n '81',\n '5',\n '80',\n '82',\n '122',\n '120',\n '80',\n '5',\n '82',\n '83',\n '123',\n '122',\n '82',\n '5',\n '83',\n '84',\n '124',\n '123',\n '83',\n '5',\n '84',\n '85',\n '125',\n '124',\n '84',\n '5',\n '85',\n '86',\n '126',\n '125',\n '85',\n '5',\n '86',\n '87',\n '127',\n '126',\n '86',\n '5',\n '87',\n '88',\n '128',\n '127',\n '87',\n '5',\n '88',\n '89',\n '129',\n '128',\n '88',\n '5',\n '89',\n '90',\n '130',\n '129',\n '89',\n '5',\n '90',\n '91',\n '131',\n '130',\n '90',\n '5',\n '91',\n '92',\n '132',\n '131',\n '91',\n '5',\n '92',\n '93',\n '133',\n '132',\n '92',\n '5',\n '93',\n '94',\n '134',\n '133',\n '93',\n '5',\n '94',\n '95',\n '135',\n '134',\n '94',\n '5',\n '95',\n '96',\n '136',\n '135',\n '95',\n '5',\n '96',\n '97',\n '137',\n '136',\n '96',\n '5',\n '97',\n '98',\n '138',\n '137',\n '97',\n '5',\n '98',\n '99',\n '139',\n '138',\n '98',\n '5',\n '99',\n '100',\n '140',\n '139',\n '99',\n '5',\n '100',\n '101',\n '141',\n '140',\n '100',\n '5',\n '101',\n '102',\n '142',\n '141',\n '101',\n '5',\n '102',\n '103',\n '143',\n '142',\n '102',\n '5',\n '103',\n '104',\n '144',\n '143',\n '103',\n '5',\n '104',\n '105',\n '145',\n '144',\n '104',\n '5',\n '105',\n '106',\n '146',\n '145',\n '105',\n '5',\n '106',\n '107',\n '147',\n '146',\n '106',\n '5',\n '107',\n '108',\n '148',\n '147',\n '107',\n '5',\n '108',\n '109',\n '149',\n '148',\n '108',\n '5',\n '109',\n '110',\n '150',\n '149',\n '109',\n '5',\n '110',\n '111',\n '151',\n '150',\n '110',\n '5',\n '111',\n '112',\n '152',\n '151',\n '111',\n '5',\n '112',\n '113',\n '153',\n '152',\n '112',\n '5',\n '113',\n '114',\n '154',\n '153',\n '113',\n '5',\n '114',\n '115',\n '155',\n '154',\n '114',\n '5',\n '115',\n '116',\n '156',\n '155',\n '115',\n '5',\n '116',\n '117',\n '157',\n '156',\n '116',\n '5',\n '117',\n '118',\n '158',\n '157',\n '117',\n '5',\n '118',\n '119',\n '159',\n '158',\n '118',\n '5',\n '121',\n '120',\n '160',\n '161',\n '121',\n '5',\n '120',\n '122',\n '162',\n '160',\n '120',\n '5',\n '122',\n '123',\n '163',\n '162',\n '122',\n '5',\n '123',\n '124',\n '164',\n '163',\n '123',\n '5',\n '1600',\n '1601',\n '165',\n '1604',\n '1600',\n '5',\n '1601',\n '1602',\n '166',\n '165',\n '1601',\n '5',\n '1602',\n '1603',\n '167',\n '166',\n '1602',\n '5',\n '127',\n '128',\n '168',\n '1607',\n '127',\n '5',\n '128',\n '129',\n '169',\n '168',\n '128',\n '5',\n '129',\n '130',\n '170',\n '169',\n '129',\n '5',\n '130',\n '131',\n '171',\n '170',\n '130',\n '5',\n '131',\n '132',\n '172',\n '171',\n '131',\n '5',\n '132',\n '133',\n '173',\n '172',\n '132',\n '5',\n '133',\n '134',\n '174',\n '173',\n '133',\n '5',\n '134',\n '135',\n '175',\n '174',\n '134',\n '5',\n '135',\n '136',\n '176',\n '175',\n '135',\n '5',\n '136',\n '137',\n '177',\n '176',\n '136',\n '5',\n '137',\n '138',\n '178',\n '177',\n '137',\n '5',\n '138',\n '139',\n '179',\n '178',\n '138',\n '5',\n '139',\n '140',\n '180',\n '179',\n '139',\n '5',\n '140',\n '141',\n '181',\n '180',\n '140',\n '5',\n '141',\n '142',\n '182',\n '181',\n '141',\n '5',\n '142',\n '143',\n '183',\n '182',\n '142',\n '5',\n '143',\n '144',\n '184',\n '183',\n '143',\n '5',\n '144',\n '145',\n '185',\n '184',\n '144',\n '5',\n '145',\n '146',\n '186',\n '185',\n '145',\n '5',\n '146',\n '147',\n '187',\n '186',\n '146',\n '5',\n '147',\n '148',\n '188',\n '187',\n '147',\n '5',\n '148',\n '149',\n '189',\n '188',\n '148',\n '5',\n '149',\n '150',\n '190',\n '189',\n '149',\n '5',\n '150',\n '151',\n '191',\n '190',\n '150',\n '5',\n '151',\n '152',\n '192',\n '191',\n '151',\n '5',\n '152',\n '153',\n '193',\n '192',\n '152',\n '5',\n '153',\n '154',\n '194',\n '193',\n '153',\n '5',\n '154',\n '155',\n '195',\n '194',\n '154',\n '5',\n '155',\n '156',\n '196',\n '195',\n '155',\n '5',\n '156',\n '157',\n '197',\n '196',\n '156',\n '5',\n '157',\n '158',\n '198',\n '197',\n '157',\n '5',\n '158',\n '159',\n '199',\n '198',\n '158',\n '5',\n '161',\n '160',\n '200',\n '201',\n '161',\n '5',\n '160',\n '162',\n '202',\n '200',\n '160',\n '5',\n '162',\n '163',\n '203',\n '202',\n '162',\n '5',\n '163',\n '164',\n '204',\n '203',\n '163',\n '5',\n '1622',\n '1605',\n '205',\n '1609',\n '1622',\n '5',\n '165',\n '166',\n '206',\n '1610',\n '165',\n '5',\n '1606',\n '1623',\n '207',\n '1611',\n '1606',\n '5',\n '1623',\n '1608',\n '208',\n '207',\n '1623',\n '5',\n '168',\n '169',\n '209',\n '1612',\n '168',\n '5',\n '169',\n '170',\n '210',\n '209',\n '169',\n '5',\n '170',\n '171',\n '211',\n '210',\n '170',\n '5',\n '171',\n '172',\n '212',\n '211',\n '171',\n '5',\n '172',\n '173',\n '213',\n '212',\n '172',\n '5',\n '173',\n '174',\n '214',\n '213',\n '173',\n '5',\n '174',\n '175',\n '215',\n '214',\n '174',\n '5',\n '175',\n '176',\n '216',\n '215',\n '175',\n '5',\n '176',\n '177',\n '217',\n '216',\n '176',\n '5',\n '177',\n '178',\n '218',\n '217',\n '177',\n '5',\n '178',\n '179',\n '219',\n '218',\n '178',\n '5',\n '179',\n '180',\n '220',\n '219',\n '179',\n '5',\n '180',\n '181',\n '221',\n '220',\n '180',\n '5',\n '181',\n '182',\n '222',\n '221',\n '181',\n '5',\n '182',\n '183',\n '223',\n '222',\n '182',\n '5',\n '183',\n '184',\n '224',\n '223',\n '183',\n '5',\n '184',\n '185',\n '225',\n '224',\n '184',\n '5',\n '185',\n '186',\n '226',\n '225',\n '185',\n '5',\n '186',\n '187',\n '227',\n '226',\n '186',\n '5',\n '187',\n '188',\n '228',\n '227',\n '187',\n '5',\n '188',\n '189',\n '229',\n '228',\n '188',\n '5',\n '189',\n '190',\n '230',\n '229',\n '189',\n '5',\n '190',\n '191',\n '231',\n '230',\n '190',\n '5',\n '191',\n '192',\n '232',\n '231',\n '191',\n '5',\n '192',\n '193',\n '233',\n '232',\n '192',\n '5',\n '193',\n '194',\n '234',\n '233',\n '193',\n '5',\n '194',\n '195',\n '235',\n '234',\n '194',\n '5',\n '195',\n '196',\n '236',\n '235',\n '195',\n '5',\n '196',\n '197',\n '237',\n '236',\n '196',\n '5',\n '197',\n '198',\n '238',\n '237',\n '197',\n '5',\n '198',\n '199',\n '239',\n '238',\n '198',\n '5',\n '201',\n '200',\n '240',\n '241',\n '201',\n '5',\n '200',\n '202',\n '242',\n '240',\n '200',\n '5',\n '202',\n '203',\n '243',\n '242',\n '202',\n '5',\n '203',\n '204',\n '244',\n '243',\n '203',\n '5',\n '1624',\n '1625',\n '245',\n '1613',\n '1624',\n '5',\n '1628',\n '1626',\n '246',\n '1614',\n '1628',\n '5',\n '1611',\n '207',\n '247',\n '1615',\n '1611',\n '5',\n '207',\n '208',\n '248',\n '247',\n '207',\n '5',\n '1612',\n '209',\n '249',\n '1617',\n '1612',\n '5',\n '209',\n '210',\n '250',\n '249',\n '209',\n '5',\n '210',\n '211',\n '251',\n '250',\n '210',\n '5',\n '211',\n '212',\n '252',\n '251',\n '211',\n '5',\n '212',\n '213',\n '253',\n '252',\n '212',\n '5',\n '213',\n '214',\n '254',\n '253',\n '213',\n '5',\n '214',\n '215',\n '255',\n '254',\n '214',\n '5',\n '215',\n '216',\n '256',\n '255',\n '215',\n '5',\n '216',\n '217',\n '257',\n '256',\n '216',\n '5',\n '217',\n '218',\n '258',\n '257',\n '217',\n '5',\n '218',\n '219',\n '259',\n '258',\n '218',\n '5',\n '219',\n '220',\n '260',\n '259',\n '219',\n '5',\n '220',\n '221',\n '261',\n '260',\n '220',\n '5',\n '221',\n '222',\n '262',\n '261',\n '221',\n '5',\n '222',\n '223',\n '263',\n '262',\n '222',\n '5',\n '223',\n '224',\n '264',\n '263',\n '223',\n '5',\n '224',\n '225',\n '265',\n '264',\n '224',\n '5',\n '225',\n '226',\n '266',\n '265',\n '225',\n '5',\n '226',\n '227',\n '267',\n '266',\n '226',\n '5',\n '227',\n '228',\n '268',\n '267',\n '227',\n '5',\n '228',\n '229',\n '269',\n '268',\n '228',\n '5',\n '229',\n '230',\n '270',\n '269',\n '229',\n '5',\n '230',\n '231',\n '271',\n '270',\n '230',\n '5',\n '231',\n '232',\n '272',\n '271',\n '231',\n '5',\n '232',\n '233',\n '273',\n '272',\n '232',\n '5',\n '233',\n '234',\n '274',\n '273',\n '233',\n '5',\n '234',\n '235',\n '275',\n '274',\n '234',\n '5',\n '235',\n '236',\n '276',\n '275',\n '235',\n '5',\n '236',\n '237',\n '277',\n '276',\n '236',\n '5',\n '237',\n '238',\n '278',\n '277',\n '237',\n '5',\n '238',\n '239',\n '279',\n '278',\n '238',\n '5',\n '241',\n '240',\n '280',\n '281',\n '241',\n '5',\n '240',\n '242',\n '282',\n '280',\n '240',\n '5',\n '242',\n '243',\n '283',\n '282',\n '242',\n '5',\n '243',\n '244',\n '284',\n '283',\n '243',\n '5',\n '244',\n '245',\n '285',\n '1618',\n '244',\n '5',\n '1614',\n '246',\n '286',\n '285',\n '1614',\n '5',\n '1615',\n '247',\n '287',\n '1620',\n '1615',\n '5',\n '1616',\n '1617',\n '288',\n '287',\n '1616',\n '5',\n '1617',\n '249',\n '289',\n '288',\n '1617',\n '5',\n '249',\n '250',\n '290',\n '289',\n '249',\n '5',\n '250',\n '251',\n '291',\n '290',\n '250',\n '5',\n '251',\n '252',\n '292',\n '291',\n '251',\n '5',\n '252',\n '253',\n '293',\n '292',\n '252',\n '5',\n '253',\n '254',\n '294',\n '293',\n '253',\n '5',\n '254',\n '255',\n '295',\n '294',\n '254',\n '5',\n '255',\n '256',\n '296',\n '295',\n '255',\n '5',\n '256',\n '257',\n '297',\n '296',\n '256',\n '5',\n '257',\n '258',\n '298',\n '297',\n '257',\n '5',\n '258',\n '259',\n '299',\n '298',\n '258',\n '5',\n '259',\n '260',\n '300',\n '299',\n '259',\n '5',\n '260',\n '261',\n '301',\n '300',\n '260',\n '5',\n '261',\n '262',\n '302',\n '301',\n '261',\n '5',\n '262',\n '263',\n '303',\n '302',\n '262',\n '5',\n '263',\n '264',\n '304',\n '303',\n '263',\n '5',\n '264',\n '265',\n '305',\n '304',\n '264',\n '5',\n '265',\n '266',\n '306',\n '305',\n '265',\n '5',\n '266',\n '267',\n '307',\n '306',\n '266',\n '5',\n '267',\n '268',\n '308',\n '307',\n '267',\n '5',\n '268',\n '269',\n '309',\n '308',\n '268',\n '5',\n '269',\n '270',\n '310',\n '309',\n '269',\n '5',\n '270',\n '271',\n '311',\n '310',\n '270',\n '5',\n '271',\n '272',\n '312',\n '311',\n '271',\n '5',\n '272',\n '273',\n '313',\n '312',\n '272',\n '5',\n '273',\n '274',\n '314',\n '313',\n '273',\n '5',\n '274',\n '275',\n '315',\n '314',\n '274',\n '5',\n '275',\n '276',\n '316',\n '315',\n '275',\n '5',\n '276',\n '277',\n '317',\n '316',\n '276',\n '5',\n '277',\n '278',\n '318',\n '317',\n '277',\n '5',\n '278',\n '279',\n '319',\n '318',\n '278',\n '5',\n '281',\n '280',\n '320',\n '321',\n '281',\n '5',\n '280',\n '282',\n '322',\n '320',\n '280',\n '5',\n '282',\n '283',\n '323',\n '322',\n '282',\n '5',\n '283',\n '284',\n '324',\n '323',\n '283',\n '5',\n '284',\n '1619',\n '325',\n '324',\n '284',\n '5',\n '1619',\n '1627',\n '326',\n '325',\n '1619',\n '5',\n '1627',\n '1621',\n '327',\n '326',\n '1627',\n '5',\n '1621',\n '288',\n '328',\n '327',\n '1621',\n '5',\n '288',\n '289',\n '329',\n '328',\n '288',\n '5',\n '289',\n '290',\n '330',\n '329',\n '289',\n '5',\n '290',\n '291',\n '331',\n '330',\n '290',\n '5',\n '291',\n '292',\n '332',\n '331',\n '291',\n '5',\n '292',\n '293',\n '333',\n '332',\n '292',\n '5',\n '293',\n '294',\n '334',\n '333',\n '293',\n '5',\n '294',\n '295',\n '335',\n '334',\n '294',\n '5',\n '295',\n '296',\n '336',\n '335',\n '295',\n '5',\n '296',\n '297',\n '337',\n '336',\n '296',\n '5',\n '297',\n '298',\n '338',\n '337',\n '297',\n '5',\n '298',\n '299',\n '339',\n '338',\n '298',\n '5',\n '299',\n '300',\n '340',\n '339',\n '299',\n '5',\n '300',\n '301',\n '341',\n '340',\n '300',\n '5',\n '301',\n '302',\n '342',\n '341',\n '301',\n '5',\n '302',\n '303',\n '343',\n '342',\n '302',\n '5',\n '303',\n '304',\n '344',\n '343',\n '303',\n '5',\n '304',\n '305',\n '345',\n '344',\n '304',\n '5',\n '305',\n '306',\n '346',\n '345',\n '305',\n '5',\n '306',\n '307',\n '347',\n '346',\n '306',\n '5',\n '307',\n '308',\n '348',\n '347',\n '307',\n '5',\n '308',\n '309',\n '349',\n '348',\n '308',\n '5',\n '309',\n '310',\n '350',\n '349',\n '309',\n '5',\n '310',\n '311',\n '351',\n '350',\n '310',\n '5',\n '311',\n '312',\n '352',\n '351',\n '311',\n '5',\n '312',\n '313',\n '353',\n '352',\n '312',\n '5',\n '313',\n '314',\n '354',\n '353',\n '313',\n '5',\n '314',\n '315',\n '355',\n '354',\n '314',\n '5',\n '315',\n '316',\n '356',\n '355',\n '315',\n '5',\n '316',\n '317',\n '357',\n '356',\n '316',\n '5',\n '317',\n '318',\n '358',\n '357',\n '317',\n '5',\n '318',\n '319',\n '359',\n '358',\n '318',\n '5',\n '321',\n '320',\n '360',\n '361',\n '321',\n '5',\n '320',\n '322',\n '362',\n '360',\n '320',\n '5',\n '322',\n '323',\n '363',\n '362',\n '322',\n '5',\n '323',\n '324',\n '364',\n '363',\n '323',\n '5',\n '324',\n '325',\n '365',\n '364',\n '324',\n '5',\n '325',\n '326',\n '366',\n '365',\n '325',\n '5',\n '326',\n '327',\n '367',\n '366',\n '326',\n '5',\n '327',\n '328',\n '368',\n '367',\n '327',\n '5',\n '328',\n '329',\n '369',\n '368',\n '328',\n '5',\n '329',\n '330',\n '370',\n '369',\n '329',\n '5',\n '330',\n '331',\n '371',\n '370',\n '330',\n '5',\n '331',\n '332',\n '372',\n '371',\n '331',\n '5',\n '332',\n '333',\n '373',\n '372',\n '332',\n '5',\n '333',\n '334',\n '374',\n '373',\n '333',\n '5',\n '334',\n '335',\n '375',\n '374',\n '334',\n '5',\n '335',\n '336',\n '376',\n '375',\n '335',\n '5',\n '336',\n '337',\n '377',\n '376',\n '336',\n '5',\n '337',\n '338',\n '378',\n '377',\n '337',\n '5',\n '338',\n '339',\n '379',\n '378',\n '338',\n '5',\n '339',\n '340',\n '380',\n '379',\n '339',\n '5',\n '340',\n '341',\n '381',\n '380',\n '340',\n '5',\n '341',\n '342',\n '382',\n '381',\n '341',\n '5',\n '342',\n '343',\n '383',\n '382',\n '342',\n '5',\n '343',\n '344',\n '384',\n '383',\n '343',\n '5',\n '344',\n '345',\n '385',\n '384',\n '344',\n '5',\n '345',\n '346',\n '386',\n '385',\n '345',\n '5',\n '346',\n '347',\n '387',\n '386',\n '346',\n '5',\n '347',\n '348',\n '388',\n '387',\n '347',\n '5',\n '348',\n '349',\n '389',\n '388',\n '348',\n '5',\n '349',\n '350',\n '390',\n '389',\n '349',\n '5',\n '350',\n '351',\n '391',\n '390',\n '350',\n '5',\n '351',\n '352',\n '392',\n '391',\n '351',\n '5',\n '352',\n '353',\n '393',\n '392',\n '352',\n '5',\n '353',\n '354',\n '394',\n '393',\n '353',\n '5',\n '354',\n '355',\n '395',\n '394',\n '354',\n '5',\n '355',\n '356',\n '396',\n '395',\n '355',\n '5',\n '356',\n '357',\n '397',\n '396',\n '356',\n '5',\n '357',\n '358',\n '398',\n '397',\n '357',\n '5',\n '358',\n '359',\n '399',\n '398',\n '358',\n '5',\n '361',\n '360',\n '400',\n '401',\n '361',\n '5',\n '360',\n '362',\n '402',\n '400',\n '360',\n '5',\n '362',\n '363',\n '403',\n '402',\n '362',\n '5',\n '363',\n '364',\n '404',\n '403',\n '363',\n '5',\n '364',\n '365',\n '405',\n '404',\n '364',\n '5',\n '365',\n '366',\n '406',\n '405',\n '365',\n '5',\n '366',\n '367',\n '407',\n '406',\n '366',\n '5',\n '367',\n '368',\n '408',\n '407',\n '367',\n '5',\n '368',\n '369',\n '409',\n '408',\n '368',\n '5',\n '369',\n '370',\n '410',\n '409',\n '369',\n '5',\n '370',\n '371',\n '411',\n '410',\n '370',\n '5',\n '371',\n '372',\n '412',\n '411',\n '371',\n '5',\n '372',\n '373',\n '413',\n '412',\n '372',\n '5',\n '373',\n '374',\n '414',\n '413',\n '373',\n '5',\n '374',\n '375',\n '415',\n '414',\n '374',\n '5',\n '375',\n '376',\n '416',\n '415',\n '375',\n '5',\n '376',\n '377',\n '417',\n '416',\n '376',\n '5',\n '377',\n '378',\n '418',\n '417',\n '377',\n '5',\n '378',\n '379',\n '419',\n '418',\n '378',\n '5',\n '379',\n '380',\n '420',\n '419',\n '379',\n '5',\n '380',\n '381',\n '421',\n '420',\n '380',\n '5',\n '381',\n '382',\n '422',\n '421',\n '381',\n '5',\n '382',\n '383',\n '423',\n '422',\n '382',\n '5',\n '383',\n '384',\n '424',\n '423',\n '383',\n '5',\n '384',\n '385',\n '425',\n '424',\n '384',\n '5',\n '385',\n '386',\n '426',\n '425',\n '385',\n '5',\n '386',\n '387',\n '427',\n '426',\n '386',\n '5',\n '387',\n '388',\n '428',\n '427',\n '387',\n '5',\n '388',\n '389',\n '429',\n '428',\n '388',\n '5',\n '389',\n '390',\n '430',\n '429',\n '389',\n '5',\n '390',\n '391',\n '431',\n '430',\n '390',\n '5',\n '391',\n '392',\n '432',\n '431',\n '391',\n '5',\n '392',\n '393',\n '433',\n '432',\n '392',\n '5',\n '393',\n '394',\n '434',\n '433',\n '393',\n '5',\n '394',\n '395',\n '435',\n '434',\n '394',\n '5',\n '395',\n '396',\n '436',\n '435',\n '395',\n '5',\n '396',\n '397',\n '437',\n '436',\n '396',\n '5',\n '397',\n '398',\n '438',\n '437',\n '397',\n '5',\n '398',\n '399',\n '439',\n '438',\n '398',\n '5',\n '401',\n '400',\n '440',\n '441',\n '401',\n '5',\n '400',\n '402',\n '442',\n '440',\n '400',\n '5',\n '402',\n '403',\n '443',\n '442',\n '402',\n '5',\n '403',\n '404',\n '444',\n '443',\n '403',\n '5',\n '404',\n '405',\n '445',\n '444',\n '404',\n '5',\n '405',\n '406',\n '446',\n '445',\n '405',\n '5',\n '406',\n '407',\n '447',\n '446',\n '406',\n '5',\n '407',\n '408',\n '448',\n '447',\n '407',\n '5',\n '408',\n '409',\n '449',\n '448',\n '408',\n '5',\n '409',\n '410',\n '450',\n '449',\n '409',\n '5',\n '410',\n '411',\n '451',\n '450',\n '410',\n '5',\n '411',\n '412',\n '452',\n '451',\n '411',\n '5',\n '412',\n '413',\n '453',\n '452',\n '412',\n '5',\n '413',\n '414',\n '454',\n '453',\n '413',\n '5',\n '414',\n '415',\n '455',\n '454',\n '414',\n '5',\n '415',\n '416',\n '456',\n '455',\n '415',\n '5',\n '416',\n '417',\n '457',\n '456',\n '416',\n '5',\n '417',\n '418',\n '458',\n '457',\n '417',\n '5',\n '418',\n '419',\n '459',\n '458',\n '418',\n '5',\n '419',\n '420',\n '460',\n '459',\n '419',\n '5',\n '420',\n '421',\n '461',\n '460',\n '420',\n '5',\n '421',\n '422',\n '462',\n '461',\n '421',\n '5',\n '422',\n '423',\n '463',\n '462',\n '422',\n '5',\n '423',\n '424',\n '464',\n '463',\n '423',\n '5',\n '424',\n '425',\n '465',\n '464',\n '424',\n '5',\n '425',\n '426',\n '466',\n '465',\n '425',\n '5',\n '426',\n '427',\n '467',\n '466',\n '426',\n '5',\n '427',\n '428',\n '468',\n '467',\n '427',\n '5',\n '428',\n '429',\n '469',\n '468',\n '428',\n '5',\n '429',\n '430',\n '470',\n '469',\n '429',\n '5',\n '430',\n '431',\n '471',\n '470',\n '430',\n '5',\n '431',\n '432',\n '472',\n '471',\n '431',\n '5',\n '432',\n '433',\n '473',\n '472',\n '432',\n '5',\n '433',\n '434',\n '474',\n '473',\n '433',\n '5',\n '434',\n '435',\n '475',\n '474',\n '434',\n '5',\n '435',\n '436',\n '476',\n '475',\n '435',\n '5',\n '436',\n '437',\n '477',\n '476',\n '436',\n '5',\n '437',\n '438',\n '478',\n '477',\n '437',\n '5',\n '438',\n '439',\n '479',\n '478',\n '438',\n '5',\n '441',\n '440',\n '480',\n '481',\n '441',\n '5',\n '440',\n '442',\n '482',\n '480',\n '440',\n '5',\n '442',\n '443',\n '483',\n '482',\n '442',\n '5',\n '443',\n '444',\n '484',\n '483',\n '443',\n '5',\n '444',\n '445',\n '485',\n '484',\n '444',\n '5',\n '445',\n '446',\n '486',\n '485',\n '445',\n '5',\n '446',\n '447',\n '487',\n '486',\n '446',\n '5',\n '447',\n '448',\n '488',\n '487',\n '447',\n '5',\n '448',\n '449',\n '489',\n '488',\n '448',\n '5',\n '449',\n '450',\n '490',\n '489',\n '449',\n '5',\n '450',\n '451',\n '491',\n '490',\n '450',\n '5',\n '451',\n '452',\n '492',\n '491',\n '451',\n '5',\n '452',\n '453',\n '493',\n '492',\n '452',\n '5',\n '453',\n '454',\n '494',\n '493',\n '453',\n '5',\n '454',\n '455',\n '495',\n '494',\n '454',\n '5',\n '455',\n '456',\n '496',\n '495',\n '455',\n '5',\n '456',\n '457',\n '497',\n '496',\n '456',\n '5',\n '457',\n '458',\n '498',\n '497',\n '457',\n '5',\n '458',\n '459',\n '499',\n '498',\n '458',\n '5',\n '459',\n '460',\n '500',\n '499',\n '459',\n '5',\n '460',\n '461',\n '501',\n '500',\n '460',\n '5',\n '461',\n '462',\n '502',\n '501',\n '461',\n '5',\n '462',\n '463',\n '503',\n '502',\n '462',\n '5',\n '463',\n '464',\n '504',\n '503',\n '463',\n '5',\n '464',\n '465',\n '505',\n '504',\n '464',\n '5',\n '465',\n '466',\n '506',\n '505',\n '465',\n '5',\n '466',\n '467',\n '507',\n '506',\n '466',\n '5',\n '467',\n '468',\n '508',\n '507',\n '467',\n '5',\n '468',\n '469',\n '509',\n '508',\n '468',\n '5',\n '469',\n '470',\n '510',\n '509',\n '469',\n '5',\n '470',\n '471',\n '511',\n '510',\n '470',\n '5',\n '471',\n '472',\n '512',\n '511',\n '471',\n '5',\n '472',\n '473',\n '513',\n '512',\n '472',\n '5',\n '473',\n '474',\n '514',\n '513',\n '473',\n '5',\n '474',\n '475',\n '515',\n '514',\n '474',\n '5',\n '475',\n '476',\n '516',\n '515',\n '475',\n '5',\n '476',\n '477',\n '517',\n '516',\n '476',\n '5',\n '477',\n '478',\n '518',\n '517',\n '477',\n '5',\n '478',\n '479',\n '519',\n '518',\n '478',\n '5',\n '481',\n '480',\n '520',\n '521',\n '481',\n '5',\n '480',\n '482',\n '522',\n '520',\n '480',\n '5',\n '482',\n '483',\n '523',\n '522',\n '482',\n '5',\n '483',\n '484',\n '524',\n '523',\n '483',\n '5',\n '484',\n '485',\n '525',\n '524',\n '484',\n '5',\n '485',\n '486',\n '526',\n '525',\n '485',\n '5',\n '486',\n '487',\n '527',\n '526',\n '486',\n '5',\n '487',\n '488',\n '528',\n '527',\n '487',\n '5',\n '488',\n '489',\n '529',\n '528',\n '488',\n '5',\n '489',\n '490',\n '530',\n '529',\n '489',\n '5',\n '490',\n '491',\n '531',\n '530',\n '490',\n '5',\n '491',\n '492',\n '532',\n '531',\n '491',\n '5',\n '492',\n '493',\n '533',\n '532',\n '492',\n '5',\n '493',\n '494',\n '534',\n '533',\n '493',\n '5',\n '494',\n '495',\n '535',\n '534',\n '494',\n '5',\n '495',\n '496',\n '536',\n '535',\n '495',\n '5',\n '496',\n '497',\n '537',\n '536',\n '496',\n '5',\n '497',\n '498',\n '538',\n '537',\n '497',\n '5',\n '498',\n '499',\n '539',\n '538',\n '498',\n '5',\n '499',\n '500',\n '540',\n '539',\n '499',\n '5',\n '500',\n '501',\n '541',\n '540',\n '500',\n '5',\n '501',\n '502',\n '542',\n '541',\n '501',\n '5',\n '502',\n '503',\n '543',\n '542',\n '502',\n '5',\n '503',\n '504',\n '544',\n '543',\n '503',\n '5',\n '504',\n '505',\n '545',\n '544',\n '504',\n '5',\n '505',\n '506',\n '546',\n '545',\n '505',\n '5',\n '506',\n '507',\n '547',\n '546',\n '506',\n '5',\n '507',\n '508',\n '548',\n '547',\n '507',\n '5',\n '508',\n '509',\n '549',\n '548',\n '508',\n '5',\n '509',\n '510',\n '550',\n '549',\n '509',\n '5',\n '510',\n '511',\n '551',\n '550',\n '510',\n '5',\n '511',\n '512',\n '552',\n '551',\n '511',\n '5',\n '512',\n '513',\n '553',\n '552',\n '512',\n '5',\n '513',\n '514',\n '554',\n '553',\n '513',\n '5',\n '514',\n '515',\n '555',\n '554',\n '514',\n '5',\n '515',\n '516',\n '556',\n '555',\n '515',\n '5',\n '516',\n '517',\n '557',\n '556',\n '516',\n '5',\n '517',\n '518',\n '558',\n '557',\n '517',\n '5',\n '518',\n '519',\n '559',\n '558',\n '518',\n '5',\n '521',\n '520',\n '560',\n '561',\n '521',\n '5',\n '520',\n '522',\n '562',\n '560',\n '520',\n '5',\n '522',\n '523',\n '563',\n '562',\n '522',\n '5',\n '523',\n '524',\n '564',\n '563',\n '523',\n '5',\n '524',\n '525',\n '565',\n '564',\n '524',\n '5',\n '525',\n '526',\n '566',\n '565',\n '525',\n '5',\n '526',\n '527',\n '567',\n '566',\n '526',\n '5',\n '527',\n '528',\n '568',\n '567',\n '527',\n '5',\n '528',\n '529',\n '569',\n '568',\n '528',\n '5',\n '529',\n '530',\n '570',\n '569',\n '529',\n '5',\n '530',\n '531',\n '571',\n '570',\n '530',\n '5',\n '531',\n '532',\n '572',\n '571',\n '531',\n '5',\n '532',\n '533',\n '573',\n '572',\n '532',\n '5',\n '533',\n '534',\n '574',\n '573',\n '533',\n '5',\n '534',\n '535',\n '575',\n '574',\n '534',\n '5',\n '535',\n '536',\n '576',\n '575',\n '535',\n '5',\n '536',\n '537',\n '577',\n '576',\n '536',\n '5',\n '537',\n '538',\n '578',\n '577',\n '537',\n '5',\n '538',\n '539',\n '579',\n '578',\n '538',\n '5',\n '539',\n '540',\n '580',\n '579',\n '539',\n '5',\n '540',\n '541',\n '581',\n '580',\n '540',\n '5',\n '541',\n '542',\n '582',\n '581',\n '541',\n '5',\n '542',\n '543',\n '583',\n '582',\n '542',\n '5',\n '543',\n '544',\n '584',\n '583',\n '543',\n '5',\n '544',\n '545',\n '585',\n '584',\n '544',\n '5',\n '545',\n '546',\n '586',\n '585',\n '545',\n '5',\n '546',\n '547',\n '587',\n '586',\n '546',\n '5',\n '547',\n '548',\n '588',\n '587',\n '547',\n '5',\n '548',\n '549',\n '589',\n '588',\n '548',\n '5',\n '549',\n '550',\n '590',\n '589',\n '549',\n '5',\n '550',\n '551',\n '591',\n '590',\n '550',\n '5',\n '551',\n '552',\n '592',\n '591',\n '551',\n '5',\n '552',\n '553',\n '593',\n '592',\n '552',\n '5',\n '553',\n '554',\n '594',\n '593',\n '553',\n '5',\n '554',\n '555',\n '595',\n '594',\n '554',\n '5',\n '555',\n '556',\n '596',\n '595',\n '555',\n '5',\n '556',\n '557',\n '597',\n '596',\n '556',\n '5',\n '557',\n '558',\n '598',\n '597',\n '557',\n '5',\n '558',\n '559',\n '599',\n '598',\n '558',\n '5',\n '561',\n '560',\n '600',\n '601',\n '561',\n '5',\n '560',\n '562',\n '602',\n '600',\n '560',\n '5',\n '562',\n '563',\n '603',\n '602',\n '562',\n '5',\n '563',\n '564',\n '604',\n '603',\n '563',\n '5',\n '564',\n '565',\n '605',\n '604',\n '564',\n '5',\n '565',\n '566',\n '606',\n '605',\n '565',\n '5',\n '566',\n '567',\n '607',\n '606',\n '566',\n '5',\n '567',\n '568',\n '608',\n '607',\n '567',\n '5',\n '568',\n '569',\n '609',\n '608',\n '568',\n '5',\n '569',\n '570',\n '610',\n '609',\n '569',\n '5',\n '570',\n '571',\n '611',\n '610',\n '570',\n '5',\n '571',\n '572',\n '612',\n '611',\n '571',\n '5',\n '572',\n '573',\n '613',\n '612',\n '572',\n '5',\n '573',\n '574',\n '614',\n '613',\n '573',\n '5',\n '574',\n '575',\n '615',\n '614',\n '574',\n '5',\n '575',\n '576',\n '616',\n '615',\n '575',\n '5',\n '576',\n '577',\n '617',\n '616',\n '576',\n '5',\n '577',\n '578',\n '618',\n '617',\n '577',\n '5',\n '578',\n '579',\n '619',\n '618',\n '578',\n '5',\n '579',\n '580',\n '620',\n '619',\n '579',\n '5',\n '580',\n '581',\n '621',\n '620',\n '580',\n '5',\n '581',\n '582',\n '622',\n '621',\n '581',\n '5',\n '582',\n '583',\n '623',\n '622',\n '582',\n '5',\n '583',\n '584',\n '624',\n '623',\n '583',\n '5',\n '584',\n '585',\n '625',\n '624',\n '584',\n '5',\n '585',\n '586',\n '626',\n '625',\n '585',\n '5',\n '586',\n '587',\n '627',\n '626',\n '586',\n '5',\n '587',\n '588',\n '628',\n '627',\n '587',\n '5',\n '588',\n '589',\n '629',\n '628',\n '588',\n '5',\n '589',\n '590',\n '630',\n '629',\n '589',\n '5',\n '590',\n '591',\n '631',\n '630',\n '590',\n '5',\n '591',\n '592',\n '632',\n '631',\n '591',\n '5',\n '592',\n '593',\n '633',\n '632',\n '592',\n '5',\n '593',\n '594',\n '634',\n '633',\n '593',\n '5',\n '594',\n '595',\n '635',\n '634',\n '594',\n '5',\n '595',\n '596',\n '636',\n '635',\n '595',\n '5',\n '596',\n '597',\n '637',\n '636',\n '596',\n '5',\n '597',\n '598',\n '638',\n '637',\n '597',\n '5',\n '598',\n '599',\n '639',\n '638',\n '598',\n '5',\n '601',\n '600',\n '640',\n '641',\n '601',\n '5',\n '600',\n '602',\n '642',\n '640',\n '600',\n '5',\n '602',\n '603',\n '643',\n '642',\n '602',\n '5',\n '603',\n '604',\n '644',\n '643',\n '603',\n '5',\n '604',\n '605',\n '645',\n '644',\n '604',\n '5',\n '605',\n '606',\n '646',\n '645',\n '605',\n '5',\n '606',\n '607',\n '647',\n '646',\n '606',\n '5',\n '607',\n '608',\n '648',\n '647',\n '607',\n '5',\n '608',\n '609',\n '649',\n '648',\n '608',\n '5',\n '609',\n '610',\n '650',\n '649',\n '609',\n '5',\n '610',\n '611',\n '651',\n '650',\n '610',\n '5',\n '611',\n '612',\n '652',\n '651',\n '611',\n '5',\n '612',\n '613',\n '653',\n '652',\n '612',\n '5',\n '613',\n '614',\n '654',\n '653',\n '613',\n '5',\n '614',\n '615',\n '655',\n '654',\n '614',\n '5',\n '615',\n '616',\n '656',\n '655',\n '615',\n '5',\n '616',\n '617',\n '657',\n '656',\n '616',\n '5',\n '617',\n '618',\n '658',\n '657',\n '617',\n '5',\n '618',\n '619',\n '659',\n '658',\n '618',\n '5',\n '619',\n '620',\n '660',\n '659',\n '619',\n '5',\n '620',\n '621',\n '661',\n '660',\n '620',\n '5',\n '621',\n '622',\n '662',\n '661',\n '621',\n '5',\n '622',\n '623',\n '663',\n '662',\n '622',\n '5',\n '623',\n '624',\n '664',\n '663',\n '623',\n '5',\n '624',\n '625',\n '665',\n '664',\n '624',\n '5',\n '625',\n '626',\n '666',\n '665',\n '625',\n '5',\n '626',\n '627',\n '667',\n '666',\n '626',\n '5',\n '627',\n '628',\n '668',\n '667',\n '627',\n '5',\n '628',\n '629',\n '669',\n '668',\n '628',\n '5',\n '629',\n '630',\n '670',\n '669',\n '629',\n '5',\n '630',\n '631',\n '671',\n '670',\n '630',\n '5',\n '631',\n '632',\n '672',\n '671',\n '631',\n '5',\n '632',\n '633',\n '673',\n '672',\n '632',\n '5',\n '633',\n '634',\n '674',\n '673',\n '633',\n '5',\n '634',\n '635',\n '675',\n '674',\n '634',\n '5',\n '635',\n '636',\n '676',\n '675',\n '635',\n '5',\n '636',\n '637',\n '677',\n '676',\n '636',\n '5',\n '637',\n '638',\n '678',\n '677',\n '637',\n '5',\n '638',\n '639',\n '679',\n '678',\n '638',\n '5',\n '641',\n '640',\n '680',\n '681',\n '641',\n '5',\n '640',\n '642',\n '682',\n '680',\n '640',\n '5',\n '642',\n '643',\n '683',\n '682',\n '642',\n '5',\n '643',\n '644',\n '684',\n '683',\n '643',\n '5',\n '644',\n '645',\n '685',\n '684',\n '644',\n '5',\n '645',\n '646',\n '686',\n '685',\n '645',\n '5',\n '646',\n '647',\n '687',\n '686',\n '646',\n '5',\n '647',\n '648',\n '688',\n '687',\n '647',\n '5',\n '648',\n '649',\n '689',\n '688',\n '648',\n '5',\n '649',\n '650',\n '690',\n '689',\n '649',\n '5',\n '650',\n '651',\n '691',\n '690',\n '650',\n '5',\n '651',\n '652',\n '692',\n '691',\n '651',\n '5',\n '652',\n '653',\n '693',\n '692',\n '652',\n '5',\n '653',\n '654',\n '694',\n '693',\n '653',\n '5',\n '654',\n '655',\n '695',\n '694',\n '654',\n '5',\n '655',\n '656',\n '696',\n '695',\n '655',\n '5',\n '656',\n '657',\n '697',\n '696',\n '656',\n '5',\n '657',\n '658',\n '698',\n '697',\n '657',\n '5',\n '658',\n '659',\n '699',\n '698',\n '658',\n '5',\n '659',\n '660',\n '700',\n '699',\n '659',\n '5',\n '660',\n '661',\n '701',\n '700',\n '660',\n '5',\n '661',\n '662',\n '702',\n '701',\n '661',\n '5',\n '662',\n '663',\n '703',\n '702',\n '662',\n '5',\n '663',\n '664',\n '704',\n '703',\n '663',\n '5',\n '664',\n '665',\n '705',\n '704',\n '664',\n '5',\n '665',\n '666',\n '706',\n '705',\n '665',\n '5',\n '666',\n '667',\n '707',\n '706',\n '666',\n '5',\n '667',\n '668',\n '708',\n '707',\n '667',\n '5',\n '668',\n '669',\n '709',\n '708',\n '668',\n '5',\n '669',\n '670',\n '710',\n '709',\n '669',\n '5',\n '670',\n '671',\n '711',\n '710',\n '670',\n '5',\n '671',\n '672',\n '712',\n '711',\n '671',\n '5',\n '672',\n '673',\n '713',\n '712',\n '672',\n '5',\n '673',\n '674',\n '714',\n '713',\n '673',\n '5',\n '674',\n '675',\n '715',\n '714',\n '674',\n '5',\n '675',\n '676',\n '716',\n '715',\n '675',\n '5',\n '676',\n '677',\n '717',\n '716',\n '676',\n '5',\n '677',\n '678',\n '718',\n '717',\n '677',\n '5',\n '678',\n '679',\n '719',\n '718',\n '678',\n '5',\n '681',\n '680',\n '720',\n '721',\n '681',\n '5',\n '680',\n '682',\n '722',\n '720',\n '680',\n '5',\n '682',\n '683',\n '723',\n '722',\n '682',\n '5',\n '683',\n '684',\n '724',\n '723',\n '683',\n '5',\n '684',\n '685',\n '725',\n '724',\n '684',\n '5',\n '685',\n '686',\n '726',\n '725',\n '685',\n '5',\n '686',\n '687',\n '727',\n '726',\n '686',\n '5',\n '687',\n '688',\n '728',\n '727',\n '687',\n '5',\n '688',\n '689',\n '729',\n '728',\n '688',\n '5',\n '689',\n '690',\n '730',\n '729',\n '689',\n '5',\n '690',\n '691',\n '731',\n '730',\n '690',\n '5',\n '691',\n '692',\n '732',\n '731',\n '691',\n '5',\n '692',\n '693',\n '733',\n '732',\n '692',\n '5',\n '693',\n '694',\n '734',\n '733',\n '693',\n '5',\n '694',\n '695',\n '735',\n '734',\n '694',\n '5',\n '695',\n '696',\n '736',\n '735',\n '695',\n '5',\n '696',\n '697',\n '737',\n '736',\n '696',\n '5',\n '697',\n '698',\n '738',\n '737',\n '697',\n '5',\n '698',\n '699',\n '739',\n '738',\n '698',\n '5',\n '699',\n '700',\n '740',\n '739',\n '699',\n '5',\n '700',\n '701',\n '741',\n '740',\n '700',\n '5',\n '701',\n '702',\n '742',\n '741',\n '701',\n '5',\n '702',\n '703',\n '743',\n '742',\n '702',\n '5',\n '703',\n '704',\n '744',\n '743',\n '703',\n '5',\n '704',\n '705',\n '745',\n '744',\n '704',\n '5',\n '705',\n '706',\n '746',\n '745',\n '705',\n '5',\n '706',\n '707',\n '747',\n '746',\n '706',\n '5',\n '707',\n '708',\n '748',\n '747',\n '707',\n '5',\n '708',\n '709',\n '749',\n '748',\n '708',\n '5',\n '709',\n '710',\n '750',\n '749',\n '709',\n '5',\n '710',\n '711',\n '751',\n '750',\n '710',\n '5',\n '711',\n '712',\n '752',\n '751',\n '711',\n '5',\n '712',\n '713',\n '753',\n '752',\n '712',\n '5',\n '713',\n '714',\n '754',\n '753',\n '713',\n '5',\n '714',\n '715',\n '755',\n '754',\n '714',\n '5',\n '715',\n '716',\n '756',\n '755',\n '715',\n '5',\n '716',\n '717',\n '757',\n '756',\n '716',\n '5',\n '717',\n '718',\n '758',\n '757',\n '717',\n '5',\n '718',\n '719',\n '759',\n '758',\n '718',\n '5',\n '721',\n '720',\n '760',\n '761',\n '721',\n '5',\n '720',\n '722',\n '762',\n '760',\n '720',\n '5',\n '722',\n '723',\n '763',\n '762',\n '722',\n '5',\n '723',\n '724',\n '764',\n '763',\n '723',\n '5',\n '724',\n '725',\n '765',\n '764',\n '724',\n '5',\n '725',\n '726',\n '766',\n '765',\n '725',\n '5',\n '726',\n '727',\n '767',\n '766',\n '726',\n '5',\n '727',\n '728',\n '768',\n '767',\n '727',\n '5',\n '728',\n '729',\n '769',\n '768',\n '728',\n '5',\n '729',\n '730',\n '770',\n '769',\n '729',\n '5',\n '730',\n '731',\n '771',\n '770',\n '730',\n '5',\n '731',\n '732',\n '772',\n '771',\n '731',\n '5',\n '732',\n '733',\n '773',\n '772',\n '732',\n '5',\n '733',\n '734',\n '774',\n '773',\n '733',\n '5',\n '734',\n '735',\n '775',\n '774',\n '734',\n '5',\n '735',\n '736',\n '776',\n '775',\n '735',\n '5',\n '736',\n '737',\n '777',\n '776',\n '736',\n '5',\n '737',\n '738',\n '778',\n '777',\n '737',\n '5',\n '738',\n '739',\n '779',\n '778',\n '738',\n '5',\n '739',\n '740',\n '780',\n '779',\n '739',\n '5',\n '740',\n '741',\n '781',\n '780',\n '740',\n '5',\n '741',\n '742',\n '782',\n '781',\n '741',\n '5',\n '742',\n '743',\n '783',\n '782',\n '742',\n '5',\n '743',\n '744',\n '784',\n '783',\n '743',\n '5',\n '744',\n '745',\n '785',\n '784',\n '744',\n '5',\n '745',\n '746',\n '786',\n '785',\n '745',\n '5',\n '746',\n '747',\n '787',\n '786',\n '746',\n '5',\n '747',\n '748',\n '788',\n '787',\n '747',\n '5',\n '748',\n '749',\n '789',\n '788',\n '748',\n '5',\n '749',\n '750',\n '790',\n '789',\n '749',\n '5',\n '750',\n '751',\n '791',\n '790',\n '750',\n '5',\n '751',\n '752',\n '792',\n '791',\n '751',\n '5',\n '752',\n '753',\n '793',\n '792',\n '752',\n '5',\n '753',\n '754',\n '794',\n '793',\n '753',\n '5',\n '754',\n '755',\n '795',\n '794',\n '754',\n '5',\n '755',\n '756',\n '796',\n '795',\n '755',\n '5',\n '756',\n '757',\n '797',\n '796',\n '756',\n '5',\n '757',\n '758',\n '798',\n '797',\n '757',\n '5',\n '758',\n '759',\n '799',\n '798',\n '758',\n '5',\n '761',\n '760',\n '800',\n '801',\n '761',\n '5',\n '760',\n '762',\n '802',\n '800',\n '760',\n '5',\n '762',\n '763',\n '803',\n '802',\n '762',\n '5',\n '763',\n '764',\n '804',\n '803',\n '763',\n '5',\n '764',\n '765',\n '805',\n '804',\n '764',\n '5',\n '765',\n '766',\n '806',\n '805',\n '765',\n '5',\n '766',\n '767',\n '807',\n '806',\n '766',\n '5',\n '767',\n '768',\n '808',\n '807',\n '767',\n '5',\n '768',\n '769',\n '809',\n '808',\n '768',\n '5',\n '769',\n '770',\n '810',\n '809',\n '769',\n '5',\n '770',\n '771',\n '811',\n '810',\n '770',\n '5',\n '771',\n '772',\n '812',\n '811',\n '771',\n '5',\n '772',\n '773',\n '813',\n '812',\n '772',\n '5',\n '773',\n '774',\n '814',\n '813',\n '773',\n '5',\n '774',\n '775',\n '815',\n '814',\n '774',\n '5',\n '775',\n '776',\n '816',\n '815',\n '775',\n '5',\n '776',\n '777',\n '817',\n '816',\n '776',\n '5',\n '777',\n '778',\n '818',\n '817',\n '777',\n '5',\n '778',\n '779',\n '819',\n '818',\n '778',\n '5',\n '779',\n '780',\n '820',\n '819',\n '779',\n '5',\n '780',\n '781',\n '821',\n '820',\n '780',\n '5',\n '781',\n '782',\n '822',\n '821',\n '781',\n '5',\n '782',\n '783',\n '823',\n '822',\n '782',\n '5',\n '783',\n '784',\n '824',\n '823',\n '783',\n '5',\n '784',\n '785',\n '825',\n '824',\n '784',\n '5',\n '785',\n '786',\n '826',\n '825',\n '785',\n '5',\n '786',\n '787',\n '827',\n '826',\n '786',\n '5',\n '787',\n '788',\n '828',\n '827',\n '787',\n '5',\n '788',\n '789',\n '829',\n '828',\n '788',\n '5',\n '789',\n '790',\n '830',\n '829',\n '789',\n '5',\n '790',\n '791',\n '831',\n '830',\n '790',\n '5',\n '791',\n '792',\n '832',\n '831',\n '791',\n '5',\n '792',\n '793',\n '833',\n '832',\n '792',\n '5',\n '793',\n '794',\n '834',\n '833',\n '793',\n '5',\n '794',\n '795',\n '835',\n '834',\n '794',\n '5',\n '795',\n '796',\n '836',\n '835',\n '795',\n '5',\n '796',\n '797',\n '837',\n '836',\n '796',\n '5',\n '797',\n '798',\n '838',\n '837',\n '797',\n '5',\n '798',\n '799',\n '839',\n '838',\n '798',\n '5',\n '801',\n '800',\n '840',\n '841',\n '801',\n '5',\n '800',\n '802',\n '842',\n '840',\n '800',\n '5',\n '802',\n '803',\n '843',\n '842',\n '802',\n '5',\n '803',\n '804',\n '844',\n '843',\n '803',\n '5',\n '804',\n '805',\n '845',\n '844',\n '804',\n '5',\n '805',\n '806',\n '846',\n '845',\n '805',\n '5',\n '806',\n '807',\n '847',\n '846',\n '806',\n '5',\n '807',\n '808',\n '848',\n '847',\n '807',\n '5',\n '808',\n '809',\n '849',\n '848',\n '808',\n '5',\n '809',\n '810',\n '850',\n '849',\n '809',\n '5',\n '810',\n '811',\n '851',\n '850',\n '810',\n '5',\n '811',\n '812',\n '852',\n '851',\n '811',\n '5',\n '812',\n '813',\n '853',\n '852',\n '812',\n '5',\n '813',\n '814',\n '854',\n '853',\n '813',\n '5',\n '814',\n '815',\n '855',\n '854',\n '814',\n '5',\n '815',\n '816',\n '856',\n '855',\n '815',\n '5',\n '816',\n '817',\n '857',\n '856',\n '816',\n '5',\n '817',\n '818',\n '858',\n '857',\n '817',\n '5',\n '818',\n '819',\n '859',\n '858',\n '818',\n '5',\n '819',\n '820',\n '860',\n '859',\n '819',\n '5',\n '820',\n '821',\n '861',\n '860',\n '820',\n '5',\n '821',\n '822',\n '862',\n '861',\n '821',\n '5',\n '822',\n '823',\n '863',\n '862',\n '822',\n '5',\n '823',\n '824',\n '864',\n '863',\n '823',\n '5',\n '824',\n '825',\n '865',\n '864',\n '824',\n '5',\n '825',\n '826',\n '866',\n '865',\n '825',\n '5',\n '826',\n '827',\n '867',\n '866',\n '826',\n '5',\n '827',\n '828',\n '868',\n '867',\n '827',\n '5',\n '828',\n '829',\n '869',\n '868',\n '828',\n '5',\n '829',\n '830',\n '870',\n '869',\n '829',\n '5',\n '830',\n '831',\n '871',\n '870',\n '830',\n '5',\n '831',\n '832',\n '872',\n '871',\n '831',\n '5',\n '832',\n '833',\n '873',\n '872',\n '832',\n '5',\n '833',\n '834',\n '874',\n '873',\n '833',\n '5',\n '834',\n '835',\n '875',\n '874',\n '834',\n '5',\n '835',\n '836',\n '876',\n '875',\n '835',\n '5',\n '836',\n '837',\n '877',\n '876',\n '836',\n '5',\n '837',\n '838',\n '878',\n '877',\n '837',\n '5',\n '838',\n '839',\n '879',\n '878',\n '838',\n '5',\n '841',\n '840',\n '880',\n '881',\n '841',\n '5',\n '840',\n '842',\n '882',\n '880',\n '840',\n '5',\n '842',\n '843',\n '883',\n '882',\n '842',\n '5',\n '843',\n '844',\n '884',\n '883',\n '843',\n '5',\n '844',\n '845',\n '885',\n '884',\n '844',\n '5',\n '845',\n '846',\n '886',\n '885',\n '845',\n '5',\n '846',\n '847',\n '887',\n '886',\n '846',\n '5',\n '847',\n '848',\n '888',\n '887',\n '847',\n '5',\n '848',\n '849',\n '889',\n '888',\n '848',\n '5',\n '849',\n '850',\n '890',\n '889',\n '849',\n '5',\n '850',\n '851',\n '891',\n '890',\n '850',\n '5',\n '851',\n '852',\n '892',\n '891',\n '851',\n '5',\n '852',\n '853',\n '893',\n '892',\n '852',\n '5',\n '853',\n '854',\n '894',\n '893',\n '853',\n '5',\n '854',\n '855',\n '895',\n '894',\n '854',\n '5',\n '855',\n '856',\n '896',\n '895',\n '855',\n '5',\n '856',\n '857',\n '897',\n '896',\n '856',\n '5',\n '857',\n '858',\n '898',\n '897',\n '857',\n '5',\n '858',\n '859',\n '899',\n '898',\n '858',\n '5',\n '859',\n '860',\n '900',\n '899',\n '859',\n '5',\n '860',\n '861',\n '901',\n '900',\n '860',\n '5',\n '861',\n '862',\n '902',\n '901',\n '861',\n '5',\n '862',\n '863',\n '903',\n '902',\n '862',\n '5',\n '863',\n '864',\n '904',\n '903',\n '863',\n '5',\n '864',\n '865',\n '905',\n '904',\n '864',\n '5',\n '865',\n '866',\n '906',\n '905',\n '865',\n '5',\n '866',\n '867',\n '907',\n '906',\n '866',\n '5',\n '867',\n '868',\n '908',\n '907',\n '867',\n '5',\n '868',\n '869',\n '909',\n '908',\n '868',\n '5',\n '869',\n '870',\n '910',\n '909',\n '869',\n '5',\n '870',\n '871',\n '911',\n '910',\n '870',\n '5',\n '871',\n '872',\n '912',\n '911',\n '871',\n '5',\n '872',\n '873',\n '913',\n '912',\n '872',\n '5',\n '873',\n '874',\n '914',\n '913',\n '873',\n '5',\n '874',\n '875',\n '915',\n '914',\n '874',\n '5',\n '875',\n '876',\n '916',\n '915',\n '875',\n '5',\n '876',\n '877',\n '917',\n '916',\n '876',\n '5',\n '877',\n '878',\n '918',\n '917',\n '877',\n '5',\n '878',\n '879',\n '919',\n '918',\n '878',\n '5',\n '881',\n '880',\n '920',\n '921',\n '881',\n '5',\n '880',\n '882',\n '922',\n '920',\n '880',\n '5',\n '882',\n '883',\n '923',\n '922',\n '882',\n '5',\n '883',\n '884',\n '924',\n '923',\n '883',\n '5',\n '884',\n '885',\n '925',\n '924',\n '884',\n '5',\n '885',\n '886',\n '926',\n '925',\n '885',\n '5',\n '886',\n '887',\n '927',\n '926',\n '886',\n '5',\n '887',\n '888',\n '928',\n '927',\n '887',\n '5',\n '888',\n '889',\n '929',\n '928',\n '888',\n '5',\n '889',\n '890',\n '930',\n '929',\n '889',\n '5',\n '890',\n '891',\n '931',\n '930',\n '890',\n '5',\n '891',\n '892',\n '932',\n '931',\n '891',\n '5',\n '892',\n '893',\n '933',\n '932',\n '892',\n '5',\n '893',\n '894',\n '934',\n '933',\n '893',\n '5',\n '894',\n '895',\n '935',\n '934',\n '894',\n '5',\n '895',\n '896',\n '936',\n '935',\n '895',\n '5',\n '896',\n '897',\n '937',\n '936',\n '896',\n '5',\n '897',\n '898',\n '938',\n '937',\n '897',\n '5',\n '898',\n '899',\n '939',\n '938',\n '898',\n '5',\n '899',\n '900',\n '940',\n '939',\n '899',\n '5',\n '900',\n '901',\n '941',\n '940',\n '900',\n '5',\n '901',\n '902',\n '942',\n '941',\n '901',\n '5',\n '902',\n '903',\n '943',\n '942',\n '902',\n '5',\n '903',\n '904',\n '944',\n '943',\n '903',\n '5',\n '904',\n '905',\n '945',\n '944',\n '904',\n '5',\n '905',\n '906',\n '946',\n '945',\n '905',\n '5',\n '906',\n '907',\n '947',\n '946',\n '906',\n '5',\n '907',\n '908',\n '948',\n '947',\n '907',\n '5',\n '908',\n '909',\n '949',\n '948',\n '908',\n '5',\n '909',\n '910',\n '950',\n '949',\n '909',\n '5',\n '910',\n '911',\n '951',\n '950',\n '910',\n '5',\n '911',\n '912',\n '952',\n '951',\n '911',\n '5',\n '912',\n '913',\n '953',\n '952',\n '912',\n '5',\n '913',\n '914',\n '954',\n '953',\n '913',\n '5',\n '914',\n '915',\n '955',\n '954',\n '914',\n '5',\n '915',\n '916',\n '956',\n '955',\n '915',\n '5',\n '916',\n '917',\n '957',\n '956',\n '916',\n '5',\n '917',\n '918',\n '958',\n '957',\n '917',\n '5',\n '918',\n '919',\n '959',\n '958',\n '918',\n '5',\n '921',\n '920',\n '960',\n '961',\n '921',\n '5',\n '920',\n '922',\n '962',\n '960',\n '920',\n '5',\n '922',\n '923',\n '963',\n '962',\n '922',\n '5',\n '923',\n '924',\n '964',\n '963',\n '923',\n '5',\n '924',\n '925',\n '965',\n '964',\n '924',\n '5',\n '925',\n '926',\n '966',\n '965',\n '925',\n '5',\n '926',\n '927',\n '967',\n '966',\n '926',\n '5',\n '927',\n '928',\n '968',\n '967',\n '927',\n '5',\n '928',\n '929',\n '969',\n '968',\n '928',\n '5',\n '929',\n '930',\n '970',\n '969',\n '929',\n '5',\n '930',\n '931',\n '971',\n '970',\n '930',\n '5',\n '931',\n '932',\n '972',\n '971',\n '931',\n '5',\n '932',\n '933',\n '973',\n '972',\n '932',\n '5',\n '933',\n '934',\n '974',\n '973',\n '933',\n '5',\n '934',\n '935',\n '975',\n '974',\n '934',\n '5',\n '935',\n '936',\n '976',\n '975',\n '935',\n '5',\n '936',\n '937',\n '977',\n '976',\n '936',\n '5',\n '937',\n '938',\n '978',\n '977',\n '937',\n '5',\n '938',\n '939',\n '979',\n '978',\n '938',\n '5',\n '939',\n '940',\n '980',\n '979',\n '939',\n '5',\n '940',\n '941',\n '981',\n '980',\n '940',\n '5',\n '941',\n '942',\n '982',\n '981',\n '941',\n '5',\n '942',\n '943',\n '983',\n '982',\n '942',\n '5',\n '943',\n '944',\n '984',\n '983',\n '943',\n '5',\n '944',\n '945',\n '985',\n '984',\n '944',\n '5',\n '945',\n '946',\n '986',\n '985',\n '945',\n '5',\n '946',\n '947',\n '987',\n '986',\n '946',\n '5',\n '947',\n '948',\n '988',\n '987',\n '947',\n '5',\n '948',\n '949',\n '989',\n '988',\n '948',\n '5',\n '949',\n '950',\n '990',\n '989',\n '949',\n '5',\n '950',\n '951',\n '991',\n '990',\n '950',\n '5',\n '951',\n '952',\n '992',\n '991',\n '951',\n '5',\n '952',\n '953',\n '993',\n '992',\n '952',\n '5',\n '953',\n '954',\n '994',\n '993',\n '953',\n '5',\n '954',\n '955',\n '995',\n '994',\n '954',\n '5',\n '955',\n '956',\n '996',\n '995',\n '955',\n '5',\n '956',\n '957',\n '997',\n '996',\n '956',\n '5',\n '957',\n '958',\n '998',\n '997',\n '957',\n '5',\n '958',\n '959',\n '999',\n '998',\n '958',\n '5',\n '961',\n '960',\n '1000',\n '1001',\n '961',\n '5',\n '960',\n '962',\n '1002',\n '1000',\n '960',\n '5',\n '962',\n '963',\n '1003',\n '1002',\n '962',\n '5',\n '963',\n '964',\n '1004',\n '1003',\n '963',\n '5',\n '964',\n '965',\n '1005',\n '1004',\n '964',\n '5',\n '965',\n '966',\n '1006',\n '1005',\n '965',\n '5',\n '966',\n '967',\n '1007',\n '1006',\n '966',\n '5',\n '967',\n '968',\n '1008',\n '1007',\n '967',\n '5',\n '968',\n '969',\n '1009',\n '1008',\n '968',\n '5',\n '969',\n '970',\n '1010',\n '1009',\n '969',\n '5',\n '970',\n '971',\n '1011',\n '1010',\n '970',\n '5',\n '971',\n '972',\n '1012',\n '1011',\n '971',\n '5',\n '972',\n '973',\n '1013',\n '1012',\n '972',\n '5',\n '973',\n '974',\n '1014',\n '1013',\n '973',\n '5',\n '974',\n '975',\n '1015',\n '1014',\n '974',\n '5',\n '975',\n '976',\n '1016',\n '1015',\n '975',\n '5',\n '976',\n '977',\n '1017',\n '1016',\n '976',\n '5',\n '977',\n '978',\n '1018',\n '1017',\n '977',\n '5',\n '978',\n '979',\n '1019',\n '1018',\n '978',\n '5',\n '979',\n '980',\n '1020',\n '1019',\n '979',\n '5',\n '980',\n '981',\n '1021',\n '1020',\n '980',\n '5',\n '981',\n '982',\n '1022',\n '1021',\n '981',\n '5',\n '982',\n '983',\n '1023',\n '1022',\n '982',\n '5',\n '983',\n '984',\n '1024',\n '1023',\n '983',\n '5',\n '984',\n '985',\n '1025',\n '1024',\n '984',\n '5',\n '985',\n '986',\n '1026',\n '1025',\n '985',\n '5',\n '986',\n '987',\n '1027',\n '1026',\n '986',\n '5',\n '987',\n '988',\n '1028',\n '1027',\n '987',\n '5',\n '988',\n '989',\n '1029',\n '1028',\n '988',\n '5',\n '989',\n '990',\n '1030',\n '1029',\n '989',\n '5',\n '990',\n '991',\n '1031',\n '1030',\n '990',\n '5',\n '991',\n '992',\n '1032',\n '1031',\n '991',\n '5',\n '992',\n '993',\n '1033',\n '1032',\n '992',\n '5',\n '993',\n '994',\n '1034',\n '1033',\n '993',\n '5',\n '994',\n '995',\n '1035',\n '1034',\n '994',\n '5',\n '995',\n '996',\n '1036',\n '1035',\n '995',\n '5',\n '996',\n '997',\n '1037',\n '1036',\n '996',\n '5',\n '997',\n '998',\n '1038',\n '1037',\n '997',\n '5',\n '998',\n '999',\n '1039',\n '1038',\n '998',\n '5',\n '1001',\n '1000',\n '1040',\n '1041',\n '1001',\n '5',\n '1000',\n '1002',\n '1042',\n '1040',\n '1000',\n '5',\n '1002',\n '1003',\n '1043',\n '1042',\n '1002',\n '5',\n '1003',\n '1004',\n '1044',\n '1043',\n '1003',\n '5',\n '1004',\n '1005',\n '1045',\n '1044',\n '1004',\n '5',\n '1005',\n '1006',\n '1046',\n '1045',\n '1005',\n '5',\n '1006',\n '1007',\n '1047',\n '1046',\n '1006',\n '5',\n '1007',\n '1008',\n '1048',\n '1047',\n '1007',\n '5',\n '1008',\n '1009',\n '1049',\n '1048',\n '1008',\n '5',\n '1009',\n '1010',\n '1050',\n '1049',\n '1009',\n '5',\n '1010',\n '1011',\n '1051',\n '1050',\n '1010',\n '5',\n '1011',\n '1012',\n '1052',\n '1051',\n '1011',\n '5',\n '1012',\n '1013',\n '1053',\n '1052',\n '1012',\n '5',\n '1013',\n '1014',\n '1054',\n '1053',\n '1013',\n '5',\n '1014',\n '1015',\n '1055',\n '1054',\n '1014',\n '5',\n '1015',\n '1016',\n '1056',\n '1055',\n '1015',\n '5',\n '1016',\n '1017',\n '1057',\n '1056',\n '1016',\n '5',\n '1017',\n '1018',\n '1058',\n '1057',\n '1017',\n '5',\n '1018',\n '1019',\n '1059',\n '1058',\n '1018',\n '5',\n '1019',\n '1020',\n '1060',\n '1059',\n '1019',\n '5',\n '1020',\n '1021',\n '1061',\n '1060',\n '1020',\n '5',\n '1021',\n '1022',\n '1062',\n '1061',\n '1021',\n '5',\n '1022',\n '1023',\n '1063',\n '1062',\n '1022',\n '5',\n '1023',\n '1024',\n '1064',\n '1063',\n '1023',\n '5',\n '1024',\n '1025',\n '1065',\n '1064',\n '1024',\n '5',\n '1025',\n '1026',\n '1066',\n '1065',\n '1025',\n '5',\n '1026',\n '1027',\n '1067',\n '1066',\n '1026',\n '5',\n '1027',\n '1028',\n '1068',\n '1067',\n '1027',\n '5',\n '1028',\n '1029',\n '1069',\n '1068',\n '1028',\n '5',\n '1029',\n '1030',\n '1070',\n '1069',\n '1029',\n '5',\n '1030',\n '1031',\n '1071',\n '1070',\n '1030',\n '5',\n '1031',\n '1032',\n '1072',\n '1071',\n '1031',\n '5',\n '1032',\n '1033',\n '1073',\n '1072',\n '1032',\n '5',\n '1033',\n '1034',\n '1074',\n '1073',\n '1033',\n '5',\n '1034',\n '1035',\n '1075',\n '1074',\n '1034',\n '5',\n '1035',\n '1036',\n '1076',\n '1075',\n '1035',\n '5',\n '1036',\n '1037',\n '1077',\n '1076',\n '1036',\n '5',\n '1037',\n '1038',\n '1078',\n '1077',\n '1037',\n '5',\n '1038',\n '1039',\n '1079',\n '1078',\n '1038',\n '5',\n '1041',\n '1040',\n '1080',\n '1081',\n '1041',\n '5',\n '1040',\n '1042',\n '1082',\n '1080',\n '1040',\n '5',\n '1042',\n '1043',\n '1083',\n '1082',\n '1042',\n '5',\n '1043',\n '1044',\n '1084',\n '1083',\n '1043',\n '5',\n '1044',\n '1045',\n '1085',\n '1084',\n '1044',\n '5',\n '1045',\n '1046',\n '1086',\n '1085',\n '1045',\n '5',\n '1046',\n '1047',\n '1087',\n '1086',\n '1046',\n '5',\n '1047',\n '1048',\n '1088',\n '1087',\n '1047',\n '5',\n '1048',\n '1049',\n '1089',\n '1088',\n '1048',\n '5',\n '1049',\n '1050',\n '1090',\n '1089',\n '1049',\n '5',\n '1050',\n '1051',\n '1091',\n '1090',\n '1050',\n '5',\n '1051',\n '1052',\n '1092',\n '1091',\n '1051',\n '5',\n '1052',\n '1053',\n '1093',\n '1092',\n '1052',\n '5',\n '1053',\n '1054',\n '1094',\n '1093',\n '1053',\n '5',\n '1054',\n '1055',\n '1095',\n '1094',\n '1054',\n '5',\n '1055',\n '1056',\n '1096',\n '1095',\n '1055',\n '5',\n '1056',\n '1057',\n '1097',\n '1096',\n '1056',\n '5',\n '1057',\n '1058',\n '1098',\n '1097',\n '1057',\n '5',\n '1058',\n '1059',\n '1099',\n '1098',\n '1058',\n '5',\n '1059',\n '1060',\n '1100',\n '1099',\n '1059',\n '5',\n '1060',\n '1061',\n '1101',\n '1100',\n '1060',\n '5',\n '1061',\n '1062',\n '1102',\n '1101',\n '1061',\n '5',\n '1062',\n '1063',\n '1103',\n '1102',\n '1062',\n '5',\n '1063',\n '1064',\n '1104',\n '1103',\n '1063',\n '5',\n '1064',\n '1065',\n '1105',\n '1104',\n '1064',\n '5',\n '1065',\n '1066',\n '1106',\n '1105',\n '1065',\n '5',\n '1066',\n '1067',\n '1107',\n '1106',\n '1066',\n '5',\n '1067',\n '1068',\n '1108',\n '1107',\n '1067',\n '5',\n '1068',\n '1069',\n '1109',\n '1108',\n '1068',\n '5',\n '1069',\n '1070',\n '1110',\n '1109',\n '1069',\n '5',\n '1070',\n '1071',\n '1111',\n '1110',\n '1070',\n '5',\n '1071',\n '1072',\n '1112',\n '1111',\n '1071',\n '5',\n '1072',\n '1073',\n '1113',\n '1112',\n '1072',\n '5',\n '1073',\n '1074',\n '1114',\n '1113',\n '1073',\n '5',\n '1074',\n '1075',\n '1115',\n '1114',\n '1074',\n '5',\n '1075',\n '1076',\n '1116',\n '1115',\n '1075',\n '5',\n '1076',\n '1077',\n '1117',\n '1116',\n '1076',\n '5',\n '1077',\n '1078',\n '1118',\n '1117',\n '1077',\n '5',\n '1078',\n '1079',\n '1119',\n '1118',\n '1078',\n '5',\n '1081',\n '1080',\n '1120',\n '1121',\n '1081',\n '5',\n '1080',\n '1082',\n '1122',\n '1120',\n '1080',\n '5',\n '1082',\n '1083',\n '1123',\n '1122',\n '1082',\n '5',\n '1083',\n '1084',\n '1124',\n '1123',\n '1083',\n '5',\n '1084',\n '1085',\n '1125',\n '1124',\n '1084',\n '5',\n '1085',\n '1086',\n '1126',\n '1125',\n '1085',\n '5',\n '1086',\n '1087',\n '1127',\n '1126',\n '1086',\n '5',\n '1087',\n '1088',\n '1128',\n '1127',\n '1087',\n '5',\n '1088',\n '1089',\n '1129',\n '1128',\n '1088',\n '5',\n '1089',\n '1090',\n '1130',\n '1129',\n '1089',\n '5',\n '1090',\n '1091',\n '1131',\n '1130',\n '1090',\n '5',\n '1091',\n '1092',\n '1132',\n '1131',\n '1091',\n '5',\n '1092',\n '1093',\n '1133',\n '1132',\n '1092',\n '5',\n '1093',\n '1094',\n '1134',\n '1133',\n '1093',\n '5',\n '1094',\n '1095',\n '1135',\n '1134',\n '1094',\n '5',\n '1095',\n '1096',\n '1136',\n '1135',\n '1095',\n '5',\n '1096',\n '1097',\n '1137',\n '1136',\n '1096',\n '5',\n '1097',\n '1098',\n '1138',\n '1137',\n '1097',\n '5',\n '1098',\n '1099',\n '1139',\n '1138',\n '1098',\n '5',\n '1099',\n '1100',\n '1140',\n '1139',\n '1099',\n '5',\n '1100',\n '1101',\n '1141',\n '1140',\n '1100',\n '5',\n '1101',\n '1102',\n '1142',\n '1141',\n '1101',\n '5',\n '1102',\n '1103',\n '1143',\n '1142',\n '1102',\n '5',\n '1103',\n '1104',\n '1144',\n '1143',\n '1103',\n '5',\n '1104',\n '1105',\n '1145',\n '1144',\n '1104',\n '5',\n '1105',\n '1106',\n '1146',\n '1145',\n '1105',\n '5',\n '1106',\n '1107',\n '1147',\n '1146',\n '1106',\n '5',\n '1107',\n '1108',\n '1148',\n '1147',\n '1107',\n '5',\n '1108',\n '1109',\n '1149',\n '1148',\n '1108',\n '5',\n '1109',\n '1110',\n '1150',\n '1149',\n '1109',\n '5',\n '1110',\n '1111',\n '1151',\n '1150',\n '1110',\n '5',\n '1111',\n '1112',\n '1152',\n '1151',\n '1111',\n '5',\n '1112',\n '1113',\n '1153',\n '1152',\n '1112',\n '5',\n '1113',\n '1114',\n '1154',\n '1153',\n '1113',\n '5',\n '1114',\n '1115',\n '1155',\n '1154',\n '1114',\n '5',\n '1115',\n '1116',\n '1156',\n '1155',\n '1115',\n '5',\n '1116',\n '1117',\n '1157',\n '1156',\n '1116',\n '5',\n '1117',\n '1118',\n '1158',\n '1157',\n '1117',\n '5',\n '1118',\n '1119',\n '1159',\n '1158',\n '1118',\n '5',\n '1121',\n '1120',\n '1160',\n '1161',\n '1121',\n '5',\n '1120',\n '1122',\n '1162',\n '1160',\n '1120',\n '5',\n '1122',\n '1123',\n '1163',\n '1162',\n '1122',\n '5',\n '1123',\n '1124',\n '1164',\n '1163',\n '1123',\n '5',\n '1124',\n '1125',\n '1165',\n '1164',\n '1124',\n '5',\n '1125',\n '1126',\n '1166',\n '1165',\n '1125',\n '5',\n '1126',\n '1127',\n '1167',\n '1166',\n '1126',\n '5',\n '1127',\n '1128',\n '1168',\n '1167',\n '1127',\n '5',\n '1128',\n '1129',\n '1169',\n '1168',\n '1128',\n '5',\n '1129',\n '1130',\n '1170',\n '1169',\n '1129',\n '5',\n '1130',\n '1131',\n '1171',\n '1170',\n '1130',\n '5',\n '1131',\n '1132',\n '1172',\n '1171',\n '1131',\n '5',\n '1132',\n '1133',\n '1173',\n '1172',\n '1132',\n '5',\n '1133',\n '1134',\n '1174',\n '1173',\n '1133',\n '5',\n '1134',\n '1135',\n '1175',\n '1174',\n '1134',\n '5',\n '1135',\n '1136',\n '1176',\n '1175',\n '1135',\n '5',\n '1136',\n '1137',\n '1177',\n '1176',\n '1136',\n '5',\n '1137',\n '1138',\n '1178',\n '1177',\n '1137',\n '5',\n '1138',\n '1139',\n '1179',\n '1178',\n '1138',\n '5',\n '1139',\n '1140',\n '1180',\n '1179',\n '1139',\n '5',\n '1140',\n '1141',\n '1181',\n '1180',\n '1140',\n '5',\n '1141',\n '1142',\n '1182',\n '1181',\n '1141',\n '5',\n '1142',\n '1143',\n '1183',\n '1182',\n '1142',\n '5',\n '1143',\n '1144',\n '1184',\n '1183',\n '1143',\n '5',\n '1144',\n '1145',\n '1185',\n '1184',\n '1144',\n '5',\n '1145',\n '1146',\n '1186',\n '1185',\n '1145',\n '5',\n '1146',\n '1147',\n '1187',\n '1186',\n '1146',\n '5',\n '1147',\n '1148',\n '1188',\n '1187',\n '1147',\n '5',\n '1148',\n '1149',\n '1189',\n '1188',\n '1148',\n '5',\n '1149',\n '1150',\n '1190',\n '1189',\n '1149',\n '5',\n '1150',\n '1151',\n '1191',\n '1190',\n '1150',\n '5',\n '1151',\n '1152',\n '1192',\n '1191',\n '1151',\n '5',\n '1152',\n '1153',\n '1193',\n '1192',\n '1152',\n '5',\n '1153',\n '1154',\n '1194',\n '1193',\n '1153',\n '5',\n '1154',\n '1155',\n '1195',\n '1194',\n '1154',\n '5',\n '1155',\n '1156',\n '1196',\n '1195',\n '1155',\n '5',\n '1156',\n '1157',\n '1197',\n '1196',\n '1156',\n '5',\n '1157',\n '1158',\n '1198',\n '1197',\n '1157',\n '5',\n '1158',\n '1159',\n '1199',\n '1198',\n '1158',\n '5',\n '1161',\n '1160',\n '1200',\n '1201',\n '1161',\n '5',\n '1160',\n '1162',\n '1202',\n '1200',\n '1160',\n '5',\n '1162',\n '1163',\n '1203',\n '1202',\n '1162',\n '5',\n '1163',\n '1164',\n '1204',\n '1203',\n '1163',\n '5',\n '1164',\n '1165',\n '1205',\n '1204',\n '1164',\n '5',\n '1165',\n '1166',\n '1206',\n '1205',\n '1165',\n '5',\n '1166',\n '1167',\n '1207',\n '1206',\n '1166',\n '5',\n '1167',\n '1168',\n '1208',\n '1207',\n '1167',\n '5',\n '1168',\n '1169',\n '1209',\n '1208',\n '1168',\n '5',\n '1169',\n '1170',\n '1210',\n '1209',\n '1169',\n '5',\n '1170',\n '1171',\n '1211',\n '1210',\n '1170',\n '5',\n '1171',\n '1172',\n '1212',\n '1211',\n '1171',\n '5',\n '1172',\n '1173',\n '1213',\n '1212',\n '1172',\n '5',\n '1173',\n '1174',\n '1214',\n '1213',\n '1173',\n '5',\n '1174',\n '1175',\n '1215',\n '1214',\n '1174',\n '5',\n '1175',\n '1176',\n '1216',\n '1215',\n '1175',\n '5',\n '1176',\n '1177',\n '1217',\n '1216',\n '1176',\n '5',\n '1177',\n '1178',\n '1218',\n '1217',\n '1177',\n '5',\n '1178',\n '1179',\n '1219',\n '1218',\n '1178',\n '5',\n '1179',\n '1180',\n '1220',\n '1219',\n '1179',\n '5',\n '1180',\n '1181',\n '1221',\n '1220',\n '1180',\n '5',\n '1181',\n '1182',\n '1222',\n '1221',\n '1181',\n '5',\n '1182',\n '1183',\n '1223',\n '1222',\n '1182',\n '5',\n '1183',\n '1184',\n '1224',\n '1223',\n '1183',\n '5',\n '1184',\n '1185',\n '1225',\n '1224',\n '1184',\n '5',\n '1185',\n '1186',\n '1226',\n '1225',\n '1185',\n '5',\n '1186',\n '1187',\n '1227',\n '1226',\n '1186',\n '5',\n '1187',\n '1188',\n '1228',\n '1227',\n '1187',\n '5',\n '1188',\n '1189',\n '1229',\n '1228',\n '1188',\n '5',\n '1189',\n '1190',\n '1230',\n '1229',\n '1189',\n '5',\n '1190',\n '1191',\n '1231',\n '1230',\n '1190',\n '5',\n '1191',\n '1192',\n '1232',\n '1231',\n '1191',\n '5',\n '1192',\n '1193',\n '1233',\n '1232',\n '1192',\n '5',\n '1193',\n '1194',\n '1234',\n '1233',\n '1193',\n '5',\n '1194',\n '1195',\n '1235',\n '1234',\n '1194',\n '5',\n '1195',\n '1196',\n '1236',\n '1235',\n '1195',\n '5',\n '1196',\n '1197',\n '1237',\n '1236',\n '1196',\n '5',\n '1197',\n '1198',\n '1238',\n '1237',\n '1197',\n '5',\n '1198',\n '1199',\n '1239',\n '1238',\n '1198',\n '5',\n '1201',\n '1200',\n '1240',\n '1241',\n '1201',\n '5',\n '1200',\n '1202',\n '1242',\n '1240',\n '1200',\n '5',\n '1202',\n '1203',\n '1243',\n '1242',\n '1202',\n '5',\n '1203',\n '1204',\n '1244',\n '1243',\n '1203',\n '5',\n '1204',\n '1205',\n '1245',\n '1244',\n '1204',\n '5',\n '1205',\n '1206',\n '1246',\n '1245',\n '1205',\n '5',\n '1206',\n '1207',\n '1247',\n '1246',\n '1206',\n '5',\n '1207',\n '1208',\n '1248',\n '1247',\n '1207',\n '5',\n '1208',\n '1209',\n '1249',\n '1248',\n '1208',\n '5',\n '1209',\n '1210',\n '1250',\n '1249',\n '1209',\n '5',\n '1210',\n '1211',\n '1251',\n '1250',\n '1210',\n '5',\n '1211',\n '1212',\n '1252',\n '1251',\n '1211',\n '5',\n '1212',\n '1213',\n '1253',\n '1252',\n '1212',\n '5',\n '1213',\n '1214',\n '1254',\n '1253',\n '1213',\n '5',\n '1214',\n '1215',\n '1255',\n '1254',\n '1214',\n '5',\n '1215',\n '1216',\n '1256',\n '1255',\n '1215',\n '5',\n '1216',\n '1217',\n '1257',\n '1256',\n '1216',\n '5',\n '1217',\n '1218',\n '1258',\n '1257',\n '1217',\n '5',\n '1218',\n '1219',\n '1259',\n '1258',\n '1218',\n '5',\n '1219',\n '1220',\n '1260',\n '1259',\n '1219',\n '5',\n '1220',\n '1221',\n '1261',\n '1260',\n '1220',\n '5',\n '1221',\n '1222',\n '1262',\n '1261',\n '1221',\n '5',\n '1222',\n '1223',\n '1263',\n '1262',\n '1222',\n '5',\n '1223',\n '1224',\n '1264',\n '1263',\n '1223',\n '5',\n '1224',\n '1225',\n '1265',\n '1264',\n '1224',\n '5',\n '1225',\n '1226',\n '1266',\n '1265',\n '1225',\n '5',\n '1226',\n '1227',\n '1267',\n '1266',\n '1226',\n '5',\n '1227',\n '1228',\n '1268',\n '1267',\n '1227',\n '5',\n '1228',\n '1229',\n '1269',\n '1268',\n '1228',\n '5',\n '1229',\n '1230',\n '1270',\n '1269',\n '1229',\n '5',\n '1230',\n '1231',\n '1271',\n '1270',\n '1230',\n '5',\n '1231',\n '1232',\n '1272',\n '1271',\n '1231',\n '5',\n '1232',\n '1233',\n '1273',\n '1272',\n '1232',\n '5',\n '1233',\n '1234',\n '1274',\n '1273',\n '1233',\n '5',\n '1234',\n '1235',\n '1275',\n '1274',\n '1234',\n '5',\n '1235',\n '1236',\n '1276',\n '1275',\n '1235',\n '5',\n '1236',\n '1237',\n '1277',\n '1276',\n '1236',\n '5',\n '1237',\n '1238',\n '1278',\n '1277',\n '1237',\n '5',\n '1238',\n '1239',\n '1279',\n '1278',\n '1238',\n '5',\n '1241',\n '1240',\n '1280',\n '1281',\n '1241',\n '5',\n '1240',\n '1242',\n '1282',\n '1280',\n '1240',\n '5',\n '1242',\n '1243',\n '1283',\n '1282',\n '1242',\n '5',\n '1243',\n '1244',\n '1284',\n '1283',\n '1243',\n '5',\n '1244',\n '1245',\n '1285',\n '1284',\n '1244',\n '5',\n '1245',\n '1246',\n '1286',\n '1285',\n '1245',\n '5',\n '1246',\n '1247',\n '1287',\n '1286',\n '1246',\n '5',\n '1247',\n '1248',\n '1288',\n '1287',\n '1247',\n '5',\n '1248',\n '1249',\n '1289',\n '1288',\n '1248',\n '5',\n '1249',\n '1250',\n '1290',\n '1289',\n '1249',\n '5',\n '1250',\n '1251',\n '1291',\n '1290',\n '1250',\n '5',\n '1251',\n '1252',\n '1292',\n '1291',\n '1251',\n '5',\n '1252',\n '1253',\n '1293',\n '1292',\n '1252',\n '5',\n '1253',\n '1254',\n '1294',\n '1293',\n '1253',\n '5',\n '1254',\n '1255',\n '1295',\n '1294',\n '1254',\n '5',\n '1255',\n '1256',\n '1296',\n '1295',\n '1255',\n '5',\n '1256',\n '1257',\n '1297',\n '1296',\n '1256',\n '5',\n '1257',\n '1258',\n '1298',\n '1297',\n '1257',\n '5',\n '1258',\n '1259',\n '1299',\n '1298',\n '1258',\n '5',\n '1259',\n '1260',\n '1300',\n '1299',\n '1259',\n '5',\n '1260',\n '1261',\n '1301',\n '1300',\n '1260',\n '5',\n '1261',\n '1262',\n '1302',\n '1301',\n '1261',\n '5',\n '1262',\n '1263',\n '1303',\n '1302',\n '1262',\n '5',\n '1263',\n '1264',\n '1304',\n '1303',\n '1263',\n '5',\n '1264',\n '1265',\n '1305',\n '1304',\n '1264',\n '5',\n '1265',\n '1266',\n '1306',\n '1305',\n '1265',\n '5',\n '1266',\n '1267',\n '1307',\n '1306',\n '1266',\n '5',\n '1267',\n '1268',\n '1308',\n '1307',\n '1267',\n '5',\n '1268',\n '1269',\n '1309',\n '1308',\n '1268',\n '5',\n '1269',\n '1270',\n '1310',\n '1309',\n '1269',\n '5',\n '1270',\n '1271',\n '1311',\n '1310',\n '1270',\n '5',\n '1271',\n '1272',\n '1312',\n '1311',\n '1271',\n '5',\n '1272',\n '1273',\n '1313',\n '1312',\n '1272',\n '5',\n '1273',\n '1274',\n '1314',\n '1313',\n '1273',\n '5',\n '1274',\n '1275',\n '1315',\n '1314',\n '1274',\n '5',\n '1275',\n '1276',\n '1316',\n '1315',\n '1275',\n '5',\n '1276',\n '1277',\n '1317',\n '1316',\n '1276',\n '5',\n '1277',\n '1278',\n '1318',\n '1317',\n '1277',\n '5',\n '1278',\n '1279',\n '1319',\n '1318',\n '1278',\n '5',\n '1281',\n '1280',\n '1320',\n '1321',\n '1281',\n '5',\n '1280',\n '1282',\n '1322',\n '1320',\n '1280',\n '5',\n '1282',\n '1283',\n '1323',\n '1322',\n '1282',\n '5',\n '1283',\n '1284',\n '1324',\n '1323',\n '1283',\n '5',\n '1284',\n '1285',\n '1325',\n '1324',\n '1284',\n '5',\n '1285',\n '1286',\n '1326',\n '1325',\n '1285',\n '5',\n '1286',\n '1287',\n '1327',\n '1326',\n '1286',\n '5',\n '1287',\n '1288',\n '1328',\n '1327',\n '1287',\n '5',\n '1288',\n '1289',\n '1329',\n '1328',\n '1288',\n '5',\n '1289',\n '1290',\n '1330',\n '1329',\n '1289',\n '5',\n '1290',\n '1291',\n '1331',\n '1330',\n '1290',\n '5',\n '1291',\n '1292',\n '1332',\n '1331',\n '1291',\n '5',\n '1292',\n '1293',\n '1333',\n '1332',\n '1292',\n '5',\n '1293',\n '1294',\n '1334',\n '1333',\n '1293',\n '5',\n '1294',\n '1295',\n '1335',\n '1334',\n '1294',\n '5',\n '1295',\n '1296',\n '1336',\n '1335',\n '1295',\n '5',\n '1296',\n '1297',\n '1337',\n '1336',\n '1296',\n '5',\n '1297',\n '1298',\n '1338',\n '1337',\n '1297',\n '5',\n '1298',\n '1299',\n '1339',\n '1338',\n '1298',\n '5',\n '1299',\n '1300',\n '1340',\n '1339',\n '1299',\n '5',\n '1300',\n '1301',\n '1341',\n '1340',\n '1300',\n '5',\n '1301',\n '1302',\n '1342',\n '1341',\n '1301',\n '5',\n '1302',\n '1303',\n '1343',\n '1342',\n '1302',\n '5',\n '1303',\n '1304',\n '1344',\n '1343',\n '1303',\n '5',\n '1304',\n '1305',\n '1345',\n '1344',\n '1304',\n '5',\n '1305',\n '1306',\n '1346',\n '1345',\n '1305',\n '5',\n '1306',\n '1307',\n '1347',\n '1346',\n '1306',\n '5',\n '1307',\n '1308',\n '1348',\n '1347',\n '1307',\n '5',\n '1308',\n '1309',\n '1349',\n '1348',\n '1308',\n '5',\n '1309',\n '1310',\n '1350',\n '1349',\n '1309',\n '5',\n '1310',\n '1311',\n '1351',\n '1350',\n '1310',\n '5',\n '1311',\n '1312',\n '1352',\n '1351',\n '1311',\n '5',\n '1312',\n '1313',\n '1353',\n '1352',\n '1312',\n '5',\n '1313',\n '1314',\n '1354',\n '1353',\n '1313',\n '5',\n '1314',\n '1315',\n '1355',\n '1354',\n '1314',\n '5',\n '1315',\n '1316',\n '1356',\n '1355',\n '1315',\n '5',\n '1316',\n '1317',\n '1357',\n '1356',\n '1316',\n '5',\n '1317',\n '1318',\n '1358',\n '1357',\n '1317',\n '5',\n '1318',\n '1319',\n '1359',\n '1358',\n '1318',\n '5',\n '1321',\n '1320',\n '1360',\n '1361',\n '1321',\n '5',\n '1320',\n '1322',\n '1362',\n '1360',\n '1320',\n '5',\n '1322',\n '1323',\n '1363',\n '1362',\n '1322',\n '5',\n '1323',\n '1324',\n '1364',\n '1363',\n '1323',\n '5',\n '1324',\n '1325',\n '1365',\n '1364',\n '1324',\n '5',\n '1325',\n '1326',\n '1366',\n '1365',\n '1325',\n '5',\n '1326',\n '1327',\n '1367',\n '1366',\n '1326',\n '5',\n '1327',\n '1328',\n '1368',\n '1367',\n '1327',\n '5',\n '1328',\n '1329',\n '1369',\n '1368',\n '1328',\n '5',\n '1329',\n '1330',\n '1370',\n '1369',\n '1329',\n '5',\n '1330',\n '1331',\n '1371',\n '1370',\n '1330',\n '5',\n '1331',\n '1332',\n '1372',\n '1371',\n '1331',\n '5',\n '1332',\n '1333',\n '1373',\n '1372',\n '1332',\n '5',\n '1333',\n '1334',\n '1374',\n '1373',\n '1333',\n '5',\n '1334',\n '1335',\n '1375',\n '1374',\n '1334',\n '5',\n '1335',\n '1336',\n '1376',\n '1375',\n '1335',\n '5',\n '1336',\n '1337',\n '1377',\n '1376',\n '1336',\n '5',\n '1337',\n '1338',\n '1378',\n '1377',\n '1337',\n '5',\n '1338',\n '1339',\n '1379',\n '1378',\n '1338',\n '5',\n '1339',\n '1340',\n '1380',\n '1379',\n '1339',\n '5',\n '1340',\n '1341',\n '1381',\n '1380',\n '1340',\n '5',\n '1341',\n '1342',\n '1382',\n '1381',\n '1341',\n '5',\n '1342',\n '1343',\n '1383',\n '1382',\n '1342',\n '5',\n '1343',\n '1344',\n '1384',\n '1383',\n '1343',\n '5',\n '1344',\n '1345',\n '1385',\n '1384',\n '1344',\n '5',\n '1345',\n '1346',\n '1386',\n '1385',\n '1345',\n '5',\n '1346',\n '1347',\n '1387',\n '1386',\n '1346',\n '5',\n '1347',\n '1348',\n '1388',\n '1387',\n '1347',\n '5',\n '1348',\n '1349',\n '1389',\n '1388',\n '1348',\n '5',\n '1349',\n '1350',\n '1390',\n '1389',\n '1349',\n '5',\n '1350',\n '1351',\n '1391',\n '1390',\n '1350',\n '5',\n '1351',\n '1352',\n '1392',\n '1391',\n '1351',\n '5',\n '1352',\n '1353',\n '1393',\n '1392',\n '1352',\n '5',\n '1353',\n '1354',\n '1394',\n '1393',\n '1353',\n '5',\n '1354',\n '1355',\n '1395',\n '1394',\n '1354',\n '5',\n '1355',\n '1356',\n '1396',\n '1395',\n '1355',\n '5',\n '1356',\n '1357',\n '1397',\n '1396',\n '1356',\n '5',\n '1357',\n '1358',\n '1398',\n '1397',\n '1357',\n '5',\n '1358',\n '1359',\n '1399',\n '1398',\n '1358',\n '5',\n '1361',\n '1360',\n '1400',\n '1401',\n '1361',\n '5',\n '1360',\n '1362',\n '1402',\n '1400',\n '1360',\n '5',\n '1362',\n '1363',\n '1403',\n '1402',\n '1362',\n '5',\n '1363',\n '1364',\n '1404',\n '1403',\n '1363',\n '5',\n '1364',\n '1365',\n '1405',\n '1404',\n '1364',\n '5',\n '1365',\n '1366',\n '1406',\n '1405',\n '1365',\n '5',\n '1366',\n '1367',\n '1407',\n '1406',\n '1366',\n '5',\n '1367',\n '1368',\n '1408',\n '1407',\n '1367',\n '5',\n '1368',\n '1369',\n '1409',\n '1408',\n '1368',\n '5',\n '1369',\n '1370',\n '1410',\n '1409',\n '1369',\n '5',\n '1370',\n '1371',\n '1411',\n '1410',\n '1370',\n '5',\n '1371',\n '1372',\n '1412',\n '1411',\n '1371',\n '5',\n '1372',\n '1373',\n '1413',\n '1412',\n '1372',\n '5',\n '1373',\n '1374',\n '1414',\n '1413',\n '1373',\n '5',\n '1374',\n '1375',\n '1415',\n '1414',\n '1374',\n '5',\n '1375',\n '1376',\n '1416',\n '1415',\n '1375',\n '5',\n '1376',\n '1377',\n '1417',\n '1416',\n '1376',\n '5',\n '1377',\n '1378',\n '1418',\n '1417',\n '1377',\n '5',\n '1378',\n '1379',\n '1419',\n '1418',\n '1378',\n '5',\n '1379',\n '1380',\n '1420',\n '1419',\n '1379',\n '5',\n '1380',\n '1381',\n '1421',\n '1420',\n '1380',\n '5',\n '1381',\n '1382',\n '1422',\n '1421',\n '1381',\n '5',\n '1382',\n '1383',\n '1423',\n '1422',\n '1382',\n '5',\n '1383',\n '1384',\n '1424',\n '1423',\n '1383',\n '5',\n '1384',\n '1385',\n '1425',\n '1424',\n '1384',\n '5',\n '1385',\n '1386',\n '1426',\n '1425',\n '1385',\n '5',\n '1386',\n '1387',\n '1427',\n '1426',\n '1386',\n '5',\n '1387',\n '1388',\n '1428',\n '1427',\n '1387',\n '5',\n '1388',\n '1389',\n '1429',\n '1428',\n '1388',\n '5',\n '1389',\n '1390',\n '1430',\n '1429',\n '1389',\n '5',\n '1390',\n '1391',\n '1431',\n '1430',\n '1390',\n '5',\n '1391',\n '1392',\n '1432',\n '1431',\n '1391',\n '5',\n '1392',\n '1393',\n '1433',\n '1432',\n '1392',\n '5',\n '1393',\n '1394',\n '1434',\n '1433',\n '1393',\n '5',\n '1394',\n '1395',\n '1435',\n '1434',\n '1394',\n '5',\n '1395',\n '1396',\n '1436',\n '1435',\n '1395',\n '5',\n '1396',\n '1397',\n '1437',\n '1436',\n '1396',\n '5',\n '1397',\n '1398',\n '1438',\n '1437',\n '1397',\n '5',\n '1398',\n '1399',\n '1439',\n '1438',\n '1398',\n '5',\n '1401',\n '1400',\n '1440',\n '1441',\n '1401',\n '5',\n '1400',\n '1402',\n '1442',\n '1440',\n '1400',\n '5',\n '1402',\n '1403',\n '1443',\n '1442',\n '1402',\n '5',\n '1403',\n '1404',\n '1444',\n '1443',\n '1403',\n '5',\n '1404',\n '1405',\n '1445',\n '1444',\n '1404',\n '5',\n '1405',\n '1406',\n '1446',\n '1445',\n '1405',\n '5',\n '1406',\n '1407',\n '1447',\n '1446',\n '1406',\n '5',\n '1407',\n '1408',\n '1448',\n '1447',\n '1407',\n '5',\n '1408',\n '1409',\n '1449',\n '1448',\n '1408',\n '5',\n '1409',\n '1410',\n '1450',\n '1449',\n '1409',\n '5',\n '1410',\n '1411',\n '1451',\n '1450',\n '1410',\n '5',\n '1411',\n '1412',\n '1452',\n '1451',\n '1411',\n '5',\n '1412',\n '1413',\n '1453',\n '1452',\n '1412',\n '5',\n '1413',\n '1414',\n '1454',\n '1453',\n '1413',\n '5',\n '1414',\n '1415',\n '1455',\n '1454',\n '1414',\n '5',\n '1415',\n '1416',\n '1456',\n '1455',\n '1415',\n '5',\n '1416',\n '1417',\n '1457',\n '1456',\n '1416',\n '5',\n '1417',\n '1418',\n '1458',\n '1457',\n '1417',\n '5',\n '1418',\n '1419',\n '1459',\n '1458',\n '1418',\n '5',\n '1419',\n '1420',\n '1460',\n '1459',\n '1419',\n '5',\n '1420',\n '1421',\n '1461',\n '1460',\n '1420',\n '5',\n '1421',\n '1422',\n '1462',\n '1461',\n '1421',\n '5',\n '1422',\n '1423',\n '1463',\n '1462',\n '1422',\n '5',\n '1423',\n '1424',\n '1464',\n '1463',\n '1423',\n '5',\n '1424',\n '1425',\n '1465',\n '1464',\n '1424',\n '5',\n '1425',\n '1426',\n '1466',\n '1465',\n '1425',\n '5',\n '1426',\n '1427',\n '1467',\n '1466',\n '1426',\n '5',\n '1427',\n '1428',\n '1468',\n '1467',\n '1427',\n '5',\n '1428',\n '1429',\n '1469',\n '1468',\n '1428',\n '5',\n '1429',\n '1430',\n '1470',\n '1469',\n '1429',\n '5',\n '1430',\n '1431',\n '1471',\n '1470',\n '1430',\n '5',\n '1431',\n '1432',\n '1472',\n '1471',\n '1431',\n '5',\n '1432',\n '1433',\n '1473',\n '1472',\n '1432',\n '5',\n '1433',\n '1434',\n '1474',\n '1473',\n '1433',\n '5',\n '1434',\n '1435',\n '1475',\n '1474',\n '1434',\n '5',\n '1435',\n '1436',\n '1476',\n '1475',\n '1435',\n '5',\n '1436',\n '1437',\n '1477',\n '1476',\n '1436',\n '5',\n '1437',\n '1438',\n '1478',\n '1477',\n '1437',\n '5',\n '1438',\n '1439',\n '1479',\n '1478',\n '1438',\n '5',\n '1441',\n '1440',\n '1480',\n '1481',\n '1441',\n '5',\n '1440',\n '1442',\n '1482',\n '1480',\n '1440',\n '5',\n '1442',\n '1443',\n '1483',\n '1482',\n '1442',\n '5',\n '1443',\n '1444',\n '1484',\n '1483',\n '1443',\n '5',\n '1444',\n '1445',\n '1485',\n '1484',\n '1444',\n '5',\n '1445',\n '1446',\n '1486',\n '1485',\n '1445',\n '5',\n '1446',\n '1447',\n '1487',\n '1486',\n '1446',\n '5',\n '1447',\n '1448',\n '1488',\n '1487',\n '1447',\n '5',\n '1448',\n '1449',\n '1489',\n '1488',\n '1448',\n '5',\n '1449',\n '1450',\n '1490',\n '1489',\n '1449',\n '5',\n '1450',\n '1451',\n '1491',\n '1490',\n '1450',\n '5',\n '1451',\n '1452',\n '1492',\n '1491',\n '1451',\n '5',\n '1452',\n '1453',\n '1493',\n '1492',\n '1452',\n '5',\n '1453',\n '1454',\n '1494',\n '1493',\n '1453',\n '5',\n '1454',\n '1455',\n '1495',\n '1494',\n '1454',\n '5',\n '1455',\n '1456',\n '1496',\n '1495',\n '1455',\n '5',\n '1456',\n '1457',\n '1497',\n '1496',\n '1456',\n '5',\n '1457',\n '1458',\n '1498',\n '1497',\n '1457',\n '5',\n '1458',\n '1459',\n '1499',\n '1498',\n '1458',\n '5',\n '1459',\n '1460',\n '1500',\n '1499',\n '1459',\n '5',\n '1460',\n '1461',\n '1501',\n '1500',\n '1460',\n '5',\n '1461',\n '1462',\n '1502',\n '1501',\n '1461',\n '5',\n '1462',\n '1463',\n '1503',\n '1502',\n '1462',\n '5',\n '1463',\n '1464',\n '1504',\n '1503',\n '1463',\n '5',\n '1464',\n '1465',\n '1505',\n '1504',\n '1464',\n '5',\n '1465',\n '1466',\n '1506',\n '1505',\n '1465',\n '5',\n '1466',\n '1467',\n '1507',\n '1506',\n '1466',\n '5',\n '1467',\n '1468',\n '1508',\n '1507',\n '1467',\n '5',\n '1468',\n '1469',\n '1509',\n '1508',\n '1468',\n '5',\n '1469',\n '1470',\n '1510',\n '1509',\n '1469',\n '5',\n '1470',\n '1471',\n '1511',\n '1510',\n '1470',\n '5',\n '1471',\n '1472',\n '1512',\n '1511',\n '1471',\n '5',\n '1472',\n '1473',\n '1513',\n '1512',\n '1472',\n '5',\n '1473',\n '1474',\n '1514',\n '1513',\n '1473',\n '5',\n '1474',\n '1475',\n '1515',\n '1514',\n '1474',\n '5',\n '1475',\n '1476',\n '1516',\n '1515',\n '1475',\n '5',\n '1476',\n '1477',\n '1517',\n '1516',\n '1476',\n '5',\n '1477',\n '1478',\n '1518',\n '1517',\n '1477',\n '5',\n '1478',\n '1479',\n '1519',\n '1518',\n '1478',\n '5',\n '1481',\n '1480',\n '1520',\n '1521',\n '1481',\n '5',\n '1480',\n '1482',\n '1522',\n '1520',\n '1480',\n '5',\n '1482',\n '1483',\n '1523',\n '1522',\n '1482',\n '5',\n '1483',\n '1484',\n '1524',\n '1523',\n '1483',\n '5',\n '1484',\n '1485',\n '1525',\n '1524',\n '1484',\n '5',\n '1485',\n '1486',\n '1526',\n '1525',\n '1485',\n '5',\n '1486',\n '1487',\n '1527',\n '1526',\n '1486',\n '5',\n '1487',\n '1488',\n '1528',\n '1527',\n '1487',\n '5',\n '1488',\n '1489',\n '1529',\n '1528',\n '1488',\n '5',\n '1489',\n '1490',\n '1530',\n '1529',\n '1489',\n '5',\n '1490',\n '1491',\n '1531',\n '1530',\n '1490',\n '5',\n '1491',\n '1492',\n '1532',\n '1531',\n '1491',\n '5',\n '1492',\n '1493',\n '1533',\n '1532',\n '1492',\n '5',\n '1493',\n '1494',\n '1534',\n '1533',\n '1493',\n '5',\n '1494',\n '1495',\n '1535',\n '1534',\n '1494',\n '5',\n '1495',\n '1496',\n '1536',\n '1535',\n '1495',\n '5',\n '1496',\n '1497',\n '1537',\n '1536',\n '1496',\n '5',\n '1497',\n '1498',\n '1538',\n '1537',\n '1497',\n '5',\n '1498',\n '1499',\n '1539',\n '1538',\n '1498',\n '5',\n '1499',\n '1500',\n '1540',\n '1539',\n '1499',\n '5',\n '1500',\n '1501',\n '1541',\n '1540',\n '1500',\n '5',\n '1501',\n '1502',\n '1542',\n '1541',\n '1501',\n '5',\n '1502',\n '1503',\n '1543',\n '1542',\n '1502',\n '5',\n '1503',\n '1504',\n '1544',\n '1543',\n '1503',\n '5',\n '1504',\n '1505',\n '1545',\n '1544',\n '1504',\n '5',\n '1505',\n '1506',\n '1546',\n '1545',\n '1505',\n '5',\n '1506',\n '1507',\n '1547',\n '1546',\n '1506',\n '5',\n '1507',\n '1508',\n '1548',\n '1547',\n '1507',\n '5',\n '1508',\n '1509',\n '1549',\n '1548',\n '1508',\n '5',\n '1509',\n '1510',\n '1550',\n '1549',\n '1509',\n '5',\n '1510',\n '1511',\n '1551',\n '1550',\n '1510',\n '5',\n '1511',\n '1512',\n '1552',\n '1551',\n '1511',\n '5',\n '1512',\n '1513',\n '1553',\n '1552',\n '1512',\n '5',\n '1513',\n '1514',\n '1554',\n '1553',\n '1513',\n '5',\n '1514',\n '1515',\n '1555',\n '1554',\n '1514',\n '5',\n '1515',\n '1516',\n '1556',\n '1555',\n '1515',\n '5',\n '1516',\n '1517',\n '1557',\n '1556',\n '1516',\n '5',\n '1517',\n '1518',\n '1558',\n '1557',\n '1517',\n '5',\n '1518',\n '1519',\n '1559',\n '1558',\n '1518',\n '5',\n '1521',\n '1520',\n '1560',\n '1561',\n '1521',\n '5',\n '1520',\n '1522',\n '1562',\n '1560',\n '1520',\n '5',\n '1522',\n '1523',\n '1563',\n '1562',\n '1522',\n '5',\n '1523',\n '1524',\n '1564',\n '1563',\n '1523',\n '5',\n '1524',\n '1525',\n '1565',\n '1564',\n '1524',\n '5',\n '1525',\n '1526',\n '1566',\n '1565',\n '1525',\n '5',\n '1526',\n '1527',\n '1567',\n '1566',\n '1526',\n '5',\n '1527',\n '1528',\n '1568',\n '1567',\n '1527',\n '5',\n '1528',\n '1529',\n '1569',\n '1568',\n '1528',\n '5',\n '1529',\n '1530',\n '1570',\n '1569',\n '1529',\n '5',\n '1530',\n '1531',\n '1571',\n '1570',\n '1530',\n '5',\n '1531',\n '1532',\n '1572',\n '1571',\n '1531',\n '5',\n '1532',\n '1533',\n '1573',\n '1572',\n '1532',\n '5',\n '1533',\n '1534',\n '1574',\n '1573',\n '1533',\n '5',\n '1534',\n '1535',\n '1575',\n '1574',\n '1534',\n '5',\n '1535',\n '1536',\n '1576',\n '1575',\n '1535',\n '5',\n '1536',\n '1537',\n '1577',\n '1576',\n '1536',\n '5',\n '1537',\n '1538',\n '1578',\n '1577',\n '1537',\n '5',\n '1538',\n '1539',\n '1579',\n '1578',\n '1538',\n '5',\n '1539',\n '1540',\n '1580',\n '1579',\n '1539',\n '5',\n '1540',\n '1541',\n '1581',\n '1580',\n '1540',\n '5',\n '1541',\n '1542',\n '1582',\n '1581',\n '1541',\n '5',\n '1542',\n '1543',\n '1583',\n '1582',\n '1542',\n '5',\n '1543',\n '1544',\n '1584',\n '1583',\n '1543',\n '5',\n '1544',\n '1545',\n '1585',\n '1584',\n '1544',\n '5',\n '1545',\n '1546',\n '1586',\n '1585',\n '1545',\n '5',\n '1546',\n '1547',\n '1587',\n '1586',\n '1546',\n '5',\n '1547',\n '1548',\n '1588',\n '1587',\n '1547',\n '5',\n '1548',\n '1549',\n '1589',\n '1588',\n '1548',\n '5',\n '1549',\n '1550',\n '1590',\n '1589',\n '1549',\n '5',\n '1550',\n '1551',\n '1591',\n '1590',\n '1550',\n '5',\n '1551',\n '1552',\n '1592',\n '1591',\n '1551',\n '5',\n '1552',\n '1553',\n '1593',\n '1592',\n '1552',\n '5',\n '1553',\n '1554',\n '1594',\n '1593',\n '1553',\n '5',\n '1554',\n '1555',\n '1595',\n '1594',\n '1554',\n '5',\n '1555',\n '1556',\n '1596',\n '1595',\n '1555',\n '5',\n '1556',\n '1557',\n '1597',\n '1596',\n '1556',\n '5',\n '1557',\n '1558',\n '1598',\n '1597',\n '1557',\n '5',\n '1558',\n '1559',\n '1599',\n '1598',\n '1558"',\n 'color pmesh [102,102,255]',\n 'draw line_2 diameter 1 curve {-3.0 -3.0 -1.5} {-3.0 3.0 -1.5} ',\n 'color $line_2 translucent 0.5 [0,0,0]',\n 'draw line_3 diameter 1 curve {-3.0 3.0 -1.5} {3.0 3.0 -1.5} ',\n 'color $line_3 translucent 0.5 [0,0,0]',\n 'draw line_4 diameter 1 curve {3.0 3.0 -1.5} {3.0 -3.0 -1.5} ',\n 'color $line_4 translucent 0.5 [0,0,0]',\n 'draw line_5 diameter 1 curve {3.0 -3.0 -1.5} {-3.0 -3.0 -1.5} ',\n 'color $line_5 translucent 0.5 [0,0,0]',\n 'draw line_6 diameter 1 curve {-3.0 -3.0 -1.5} {-3.0 -3.0 1.5} ',\n 'color $line_6 translucent 0.5 [0,0,0]',\n 'draw line_7 diameter 1 curve {-3.0 -3.0 1.5} {-3.0 3.0 1.5} ',\n 'color $line_7 translucent 0.5 [0,0,0]',\n 'draw line_8 diameter 1 curve {-3.0 3.0 1.5} {3.0 3.0 1.5} ',\n 'color $line_8 translucent 0.5 [0,0,0]',\n 'draw line_9 diameter 1 curve {3.0 3.0 1.5} {3.0 -3.0 1.5} ',\n 'color $line_9 translucent 0.5 [0,0,0]',\n 'draw line_10 diameter 1 curve {3.0 -3.0 1.5} {-3.0 -3.0 1.5} ',\n 'color $line_10 translucent 0.5 [0,0,0]',\n 'draw line_11 diameter 1 curve {-3.0 -3.0 1.5} ',\n 'color $line_11 translucent 0.5 [0,0,0]',\n 'draw line_12 diameter 1 curve {-3.0 3.0 -1.5} {-3.0 3.0 1.5} ',\n 'color $line_12 translucent 0.5 [0,0,0]',\n 'draw line_13 diameter 1 curve {3.0 -3.0 -1.5} {3.0 -3.0 1.5} ',\n 'color $line_13 translucent 0.5 [0,0,0]',\n 'draw line_14 diameter 1 curve {3.0 3.0 -1.5} {3.0 3.0 1.5} ',\n 'color $line_14 translucent 0.5 [0,0,0]',\n 'select atomno = 1',\n 'color atom [76,76,76]',\n 'label "0.00"',\n 'select atomno = 2',\n 'color atom [76,76,76]',\n 'label "0.50"',\n 'select atomno = 3',\n 'color atom [76,76,76]',\n 'label "1.00"',\n 'select atomno = 4',\n 'color atom [76,76,76]',\n 'label "0.00"',\n 'select atomno = 5',\n 'color atom [76,76,76]',\n 'label "0.50"',\n 'select atomno = 6',\n 'color atom [76,76,76]',\n 'label "1.00"',\n 'select atomno = 7',\n 'color atom [76,76,76]',\n 'label "0.00"',\n 'select atomno = 8',\n 'color atom [76,76,76]',\n 'label "0.12"',\n 'select atomno = 9',\n 'color atom [76,76,76]',\n 'label "0.23"',\n 'isosurface fullylit; pmesh o* fullylit; set antialiasdisplay on;',\n].join('\\n');;\n var Info = {\n width: '100%',\n height: '500',\n debug: false,\n disableInitialConsole: true, // very slow when used with inline mesh\n color: '#3131ff',\n addSelectionOptions: false,\n use: 'HTML5',\n j2sPath: '/nbextensions/jsmol/j2s',\n script: script,\n };\n var jmolApplet0 = Jmol.getApplet('jmolApplet0', Info);\n </script>\n</body>\n</html>\n\" \n width=\"100%\"\n height=\"500\"\n style=\"border: 0;\">\n</iframe>\n",
"text/plain": [
"Graphics3d Object"
]
},
"execution_count": 38,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"plot3d(f_2d*100, (0,1),(0,1))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Now we need to do some integrals. Symbolic integration is theoretically possible, but the result is a really long expression. You don't believe me? Here it is:"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"y |--> 27101836261352403057669001965570401374968441258953491312131661547410800/83*(14589930354045020136586730464187821267314045147212760459986525400*y^415 - 5338187682074805374853804340731522286150712533029113262503523997500*y^414 + 973902579828020424659768642773459421832648639076701273857422581510000*y^413 - 118128236945984623013404413556597300211754734079077652326400433654852500*y^412 + 10716616649070517405542085070246440232835734829373453393289942990887665000*y^411 - 775626892116703286818382782418309553066376006033643245568693722683411582300*y^410 + 46651397423156236811081213808045024463161001829896390809266175007364119620000*y^409 - 2398414332997007495520961381179642502433611015296049355362521618524608210057500*y^408 + 107592749120047574577940326529675461448238009624754961007884323614305397295405000*y^407 - 4278357650354075681061891489993244354944590739044135489733055374065396803947742500*y^406 + 152685605271994242626657172443867547181795399273699547442977010258250911717380471600*y^405 - 4939777879833702122782996167443082042318324376817316029166071028325838171054540347500*y^404 + 146085044098903379402798382936939582581513126359575117706206537259521933803047175835000*y^403 - 3976638401926118608967220657907785701963925725753309733977657057788429158225734440702500*y^402 + 100233388034583806135250728887884451010100346615068817348908867884804752334445017153040000*y^401 - 2351324933209284216223779223616437394020438981069591851779378677275692282637578434884588840*y^400 + 51564143272133425794381123324921872675886819760298066924986374501659918478894263922907650000*y^399 - 1061241282114669180504487999426351713270753109435599485275092763188094192743793252369023525000*y^398 + 20569012389869876878896390410376073005157065304963374070604736646040274009485913885547052100000*y^397 - 376603745057959113365216353873338309558404061582462712465767931369200173747045456002003767975000*y^396 + 6531739080109028592006137207887255926892948215415533039393627706896497595712048126527917502894000*y^395 - 107579495182723939010833496253908122001128416492114063928374016891143365948230524346457814564525000*y^394 + 1686432391751754776517734067576878466752826863020491761345836311977562716534741192206975058387400000*y^393 - 25213997335375420598914600108173873163244710327007461062295628773099320832538440324790154269694225000*y^392 + 360218386484417134182958967274320346521444889735712730163640364006477765142096490164393354860644350000*y^391 - 4925977198805520094128010468272041653543668573677160412866495730599762759401114577447049271479443264600*y^390 + 64582220344236895835611448298682294172423418318132437289509327059277095303202273380411185821452855140000*y^389 - 812955515369880077390026469892662544369191351377476387724788513615304489760269854233314574786255198565000*y^388 + 9838892405654074646478186726430725057101627038118102933903623553854327427567444607195810870779683625010000*y^387 - 114630919122118881661518548747040265429885393664849461009181407921219182488468693784694520096142179622135000*y^386 + 1287201011814920387530070103748583053263585802316564129441280682402635765543241186935042465661407456993283200*y^385 - 13946299605076390875478057092655703905802333573066100352376442877426070888855807466813432628417340958140851875*y^384 + 145944566102209333234767761951342196486829642195428016220169146351758987265102026963415764946988779530622805000*y^383 - 1476568619396293523038953323140745073594618890684015053205152527094795294050757370846190960302554494094566232500*y^382 + 14456101481111280667430308495754350255794653866922149537416262474623306960992222695707682750456320145055524770000*y^381 - 137073189013866520018819822158502019932971398030933774459631750145655628884036856870555757845323081940834382275900*y^380 + 1259819547225070478625037063813848819964424898349391330785533675481179702584155808528854590574869134812418025315000*y^379 - 11231814611972062280154046655513558073086236593742596484125481161834961983048832541203446857812884834040841984452500*y^378 + 97205451825404451329234909991427682823783607276181912780107054053395639153031303489359776296179862715602383959260000*y^377 - 817197960691764549605615825752401344164840379255348474196591483677615998305138165770920885298469537351114722593672500*y^376 + 6677923815316915428830531030495089810823298288506906304874759846884497240550041053835759895756346800690015882442800024*y^375 - 53076298747342446060305267336741168037960706854817999602622365745340296151821850361042991867438683079046281835966887500*y^374 + 410543442934250494306367360832181014819859990670204641889912408499767376898580654879978653295592356746234664097735450000*y^373 - 3092139501205024087492925310433879500155158278066740750828629473846178657249568562095833218954718151314679050752129862500*y^372 + 22689833252410108141157349018929908236129960743686993022375432056799232068119475658054844786772357206387987957320088425000*y^371 - 162291587499265596915229420541344246351288477773359020181844599343920561334799788323928499729820227751708821250763162199500*y^370 + 1132044536344588586942568834222643971249708717353935901350913194433851447039018200633506207612272591363398399675406999200000*y^369 - 7704330158282716648797220169124748178756617878610612215767653967969651230481606811677303954917218952473230170223857150950000*y^368 + 51180264103251398337241478943667945667053499694966410305290300746348800272245660509180564147379236528963856008190091918300000*y^367 - 332009632291076415253503759274416478808929246181147385329941357116620557314195823462560368704246291878171408728494875860550000*y^366 + 2104049645603108705893656481240652727294549090209686684806558772530403680916746967582788054951140226491057120433030321234398400*y^365 - 13031302952123325978244082844787979278210018403730808370266865700909457186673291456465797059793543823573006486844842770088610000*y^364 + 78905795836823885675428358382490298769987935127824564181395511874928338557322023750170308367565314942736827157258855120261060000*y^363 - 467278099509230327663738906028362621492091066469733094846553563208458401883892995750578560742958590559721440882966426556287990000*y^362 + 2707307770132887561693512209011356721134848333402971922865966227711917807652324331181560734818544939580238966814699911817656240000*y^361 - 15351118720231788860550116627167375274673260466640659633943681532901248696107783080105303295899639338970353992083493626246468874800*y^360 + 85216118641955214725298100656181808627812170119234859488067790443283891488541016302216068833187412964041559168151506600134596420000*y^359 - 463251458251040572610606860917911605061836314980733225417565816998134145188441805322999643817225958419783112813986806755833133170000*y^358 + 2466915811484243103367910504793422448591631383900104721696246365569509484451769884194689110685917274181346718406328661263652303480000*y^357 - 12872381737900474189964750686290911585564378596651474833040702029139814796535399330501510752336023963673653541735632019893116968630000*y^356 + 65834074037555213913521130552196560773945593746705401991179432687623233083351185984390261751947281995622212310916094353008290614773600*y^355 - 330100229990566397447740132006070325914557708758197990210009867289636267578950155712691284208210241644715895061796800781326880907410000*y^354 + 1623141110786109541612720554051232029316505637655224111963831759035067923411144108433564161626188127791179099103094421679762113484960000*y^353 - 7828713477118122766114492141989796474732328936596551036775770252283181368151720900701009612345574312789354494091264260842608040054015000*y^352 + 37046988847558979813436385891296444286411391349535245789414684869066564821937345914713324689760680722345064999104244835497355995811165000*y^351 - 172046216208063902253598576079180687266094501427241681446041796531945127033077034427928679859248601274570481855840113016049721244547050260*y^350 + 784269024131575485657195905544585055263520128933766456187999853948694900515459260872297967579278593984106129845585302886394926225468450000*y^349 - 3510004157537915315826644790679490268562514538272751049479926778152352957783868988303532561968832585384948479821439009328280877790095137500*y^348 + 15426405795614170618430512433150782285599551096670510884695131657972182197576637970970907815155781252532662194922974700092390242004747675000*y^347 - 66592525546209299227813947425990050748580218500115865848445822800492381884060096031259562223428820478544174966346940169926348577983048112500*y^346 + 282407457405406691085540092736240042959279157677344369222957655815123303645461647831779682181146421454682410904902203910690555526406288012000*y^345 - 1176794095047300441583313254922651096142345081584168161548743671003282600250444612187986290287675116424430984680904921512059093051916146512500*y^344 + 4819252008288944665531663805873714012773413191249450566342474081251538267692296983246039093559050476785764984883705869049384857260228028575000*y^343 - 19399583737123714249029347145177536832881328699326224964625983445153342320147727089611619116542137862152230842579009698533771079459891718487500*y^342 + 76774194750103931194621016220417275829391337450642550918102925052183299415837069750216958526367759985177553335313871147435068363286939311050000*y^341 - 298760004676375027308762276885028497953973796335871018437422406111890234679722677191520745550196046709378580196726695993377618382640246069600100*y^340 + 1143368128438541286005432405715875248341166601409597982375789832426345953245639495850176428786264951309762770043364858909603833741978274431865000*y^339 - 4304038996052114359918474533942596401876294209893941594226485271368690516615251942209238258073432857326088078994793613779789333571634270512727500*y^338 + 15938993077368067421893935366054481630687285382633943945384728838777821260343722326044894202004878949385631817761134807113285128478930473590160000*y^337 - 58077285693563973514849289280795034992406704148695465056271307585810431527998209751836050419066828176071011293777848003661461134017242181855285000*y^336 + 208246076343609089510558108310719391142922188129591022762964461707688030899795371802702876905621116433123876913689406035815364519944809877147965200*y^335 - 734911441520887034117710334551856800080228280907544278047387890202613837146372555735309276726701267518758858147944704711668216439037876950569305000*y^334 + 2552946594041795228457830934382587293210654574590420421829012880431375453612990373794349108371346056975001473979398041094631228980494281697180180000*y^333 - 8730843884304860666810768232881428506491467428321477360021205720676890382241058202787257425744203841750151107067226447768796356071011780115421795000*y^332 + 29399242117111144981639021904592535696006227395668608702151681930393223462341275830015616070632834861171635277228528591062645304301266253112007270000*y^331 - 97484952176635461885462640512230172464215159226329160926767561070509950354931351380591175270788969813634045232452858209744303115806241549668481575400*y^330 + 318357587514000023970338162979079237141919866845013588380339387959112158506950479520980582279667095878270508923398745266854230858150021884122700840000*y^329 - 1024052471106587335304923966849336356058801741574524891050593382399595743675059274800614263668100728825425016981626514816015443814846112235965336165000*y^328 + 3244968047170665123104121038128644922534951973996784739559261432468888597833840871330942834942733418724546662095240204579634147512264661458307729110000*y^327 - 10130487376599975052927834132234594624605135963764209172280221317005564910153424977055403289662847257691139177842585044827279294392824869726065202835000*y^326 + 31162418194767841208965292440408201228836639776945247332823425409192913106186822760189297996263396405402322689421006221995872881787651640289656160351520*y^325 - 94462797658301987791726801379103343672068738300925297801217394042416789067475487864330433740877799950238522261803094257593309551274296749114367770025000*y^324 + 282205859634991831612543361126372272103633541237143095894497084853600513738531562479600167780999043221913280802053826080633451632922565897138817914650000*y^323 - 830983453441325877237776699417697875570236493446538471010514207082937277130500722897504280864246130777569331057380095170112106175765676158545509413475000*y^322 + 2412038668595648095446193227341408190294412177438245689831804742929408712142830758741135246742696795851482478005222319062076579415995923002255249435600000*y^321 - 6902159730914606035228940626304488154009908214721395750136793631321453726250558899133226850309011084470931323820799169655562622367661228220039026435930250*y^320 + 19473177924210487246727418694902944635137672079151273276248007110311311453371482787523210549461159799447768625199746873636383574078041082752461203110775000*y^319 - 54172757273371786329797267899511008950457069921028655615253768337642609969696567123132795839324761186228764620923798190157936551747739848021508406280837500*y^318 + 148613244893640543300413389540588625081882229026902277285597989854093021053802235128496407410371900062291902274306630301874074058010345097784878401367350000*y^317 - 402073789622581573468983789711222370486684246982738199948079793608892060125711781710804482380976449602746589841293916446756161430633473939758800761198412500*y^316 + 1072911570175102118714568299300524049956467652837493401105898258145683523997677127729631160984614490406618011292057188598366219213121501126360817675660119400*y^315 - 2824030186049273171460509200482791356187051060118867429441724698830514352201113017507440283886948810830940231210332150414599865952428495507440539051388297500*y^314 + 7332606850301965445761773184339456000203025267168252660245605795723056998686445677482201646717174360165433233302377182884441223078134202956361301923319060000*y^313 - 18783073914301950881555371133981817229297760672393060453658141134494844693641695348663721600576023031941072265752377001427194331670678661101714775112823677500*y^312 + 47471048542255091295506500679452438399447073596466062754261411355990186267531744514629212791166411907092227655567100717433359307695027098475716441281927365000*y^311 - 118380106950027281583642339989303652145054329059869332713553088208205204593604277542149549353971392347483355177574105448073216846848327023360134539333189743300*y^310 + 291305996830072629164119576330764925288251173054450394355265888428324463889738803501778521033464438639774025380487051936090287533002844174232974411377391870000*y^309 - 707413224672519194824422072257781518865882680869059337014391440611944264157048373074731060105267401650071459680354389291699290009520288327103992448019906807500*y^308 + 1695436255440254110795267087401747816840345679592801639417046731716357190462531424719822323567528314776247993486538822254662576345654487622903596811721977155000*y^307 - 4010560206211567101026436946960199706208743592198610557905065961674427833852109698356097065034311222268129472869653610873377184478497134345489922793309716242500*y^306 + 9364269577162125795111981063400125311045250016049787083876341197428553764311143526987279275306342888452941591258336371427030555091134173355836023604670936857600*y^305 - 21583276030221204768694710976942411867785215742006643861085894874051854226508392241922583144765019504191190500833247726639915286338696074346554846368340508360000*y^304 + 49109330561927173132352982166300839073046417336597861043658900830822370814299623271814420677338983558334127938246701333693649774573572491653217203476478686160000*y^303 - 110316830907424695691058057196461818628045047957752312891808230639102506131787927691321036004926716890298772596203887872578722911241736319452733329464437074440000*y^302 + 244668418120261381385798285973058525525113374417928018310840286313407271861443971819674072510314823751800949748251462454238244694210558397611202928995789447840000*y^301 - 535795468330546887683433226189870859766604073931851585837747665833745878156636333766614372528312905776009088534207137387830539851950779637620985289523504016630720*y^300 + 1158593591419415770276135738791382611074135207729468023810145165999623482347702832213587762069642138542286980742288527969302574354062636167154131493318613806000000*y^299 - 2473999067136090274560562780036632443557633234402186194019650024489128890158573497422526887909336512838060230690188814198432454633003996021361562663025988541000000*y^298 + 5217098301022245495951715793409441422949361597764628444981687365458100253902848135408161477031661406288421026334751872525279693180320930262018630572626623784000000*y^297 - 10865350734291701888982566400429344008237060454531438169867465462259844893426613569310905002088509229613680390384143272103735890643174060955355005682980822569000000*y^296 + 22349473984976965105880072175527206590502536555287039598222298449150080953665319030026634424634940340778241562322366567839142164211111932839692940503161908931760000*y^295 - 45406989156805817536051110824934751681806117657091437200245027840904090091813148167065131923328563364528796562569546401601562936930289395232158522372126467871000000*y^294 + 91123923632088125294191307730585781532088727584879744278990021742155648375379287106601698194256639106972465456624209160893238931450546636165560447627339123236000000*y^293 - 180641837584392539058389768323587734138077328079848895002778999833493150926568377956981131243258671560789970153864212831229472064827582969939629644465389192429000000*y^292 + 353754428862196939918580384348132237144803688932336833956223679310330340790240213389649558202350924708226982899696838917692035638758904860542456191012699864034000000*y^291 - 684390395876820237060136853371554811674544207131412813853349595964490403585112728420124501139008902088625283799686593383080280038118641566198703313983769770057060800*y^290 + 1308111483303858090278066814814637636418637799097773709128168613146826278066783267370809723712720920123258080750760336668929189066102527956484586989983807766133120000*y^289 - 2470269254792234857655193377243597883450123890569836172987525543489294560705128692600863911487350904249605175402880774662609580544202966657981925524528969439375020000*y^288 + 4609160926624535770990787642905737514242304332404694322769407416510513021803471828877221688506886443294995022398058030772917875893451876813063836649426003953955830000*y^287 - 8497601698597991505584170452724165446447858686665444330797753647303859305850554299571739091195042797920590514134913785307722149953832688484517512469705300670681455000*y^286 + 15480543164603779612980004558085567367704309579356837531755065591860223689816167692412796267187600774317089806802972762567611720196596252144426289383406989853395829600*y^285 - 27868223267641601429398339030152157683367275940152246900583150145544524288394737963642270454652444948389611058236455778221852353514864906659847079116591848871927365000*y^284 + 49577327483520458951496306311912190571952449134777752436694341633801983780639273640427527715343797020296070041925310664886803191058567893698115362720104612609294490000*y^283 - 87161504744197076275868259529173410497626314282997659519095296565650002893179039742338579161255655940950849530595452992373777945267714721446169383629312058093218935000*y^282 + 151443519583161138744154804574192415371453337909673311636938723177114935711567044566387613614648909392913591642048040489006800028979523236200514839182135021211312360000*y^281 - 260062177239750599921212500521571531062867926377111225705431996300256814602474297085946729823822099407497728758650273973066677160875392401719884093284432972535648058200*y^280 + 441387418675941878424153622011100743212331184342345639242826812189978359171393230348275600902755197181184211787293844714987718984829624464230458981855299479003155570000*y^279 - 740447502143165534695100537307967168633593753579184089609395784740584659607716349319478979606100202255501771656303918308178342531632346180857749693055635640733881545000*y^278 + 1227764465961450432980543411728357427318362017392952554172603526918778267790914379879293037287528258770541628594756646210578560744649835984081190983745053352489832780000*y^277 - 2012318888937286043566457855960467799821480692619420906417973547313258750402067179971589690637120461454303176530333207097147568581556590471354426229457439520154524955000*y^276 + 3260270208216939071519516239568575051471809861891662297629286181486021501690372530335269572550156516978535452967689977295887707476446074993278017934769798636601523340080*y^275 - 5221546283931850314496818018411388448253306289914236285805562004437738272430807069278221380171375847389524283076456420385749647981184989651837173466736069023132972425000*y^274 + 8266976854011279082251372406181122050250088398332976481390965629272316571446969372233919296017086209807033028893891277346018944293793786433244553441015141421962784800000*y^273 - 12939255550579819499392773054193246845361351594048572480733252687794872494681202396447675154828881925309604169221287717851405988010640475222889118905171760454228516450000*y^272 + 20021627899913177035960773065406032634027774053275650898846779681729335299273004446163807312146043618744750362706494402284217383662221055141936668613414605967305625700000*y^271 - 30628743717846745488141166274846301417230074478281788198795210266116261057695006622865813122138919498601324239408803480132926266281330299195548633970013133230853160378000*y^270 + 46324473617153757753108552139478288541617009319395483500749490497716196639687411350975945904543764786294206340604036429187142135181316386724438276157732344907895241800000*y^269 - 69271526684438649177413390067235390808082029546525213943361083224463368368378137122990759193384549886419382417791765409682295926633834136925662079569706827364935947550000*y^268 + 102417240485161545691395887774272711624946464577036873656921953798614430447265013748193443544748935685903583317569240365808241148336246725775505651806370879693517000700000*y^267 - 149718738872427077655896107931412086562995741311221159176676618083915867328154807275485187605066573767612850427326139616353728715079320761081571932179677105479201733450000*y^266 + 216408549953564029529488472385087115611659957554151520041638535059860882344816669353969231170734718550741231047860394409992951875562200091791265331706051013142465781059200*y^265 - 309298543387625691913571285223267570037485603091706373027602737684014995273829262904936708457571006156644632725061357904609382729032619662598016814016462383950230480530000*y^264 + 437115531999882456732767743895680524235485957381154774128663304687715408569898389960909152516983479183154772124151152596027908911832771674458113816406695488384336132380000*y^263 - 610856034203996790493262391989525701919565131131440136005428071279277789569354335858408666737736304953378914823699631224788889620614679350183831708858121902005740802270000*y^262 + 844140607150987653161112760627611474036431448563584388572560501346872805489381928420148554144420195111968911901467192037360652960327953172777298811683722021321761136520000*y^261 - 1153540133409728065688229301253677208105715044760425703798498247386442488116768044169379678046832867618144911844310167064255298242635749607395003048591420730427064703456400*y^260 + 1558838018121254142821931488180644875818533844270845545673646280251949308265902762391053618982206577862357988978797523059804457084642904874858112227826244230306844193860000*y^259 - 2083184238357813854863328232526205692315534871975142947535183597400836123185246196390414344766845017189238638755031074921006148877914508561224126623326480680164414730110000*y^258 + 2753090650820906336683880369164318137034449671715364013607055424590416926429913113409230049686449564163997988232034369417349011805752947530648956585583220687099028519840000*y^257 - 3598213186247577540419756086850740973174520638895087710295836810455620825205015421586518018211218316724659222090113905725077389913872126957620721339338683110578351469805625*y^256 + 4650866926224319832636672965592173430424792166979689840445128677357539701912051305705554269813402185068422272944711934615629442022008835471497214719396195895084802527246800*y^255 - 5945225915008957775005675142473978238261261078125477732901381660117997454821061329431159814508133203512783643521905814594611167450005181060119257090439578921493570013005000*y^254 + 7516172010249942811440347025385049929091531352758252920705069831178308596081786801488434512969146295642863350234984426121953160898586553013495813824189167554679910793780000*y^253 - 9397776761963842946069840852973774936902618530195518350240814136222776102496944403974206547657570956225577437061022620050574359494364270528292226657817982677008606934895000*y^252 + 11621427176440760405372149907195050028862377165996323634745369808334568912678662373430740698230516761143396993881894263216753405784207531507438235006062739048451222607470000*y^251 - 14213639332814855835428614181039938642572988858222558150219118841219086938510332009744346641610370936156255072444495696328446692732583131444406458043415060551113033497441672*y^250 + 17193641230965858416108547661779574493846456740483086744833694828977460369804920900160094161719614525761183374999389965075297204157089964005910942617959864217246133325400000*y^249 - 20570845002790932257499387801546254967756079243472991870128800764696304297474493807316805722604032725661396499290003191023905055128162179023973660364654462812168320272525000*y^248 + 24342364878953295198868564165392502986714249931836750356439286503509912430672535760422316083544159026433324024029697240506020672522972711557576696995999439510524223989350000*y^247 - 28490766648505998727131030541295853245550793463059711252080128012081801822391276219906419356068101074402730400857772598878685233662753864715450149110702283329547270291475000*y^246 + 32982252214270473820584628297217787757202330314883242202408054075162932933215312706338725466318837008485043193463586161525442670498999768094121113794036525642675898784484000*y^245 - 37765485081410504428588596896260660773184290355515935581920352397682607633121502361838093403158432510794097846987892552652622557355232334404578568965345964255077199320025000*y^244 + 42771246095646656082679438766422495893373805346652845408789879440537465664691344525791175933867058123527357060125822611550496252631047894089748567818538055411482780816650000*y^243 - 47913071959101240233640256979564530523654949050606023905480259778382616017970653201048114463345701976193319609297304606580679399802787827471339943680351986355112285327475000*y^242 + 53088972564212334292360874238052328569921866568592509532699832840720414715004255027745972013757206482134935907053702514431360891697351400191451784784754010922018820657600000*y^241 - 58184249907220427614563414334566350866716034286163852530945381083123843089199068171004162803934713609027457969942594772423570790612399578624112312033976473255986865087856800*y^240 + 63075356498888633967860681191903423343530124654076447209278941075276893421155323045782375044204615361631135494232177672653928015688603575153564126777038017793671573031720000*y^239 - 67634641988588958955567460241168625928182102757187656005562812688395113533850996944904231665046923052277453862459329099640378445536483693995671204734500885480651821331620000*y^238 + 71735751698132659638456133338805504160872801540027603477762823944662944103698596863954746636819312687884663054612435908460368206681942502350123557214253724457077824246480000*y^237 - 75259368892849667231245558503989232527831684770677098724812295104713498241923542145952334442694705023538499713979939092582498308681398772882660873311677653967740557067980000*y^236 + 78098942243984136945218795179458897187747036281173567981663368934196305409632997778693231033014817298185484242195352397352277677491221762043907368673508328571346087306289600*y^235 - 80166017709241402316035961666595257950543098699627446475015700156164338142413811645386226074522339850748782344747673076330223167326128963140644870687084445026190469510340000*y^234 + 81394804001535108666680289711760727876210528170805059081928877657025226219397469089368234444763332184451246819682493325814132167438424011625326735657763237868406755063840000*y^233 - 81745643673955518617829773719139006875676952861196460198661329715891714263446596111305166489783863788694571159422504072908158599194624115123711764690770838031632646249460000*y^232 + 81207134822348433514945519610317274287563138942479750974691228729621017858549055952469164075490162446213052245328811687711135156512182586038575323553150476779777358724760000*y^231 - 79796745336244661661419203770316699300524145765546906416047355215374485962016323817360475185906443761189516508330033971207761974827987452523122746253367205279418828334687200*y^230 + 77559873618831971469755248065246545312525229719999106109413544300054085524427755224649567373257425264432689661568845527726941488422751573800471467692383957800815595930320000*y^229 - 74567426107269475150500454391653089851433570021870798351885040679320691897265646740163486635641127662406426069926084694320645899050966548495523171314816371475120369940420000*y^228 + 70912091600370802781608174173560057140560971172734194402308147223956110224918666400384172406524967781682969247864847249843216167566885987537311659589476699314516006506280000*y^227 - 66703584970063643886365941614446540615503096426213587977954278393766272246266027468769856794534969342609917624431373733470304405971576347175671797786336664834900468825580000*y^226 + 62063199901035122788867641956870774257830436571908109366341739821998765961812339382404440324197027849629288501272101090585142176653226217199053132836241571473052656093713920*y^225 - 57118046374889163234191833443618799934603436799244619631163659440239374760339399382530264532658423045511248007142599580258740959370811104670267322022882663536636320439650000*y^224 + 51995351632746637383591669009213526397867702557159900381731941104791897203358287330285397758428968063851046392152231904899212622207509660305220925428902155596130820848650000*y^223 - 46817174780369988414824791082165164423828084230795682136648381549777496200540525764717368251935563621698863809056643669399867519771822694882022080990561925517974395218225000*y^222 + 41695829682643271857808224627545706916999849985275512588183556493369032861907903060128935703034649468931040156855410782114207710383152441605055071617848032933207405584100000*y^221 - 36730235420437573118378336058265263638702595123392701543590787492795084402898870968422671542036886668540161738175357316244242973964795196286634876725177039920252705464539000*y^220 + 32003326920239615008558143895702191316920069369464333187268088999872708896384721233319539550651839563027724559867634974082906700826655026118724825028460099082505152930150000*y^219 - 27580569381199375752846492425926368062928530886071914394681209937463065919156496939561064553373427887747848779519886322958656450060432384195969927330329640179355428098025000*y^218 + 23509537146046779722856443201767148534578376278254847851575772302510062054256564351219206540118894543613024570617146504027320063003613918884541326131033671785335223168600000*y^217 - 19820447530141197896347353554551453930406332075834669441961064872293461259636228259906775214204555633863586390624296765295134277014423152951258447740148176805992070361225000*y^216 + 16527487596296343994684435094232486793689521928165765290952463768859403416872479081098077490244617367623552409819181042242379875270445501679542393073738442501294224997025200*y^215 - 13630739351806686269852381433205409146002133965724659964117232812579330827487589980051943529232989285266320773197922710595350957251570515926948584049167044397949798478855000*y^214 + 11118496450774124048871361009152071756335492345583430160848287147080467501545680703293427464834309300323218376241209860341524594331360545413754183651502965420686239190580000*y^213 - 8969771314119035524973621685954800151227157699282254664803691826830717334003264437625348734816952890554926545327599338721010140128973575058558683478867261279877440711445000*y^212 + 7156812238920735899769864863452087547480380634331143811170383609810290774997865297040353520782302529347142395519261027995408703944555999949148300004604990739617852053570000*y^211 - 5647481267558102653915960029647639165515819059903909091969084822505583923750348014071030184773416939011655617147150206318978608169582157358246617873552523586888688783085400*y^210 + 4407380744877415551901710804946362148960178390225561980075283365916932685418583482900232596469243488428290721794589281653683310133738107661009113219477047255062478355360000*y^209 - 3401655275293139079460371417669373852008911373225233420658717519806428606213883029548904436391430471106478283536696312212782192471531286131619143473533114022040626584610000*y^208 + 2596432528967710022003568521699328833900521724490757876638054918499592849187408302747472951448531470699630767143951774539225055123197793279206882458059091862233908214340000*y^207 - 1959898284919440888305243958440713703092234299350237846259584400899295489518780657569334404448502444982285044395672613944123079538458797876641995470907753668201323525290000*y^206 + 1463026510665996571116778625980273532231638593354686258476144118636463643465169226751408372156958758930330132095222650910762817283342901941086345329920826292248960111700800*y^205 - 1080003423854940085662011914332385268252493176838703555967834759076146089376120996655190061920067014334430813756288907459564364816890175382818014656124761997867547336430000*y^204 + 788395472716488468518397767001259772920818051016932589327202732390003846636309536920704781700920748264952096964577849166968911727098748717971250776949891321800512759580000*y^203 - 569115766910738050102563943784970187494716865303186661365536876895391843831105329503559936197854727847374777567582936300769010117881281932586554127301786700223170310970000*y^202 + 406242862956881505796929449248470838258190045851793445170582700241691337076074255755737766332332067787831756415005962620979487763505530303113813128857443131158511675920000*y^201 - 286741328688472339126572225910240428185449443759250764055171058954315669106882086894009231301223502079732131138415022593240661235119915121623426564510517592413767159903440*y^200 + 200126555477716596263660124169626206159582247179823257994954675428751862860749641885824421622852807146658382983260066019849707729704016695717076050049216633454611362300000*y^199 - 138108097017869357068700515331973808100306596172064875082818998304192186512221003387715401143676595091597256291873672614498991851544332705970000045617681943829136561550000*y^198 + 94237406860048517662674053492482663637390781312024148917871930477950166105204775375439205400137357205890327350092350912664240143847043394396332169160819440273110832200000*y^197 - 63577976545991636916256125130202344988239670953660127865824555836151310694264865578635354328174860854658885232767784691078271603896806673616703552481785718266448061450000*y^196 + 42409029763172416829733922534402571193087795431467091352177983445391746079885393785506510476807734690371064331489112510953282522543380414270759647035402799858104375908000*y^195 - 27968356499363252457450358251159973421760447259988151513337511823446648794345279406754596812327720725153749218007525685665066551404442814141571325743481227923401157550000*y^194 + 18235634765583994320387742335443332341649158723218713547976397570363758127219103895511749441002362091628043181493213778526333827662664296687180519907806833386270240800000*y^193 - 11754607714297287445076170140038782915199344441379700934477779254121575125026159576145103999024294454569375087958501659976370686417738040084769599423943404209353334637500*y^192 + 7490595192656162231267686581385970862939298028463354671783895231497069563591838413519542712916005142328427505565178320343954992391857000861797829999401481216431593950000*y^191 - 4718812143471885498251931399375569153446040589580037536042387894256083752446591820222100697112068642995248681926919703980890102926435108542902394379272076974028520623800*y^190 + 2938624409241751047747843218227984723548828947952170212546882005600314365666510802498194468866906070695172892710962778618056766817511211481977892271588641838955814220000*y^189 - 1808993388677243457104311303450824507272267440520467327158570090194157341372783421417894528343858125954468250642274420214522666629085130678672818630305211588508955745000*y^188 + 1100772222437433254787368713217191833583631355588305758884556300309532274710936604870669285189817412978767339681564113848521814030982846194002430024970410203871759730000*y^187 - 662081128013912817636230433016651114818496776513518458864240218284967538757089845522413401354132795771776317680940767072481578477244436696345688472782949218504733355000*y^186 + 393607619606109016096970271059675830797854158841033206473086264670658962641582719913865320814433447751888454337416630878154970838081674986386851600646709363837737601600*y^185 - 231280592406892826016888587420369938692273847568577177010759680504180961602990975669320214270197519235916952453345105312015819609474163203110568857664021418262928115000*y^184 + 134314449933680740490682235995775419455358582665602950734343571756903283146866061242292236740295600958186555014360206250543198800904347275671146263297628417389550490000*y^183 - 77090020207891702655348652122368955669574412665615955712002740012999787966598430990335111777155464597493339680576169880016292874008652274266849712361481348178188685000*y^182 + 43726935955857540364359824776592335812576278270736122208649804648257706618254726970576822149841405333384804091376538348149204797780230019289483814746475608174736860000*y^181 - 24510860010622651053885007216968814998865156833981659425278853853778687508875598846320260756380367892668725527438040207398718556977944065895341624857061067267876730200*y^180 + 13577173663681707098307668991503415182592668069197302115129371749323484700967924746801773073082582347515580374539582919541947122272604183835597813219752603306228470000*y^179 - 7431624640119335765586269963561498126896299682023299273229325441227624928413463004987430475289193310256536918136194690066446238097869037333423152350479006375198445000*y^178 + 4019421160339907564998280749413311810359523618554309705200041562287665725893090754062422635640435369626476217604687362162890164953279403375699404243301374003050880000*y^177 - 2147978515197812432331598349326308391619240476927594329193413234087686331598297524262295512232820147247849916687328052825684861591497901019454804773325684343252680000*y^176 + 1134132656024444964271083928444290830774958971817769805814122187598298383083901092810492030458929037746864756010909211891961606920310891738272136920315961333237415040*y^175 - 591623786200570744346591332444290120742171686662701256788856842984517983735401736186138054234966201667207195539148161638209094085510582266769280181521239427781000000*y^174 + 304898361703136539913582730349639412533633409244600447056713687580231214280681886493864105913477064137287117253921099113982692733697423278742033850773951700516000000*y^173 - 155228544326754771576732867238730430168034867339359099265953932386346540546430994896711032389053460804319374295295891186870459342529128862770402390434943971559000000*y^172 + 78068156795911756465491383523572029207315781234999313081123030322957909280661202111796191727828056310944246721610799076437774874020497556714939213902954278094000000*y^171 - 38782910738636498271968360539885446730577931081233392243973988485289846360772171257987395030984161179585772122853518455956158461425164824633584808520192724322760000*y^170 + 19030436789055288515614435825604058144604555589001808865566685069993574487895133825538626512533720307489049677832582299069265228582127349365592199302735641896000000*y^169 - 9223084496450041144628926134777405372714049967476753858092625878220570091721106525096571182609544271831315742984650631785762314729495930284640079048036352761000000*y^168 + 4414680970099131148617052146412673462156734753603901112681770702381798857887753905580317440700492699555341010453151297192412404075659825235723027985519428654000000*y^167 - 2086864360448224791039545698184478317537147151271752645296586774902936272421464739950980366619415659181589200252676324474828130914847760325175212750013647759000000*y^166 + 974173578782812523060787683981583381393825588967002883341359392424992505739338788666571586415114374138198342789467522523328254276274144795674518708224552757510400*y^165 - 449056060086577291445885878523723269408897107925587399460749549880095053843259972669035950156126597251781011428193232919059217396081573644396171229437394047560000*y^164 + 204390692846885019010426584498966068869138677811295696278074145110484397863803399771650017628759929453191590945113951763918860853957082015182364819007730039760000*y^163 - 91852636791752675673475022199933050858846076870303406766843499702093693560078925008393638674282172951699017069683645087093678282072792993647684028724524950040000*y^162 + 40753514988740659935920448055841572719296307984906954868137341873986109843841933177294815378935192107292682684803150986947417683521513084480451386931524935040000*y^161 - 17850638881465302296932213902106488874180007843094906628639275407598180613218117348319501118552716131113419908336203708032776995642474517959562419996403973384800*y^160 + 7718436623275091401975406954527176793080978234042608998232391096052672434960663947779658502518863107006588796843484307718574958807673730249810794809765868995000*y^159 - 3294297027975683620342702505267953036518899516677152552538185738208364920708842704993578818577412611622203379749160876153046904671619795571084836843029411307500*y^158 + 1387791549039082242075936294620361196246445004507453985990016329353368365352680884758071124282944966294407704341077400648683957470906043342344138050892556030000*y^157 - 577009955259566938536621468501322832782497515857853665742161279002258072704674937705445916662439176536475473349810891334948069536524864422038391622535987742500*y^156 + 236760213900054563167284679978607304290108658119738665427106176416410409187208555084299098707942784694966710355148210896146433693696654046720269078666379486600*y^155 - 95866857770398268785081309813699404819662596678577568289449993063071090449366055480842111545797104565621316888840054046245290549955541737830829956095320847500*y^154 + 38302738962498095915328599959492333173469943331938789944714640744852232316445810122765236205096203829840617953691121728400553146936285897148594835524189460000*y^153 - 15099381211477073582391019780909537684628598083050415017479438250403400267031957217446902075147865623235398697523974067387040150154315825824612417776308327500*y^152 + 5872486612049481959196025754646334343329364456141221012216566592270076202590393956936001649937098851661690282119498643908505681516970513836664432199575665000*y^151 - 2253114297367714449300593428531100504908582070958736142322386342105935400395121968232225438067690429853897823713320096056569060347555152365357717118886250740*y^150 + 852720251817018639034891795629169591099276658030505175728813522016173765098824986715531653908648040768241089864757567766274812161611931308481751949924150000*y^149 - 318313504265432785312371922191666176695653152713027174996855153944239781581454787403603791547891164322611709601048660849284334299927563486471665224550337500*y^148 + 117190046346477741856296130558125856096907130849572193779936723342655441975261961531675027734049483382454062241182094044015128050719600487556732470729975000*y^147 - 42547559985090037203466072353931776291841899953762028596733659371159646257708924720684275104644588876875604050950131867739769589937637708205720025974912500*y^146 + 15232352509604647801884558623568525581263245715247218207198441117399070292415026536018155807578507220901365680156246443377793373501045469175258541099984000*y^145 - 5376836198744465546098805735948555757531293812206089350250064739446806920818393566360447320863928274085596357219974752909212374948157578359193993533525000*y^144 + 1871165538518230296996951728758732279256056999229268445212486536228711910741407222188785863204805972799841430772562172341091595724451382678682895322650000*y^143 - 641918962409171560639799335519846787954039674785895915309313791603612436179899258316273621079314725075197110556784407211581724488971752005463649200225000*y^142 + 217063449938225844287372224445599172693264334819147492819818692693213047218879844454206103064144731800548093707973067655746328330587745721369185514100000*y^141 - 72341327952139631377955143165233324281227913767908609879768666128483548282219409979010870348468598798255391957584478729633276332721334164958130372244600*y^140 + 23759272552313610555787582209413509695117081468972174029952173736286432810863428363453679657770418748254038647314264205853906834331373435472642130390000*y^139 - 7689163416121793443877156372957006446876299242731511665477380350850192547041057716849408021929520492195121438443069180416959175626888002151207445065000*y^138 + 2451746062211391576496460300194031567790415848441198279303610433774214627192842643318258967030197365363061354525353991676299748695397991338661534760000*y^137 - 770144458030191234457656291324390213380085560235363754243615137048146324623431674723548614485371136352580863498516082299963543767142332352032121885000*y^136 + 238296549765108906831130899029895977134748166997693504487654038172357656423165525597000650661928592877772110568218097846041629838637479343634066073200*y^135 - 72620515975849171559123255600150218771478069163927682689643333723583260940559420147277379995369166709312024453452559430162205938236709923731898555000*y^134 + 21794286989392584521662970325688979429738099144381432206970227814020508322586701679138116280805080266624437349972324666610830001620871511265564180000*y^133 - 6440387998605437962700437129919708853326878585898560609614100675633697167069134806617562523391350280096026445720754149125092418564428756099704545000*y^132 + 1873743675328063125155078257559695963563330120787173960823111109371549783258690332943460293333726895811186707033691079188528124356020235889237770000*y^131 - 536634119808531115277207432954546123329837946333946097119946882092888387318703458106965105872177492346896144354507315553831900878319317760342833400*y^130 + 151271069713468954271235358126721951608129089875671908983776429060715542584553476562921805742685691993487285230305092474653108069998398241111440000*y^129 - 41964380211508115009205126705940314918293868546465930543708231395844732536998706436540073016215970358929358770199237734352946002323434137499093125*y^128 + 11454843942248934280727908602146437667985727897198049282272063163170215705637442176903327017549766187214313155120001901240699171237892782939385000*y^127 - 3076204726513218221871758615378426263394091094268680285915815501528026017065649119787379439353522369000076024164291168018696028877227262161922500*y^126 + 812627212719740074279833393127277514434808726033569170149788944624341438328845681960936427896533247049509738135096613101987122000781469309312272*y^125 - 211129035562785810785207794606147508530826177989267015024783043893504073393551941813096635947511339959238271672113145655446437999039083105387500*y^124 + 53940306000783010350959648159761931681670035895687552340667368603597098158459533858920111689897651616715958928146514771532924464839698924575000*y^123 - 13549208515107442789158694142743310708043284627857061838159578769420308408348015288962224664678314045389486801763205844950319721641460768862500*y^122 + 3345596435506374809129419501598280802255923207148378905560064651447348880050850798286506478173225124380200485373812338844201057932720284300000*y^121 - 811921440040544236870927766616690123507927578322365061516003260468479497980702237516366586270795961682211931351593836243235347138418078034500*y^120 + 193621965033516113721206939574727374445451727739832685576153400747650118755334396863998391002574553660304912087025557132727030319177602075000*y^119 - 45364091619306078005045659443248486890703764665632773533806870214545315445416045558702584846263187242617235437612476448576774694708876637500*y^118 + 10440012366010209657330533223559509516750043242042028762555679647837767771869969298543840440727809741144974965622741668771296969837206050000*y^117 - 2359568012257929693916908370991898140404901077567969769048378870931849312757717948658896471423864045693560683759562678511653700454211112500*y^116 + 523618918894107528597908709806202091679418047822039900053170685097224299665886626519782938702060960400866683909078604831455673352969283400*y^115 - 114065728820115806267685714454781157408161389155147993614776792886336528530701828211091026018473674855641384339347280151399753987102797500*y^114 + 24386788884474152333383196760888569549608670669752088185354611759324600368047838557935888349961435027450024618762168316961044514150560000*y^113 - 5115792965245505965975806746250758092399343661538340281457434026244455151465480984616501330839682224198984124851717239758535946965990000*y^112 + 1052752084834779321590090150722062120484265125228847644453544982166948096603138334435069500988346176056120962629514121410718160731740000*y^111 - 212464511666655463084545466782088900679551688909821979153351805491874979496269736585986753835829864622235321548865577230163119711314800*y^110 + 42041907327454759739701387562564812151017603489980963674885228645630954748317451024390255301207564505209363861081513753045409548920000*y^109 - 8154527265739581369466148613067146427289003741225346163384814375076989684715572672754666782545115434099451652509808630288184003170000*y^108 + 1549944131344603037332684637463666865533994399655163501864379088647962840910861367342372640061372832843760321377638101108301510980000*y^107 - 288609307476055868739453001278955370730043104460427495813361667633386009852700234457505365199191332585763393786475385560833208630000*y^106 + 52632407040794704664743257007431000941736893028482261602092622398518566958083827703218182728798763447898356544286263861416464713600*y^105 - 9397481779018965478570749110125959387785387003446854463025132771192330082331625803428302166052833876812175644424102578520902910000*y^104 + 1642278369148945423439548388177352126020747243320809517810217377489921761960866645259314941640301065850671471841105304984235460000*y^103 - 280811802831049710786083275420039004446133533837258007822025204025480263689293084522664920955158914943269296647891807927987890000*y^102 + 46964299748246442139414318371315093636321254445128853928486525892386558573753248417361882472919306453273013477341809587250040000*y^101 - 7679781206451346776511846156528382454625104179265356399543939519735973435346126431677176400571661826692358489580560672505554160*y^100 + 1227429549682161292755377534287236679233011152548484273037965017219021454313087589770677726724789321488997329238678025908700000*y^99 - 191664866590747583569057375227817714896006473347476250837158575243979690815450585784380275939675304144180970969446568714450000*y^98 + 29228798951010718832550278579772240513220983292048508200025738765080738688837436151518019127933366747527306212808035376800000*y^97 - 4351296186574512381060498956543287764491067882329191120817572591105116499556226208685039485509672773053062598752345653175000*y^96 + 632083024997139693248788269476814433157649860801503552287184229023690607303957070314247841052984044927708040660867052777000*y^95 - 89552426985576065110312515808755276123449100381998663950013673330558671247577930522748376764814303442233441831550561762500*y^94 + 12368558004820096349971701241735518000620633112266963003314517895384714628998274248383332875818872605258716203008519450000*y^93 - 1664485915374732982350815495547864331823997570869416645923231830113187299817071568154696061731042924634190540309296987500*y^92 + 218137755291275547544551318504848316991179168831889361004184228447882096272322769615715153389253488698497905567600175000*y^91 - 27824682563820480953460545960396207545097076202112109603644832695352071835625171057648999565651445002875066176845000100*y^90 + 3452431833933746861255185960482055116921123400000123890987847166997568711940808430672654526654208382517068940395740000*y^89 - 416436992479289524444563193940548141188254772080915694523867720206024499553327288812370859814316002770251122189102500*y^88 + 48800297969257925768945168227403735076167786579709212310338297461765696891867341385918424278773223761694692760035000*y^87 - 5551995446491880365103361013784287241471128331097899004275782127992640782318547109679487091021807001091935251097500*y^86 + 612797786179638560084135675532126677347401544138292168172471353592342811481576536597778682132032601617847826645200*y^85 - 65568746003611880170130327820028660088782894324968321116138047652755713715929010084102703903855452086501844492500*y^84 + 6795773645896194286757592402888730338712583328208358437642991148797732558161317056183674058259949599326798805000*y^83 - 681667912404221641816049424723951966517753084888401587955180281130776733201635077158393146032886616588152857500*y^82 + 66115790720362149335599678068886299997877729531572623892747581048538410139760865027856273201385912690445520000*y^81 - 6194654869359304364988462374290055943831006673648464872936163284062684621676848212124891865995523386780175400*y^80 + 560095376976428966092989364764019524758680531071289771513215486804944360006948301277114996925454194103090000*y^79 - 48816043089591370361372541834983212783311918766047510710521824555661855313700013628009984705022276447165000*y^78 + 4096451168357317792562730783355234639159042134213777122561271990684910935415385758993844870351519701860000*y^77 - 330558996235633585263853334055097532014114601654651554021304318763931448328232688749736201112436324335000*y^76 + 25615081433788704489465654435014616598427076583121234146905777799118766348885795802724656211693104975920*y^75 - 1903316069127122965750499408165665614728175025495455101270045707115308191494050373706456780412323525000*y^74 + 135395711718728285955815386882248743561533239016259242964655979165136078991165323387914253064659400000*y^73 - 9205110138311661488492631785523794964359179960653517530679356536210863161085462340796405527031225000*y^72 + 596990438056242703806597148225912677020346423913985087151822009226908256107082064683160266738350000*y^71 - 36857670523472375626320345673078087016038779215559079293721184917487379290089414428264677337759000*y^70 + 2161378015115243607139502552664376385291710266473264262847015953944974910200434790968021624900000*y^69 - 120086734099681487072380396954695602691872866559859698618089418359970423261263350184737936525000*y^68 + 6304090004203557221504271996592357938533727426199531270738610742520320727045219618550318850000*y^67 - 311728684326988437756940427373391321176952137641801950046508536760034961713315322806668975000*y^66 + 14469691896672518253684795222254999347818086037351334472488484167850414047000482676212854400*y^65 - 628024821904189160316180348188151013360159984260040558701757125340729776345507060599516250*y^64 + 25374740278957137790552741340935394479198383202425881159666954559221405104868972145435000*y^63 - 949552786642871966118189489090107286779835321337238265090342492186892569719806642927500*y^62 + 32715905958242879632857876256508281067157427020232715996444142548256370837803840990000*y^61 - 1030627835585961137729935913996105943477118945097471945240094819243193654092318183300*y^60 + 29440901797351775025612338049784020476398370170371508624264753930009340718691245000*y^59 - 755004291238954531952098498234101944990221895125435674658774477776246494814307500*y^58 + 17167597330925948388992144623180598964787952530540142754173838953649827187780000*y^57 - 340721813322694658138075293705185982239872316936207568589104742464498659367500*y^56 + 5781945923051788138100671650754671213767530226796249648784807750912704522600*y^55 - 81565360051258938031070314145764572883249759534675728604484566097311672500*y^54 + 918279879655578578896653177081473352589489630954339486008999597467910000*y^53 - 7735033951326392988163162489719975792632382460359185117367606272377500*y^52 + 43333523536842537748813235236526475028752842915177507660322724215000*y^51 - 121096421938573667133669862852758916518706574721865911817888160820*y^50)*(y - 1)^349*y^58"
]
},
"execution_count": 39,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d.integrate(x,0,y)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Worse, the expression has lots of large (more than 100 digits) numbers, so SageMath encounters errors and thinks that the integral is sometimes negative, which is riduculous. \n",
"\n",
"\n",
"\n",
"*Where* are we integrating? The placebo proportion is represented by $y$, the hydroxychloroquine proportion by $x$. We want to know the chance that the hydroxychloroquine \n",
"proportion is at least $10\\%$ better than the placebo proportion. That is, we need $x \\leq 0.9y$.\n",
"\n",
"\n",
"(Of course, we are assuming that our prior knowledge is uniform.)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6683714444990453\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.8470851993226352\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So there's an 85% chance that hydroxychloroquine is better than the placebo, and a 67% chance that it reduces cases by at least 10%.\n",
"\n",
"Before I figured out how to use SageMath's built-in numerical integration, I did it\n",
"using Monte Carlo integration, which was much slower and less accurate.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6894516820972163\n",
"0.6249901715346099\n",
"0.6759584915783055\n",
"0.6472110465519125\n",
"0.6981347683159699\n",
"0.687890644602133\n",
"0.6761077587198506\n",
"0.6821597024531272\n",
"0.6786683281125644\n",
"0.639106862842741\n"
]
}
],
"source": [
"#This takes a long time---1 minute? 2 minutes?\n",
"import random\n",
"for j in range(10): #Do it ten times to make sure the results don't jump around\n",
" total_volume = 0\n",
" effective_volume = 0\n",
" for i in range(100000):\n",
" x = random.random()\n",
" y = random.random()\n",
" value = f_2d(x,y)\n",
" total_volume += value\n",
" if x <= 0.9*y:\n",
" effective_volume += value\n",
" print(effective_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"When I analyze Horby et al. later on, I have to use my own integration method because\n",
"SageMath won't cooperate. Let's check that my method gives the right answers for this problem."
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"part_volume = 0\n",
"total_volume = 0\n",
"density = 100\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" value = f_2d(xx, yy)\n",
" if 0.9 * yy >= xx:\n",
" part_volume+= value\n",
" total_volume += value"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0384530013381997 0.0590597684857099 0.651086218658371\n"
]
}
],
"source": [
"print(n(part_volume), n(total_volume), n(part_volume/total_volume))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"part_volume = 0\n",
"total_volume = 0\n",
"density = 300\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" value = f_2d(xx, yy)\n",
" if 0.9 * yy >= xx:\n",
" part_volume+= value\n",
" total_volume += value"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.356537055127285 0.531537916371368 0.670765046379466\n"
]
}
],
"source": [
"print(n(part_volume), n(total_volume), n(part_volume/total_volume))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Let's look at the participants who took the drug completely: \n",
"43/312 in the experimental group got infected, versus 50/336 in the control group.\n",
"\n",
"(See the paper's supplemental appendix.)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.926153846153846"
]
},
"execution_count": 50,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(43/312 / (50/336))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{269} x^{43} {\\left(y - 1\\right)}^{286} y^{50} {336 \\choose 50} {312 \\choose 43}</script></html>"
],
"text/plain": [
"(x, y) |--> -(x - 1)^269*x^43*(y - 1)^286*y^50*binomial(336, 50)*binomial(312, 43)"
]
},
"execution_count": 51,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^43 * (1-x)^(312-43) * binomial(312,43,hold=True) * y^50 * (1-y)^(336-50) * binomial(336,50,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.43644423926443965\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6527656841888028\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"What about the participants who took some of the drug? \n",
"4/37 in the experimental group got infected, versus 3/15 in the control group."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.540540540540541"
]
},
"execution_count": 57,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( 4/37/(3/15))"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{33} x^{4} {\\left(y - 1\\right)}^{12} y^{3} {37 \\choose 4} {15 \\choose 3}</script></html>"
],
"text/plain": [
"(x, y) |--> -(x - 1)^33*x^4*(y - 1)^12*y^3*binomial(37, 4)*binomial(15, 3)"
]
},
"execution_count": 58,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^4 * (1-x)^(37-4) * binomial(37,4,hold=True) * y^3 * (1-y)^(15-3) * binomial(15,3,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.7860010827253943\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.8296253815322459\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"What about the participants who took none of the drug? \n",
"2/65 in the experimental group got infected, versus 5/56 in the control group."
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.344615384615385"
]
},
"execution_count": 64,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( 2/65/(5/56))"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{63} x^{2} {\\left(y - 1\\right)}^{51} y^{5} {65 \\choose 2} {56 \\choose 5}</script></html>"
],
"text/plain": [
"(x, y) |--> (x - 1)^63*x^2*(y - 1)^51*y^5*binomial(65, 2)*binomial(56, 5)"
]
},
"execution_count": 65,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^2 * (1-x)^(65-2) * binomial(65,2,hold=True) * y^5 * (1-y)^(56-5) * binomial(56,5,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.8764540990473931\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9058717565052852\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Let's compare the percentage sick in the various subgroups of this study."
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.137820512820513\n",
"0.148809523809524\n"
]
}
],
"source": [
"print(n(43/312))\n",
"print(n(50/336))"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.108108108108108\n",
"0.200000000000000\n"
]
}
],
"source": [
"print(n(4/37))\n",
"print(n(3/15))"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0307692307692308\n",
"0.0892857142857143\n"
]
}
],
"source": [
"print(n(2/65))\n",
"print(n(5/56))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# [Skipper et al.](https://www.acpjournals.org/doi/full/10.7326/M20-4207)\n",
"\n",
"> At 14 days, 24% (49 of 201) of participants receiving hydroxychloroquine had ongoing symptoms compared with 30% (59 of 194) receiving placebo (P = 0.21).\n",
"\n",
"Same procedure as last time."
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.801585293869635"
]
},
"execution_count": 74,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( (49/201) / (59/194))"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"ineffective_proportion = 59/194\n",
"effective_proportion = ineffective_proportion * 0.9\n",
"very_effective_proportion = ineffective_proportion * 0.5\n",
"dangerous_proportion = ineffective_proportion * 1.1\n",
"very_dangerous_proportion = ineffective_proportion * 1.5"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"f(x) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True)"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ {\\left(x - 1\\right)}^{152} x^{49} {201 \\choose 49}</script></html>"
],
"text/plain": [
"x |--> (x - 1)^152*x^49*binomial(201, 49)"
]
},
"execution_count": 77,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(f)"
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.000213115038855560\n",
"0.0411358667778100\n",
"0.0107795231338404\n",
"0.00129091347725268\n",
"2.42500308651183e-10\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)))\n",
"print(n(f(effective_proportion)))\n",
"print(n(f(ineffective_proportion)))\n",
"print(n(f(dangerous_proportion)))\n",
"print(n(f(very_dangerous_proportion)))\n",
"#The n() function makes the output a decimal instead of a huge fraction"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00398946757865432\n",
"0.770054556971662\n",
"0.201790348943686\n",
"0.0241656219664439\n",
"4.53955349360988e-9\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)/total))\n",
"print(n(f(effective_proportion)/total))\n",
"print(n(f(ineffective_proportion)/total))\n",
"print(n(f(dangerous_proportion)/total))\n",
"print(n(f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So hydroxychloroquine is probably effective."
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ -{\\left(x - 1\\right)}^{152} x^{49} {\\left(y - 1\\right)}^{135} y^{59} {201 \\choose 49} {194 \\choose 59}</script></html>"
],
"text/plain": [
"(x, y) |--> -(x - 1)^152*x^49*(y - 1)^135*y^59*binomial(201, 49)*binomial(194, 59)"
]
},
"execution_count": 81,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True) * y^59 * (1-y)^(194-59) * binomial(194,59,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.7559254454549569\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9100585108660569\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So there's a 91% chance that hydroxychloroquine is better than the placebo, and a 76% chance that it reduces cases by at least 10%.\n",
"\n",
"**The following is speculative. I might be comparing apples to oranges, and I'm not sure that\n",
"a uniform prior is a reasonable choice.**\n",
"\n",
"Since Skipper et al. and Boulware et al. are kind of measuring the same thing, we can try to combine their statistics. That is, assume that the chance of developing symptoms in Boulware et al. is some fraction $z$ of the chance in Skipper. Then we can \"import\" Boulware's data into Skipper.\n"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y, k \\right) \\ {\\mapsto} \\ -{\\left(k x - 1\\right)}^{365} {\\left(k y - 1\\right)}^{349} k^{107} {\\left(x - 1\\right)}^{152} x^{98} {\\left(y - 1\\right)}^{135} y^{117} {414 \\choose 49} {407 \\choose 58} {201 \\choose 49} {194 \\choose 59}</script></html>"
],
"text/plain": [
"(x, y, k) |--> -(k*x - 1)^365*(k*y - 1)^349*k^107*(x - 1)^152*x^98*(y - 1)^135*y^117*binomial(414, 49)*binomial(407, 58)*binomial(201, 49)*binomial(194, 59)"
]
},
"execution_count": 87,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y k')\n",
"f_3d(x,y,k) = x^49 * (1-x)^(201-49) * binomial(201,49, hold=True) * y^59 * (1-y)^(194-59) * binomial(194,59,hold=True) * (k*x)^49 * (1-k*x)^(414-49) * binomial(414,49,hold=True) * (k*y)^58 * (1-k*y)^(407-58) * binomial(407,58,hold=True)\n",
"show(f_3d)"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"from scipy.integrate import tplquad"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.411877197980955e-09\n"
]
}
],
"source": [
"#The ordering of the variables is weird\n",
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: 0.9*y \n",
"effective_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(effective_volume)"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6.528422087537368e-09\n"
]
}
],
"source": [
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: y \n",
"safe_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(safe_volume)"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6.843994100902817e-09\n"
]
}
],
"source": [
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: 1\n",
"total_volume= tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9538906654925636\n",
"0.7907483726888447\n"
]
}
],
"source": [
"print(safe_volume/total_volume)\n",
"print(effective_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So it looks like a 95% chance that hydroxychloroquine does not make patients more sick,\n",
"and a 79% chance that it reduces cases by at least 10%. **I don't trust these numbers.**\n",
"Even if it was valid to compare the studies, I'm not sure that this statistical method is\n",
"the right one. \n",
"It gives probabilites that are lower than I expected.\n",
"\n",
"Let's do the integrals a slower way."
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6.09161669138185e-9\n",
"6.76651578836300e-9\n",
"6.84282719741760e-9\n",
"0.988847970750541\n",
"0.890219278616410\n"
]
}
],
"source": [
"effective_volume = 0\n",
"safe_volume = 0\n",
"total_volume = 0\n",
"density = 30\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" for k in range(density):\n",
" kk = k / density\n",
" value = f_3d(xx, yy,kk)\n",
" if yy >= xx:\n",
" safe_volume+= value\n",
" if 0.9 * yy >= xx:\n",
" effective_volume+= value\n",
" total_volume += value\n",
"effective_volume = effective_volume / density ^ 3\n",
"safe_volume = safe_volume / density ^ 3\n",
"total_volume = total_volume / density ^ 3\n",
"\n",
"print(n(effective_volume))\n",
"print(n(safe_volume))\n",
"print(n(total_volume))\n",
"\n",
"print(n(safe_volume/total_volume))\n",
"print(n(effective_volume/total_volume))"
]
},
{
"cell_type": "code",
"execution_count": 94,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.06957969207133e-9\n",
"6.72430911409873e-9\n",
"6.84272611467702e-9\n",
"0.982694470216440\n",
"0.740871343834375\n"
]
}
],
"source": [
"effective_volume = 0\n",
"safe_volume = 0\n",
"total_volume = 0\n",
"density = 40\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" for k in range(density):\n",
" kk = k / density\n",
" value = f_3d(xx, yy,kk)\n",
" if yy >= xx:\n",
" safe_volume+= value\n",
" if 0.9 * yy >= xx:\n",
" effective_volume+= value\n",
" total_volume += value\n",
"effective_volume = effective_volume / density ^ 3\n",
"safe_volume = safe_volume / density ^ 3\n",
"total_volume = total_volume / density ^ 3\n",
"\n",
"print(n(effective_volume))\n",
"print(n(safe_volume))\n",
"print(n(total_volume))\n",
"\n",
"print(n(safe_volume/total_volume))\n",
"print(n(effective_volume/total_volume))"
]
},
{
"cell_type": "code",
"execution_count": 95,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.36078489855872e-9\n",
"6.69338517816548e-9\n",
"6.84272621368508e-9\n",
"0.978175213963562\n",
"0.783428231840906\n"
]
}
],
"source": [
"effective_volume = 0\n",
"safe_volume = 0\n",
"total_volume = 0\n",
"density = 50\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" for k in range(density):\n",
" kk = k / density\n",
" value = f_3d(xx, yy,kk)\n",
" if yy >= xx:\n",
" safe_volume+= value\n",
" if 0.9 * yy >= xx:\n",
" effective_volume+= value\n",
" total_volume += value\n",
"effective_volume = effective_volume / density ^ 3\n",
"safe_volume = safe_volume / density ^ 3\n",
"total_volume = total_volume / density ^ 3\n",
"\n",
"print(n(effective_volume))\n",
"print(n(safe_volume))\n",
"print(n(total_volume))\n",
"\n",
"print(n(safe_volume/total_volume))\n",
"print(n(effective_volume/total_volume))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"What is the constant $k$?"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"from scipy.integrate import dblquad"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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6mn98r92628f+3X8fz/Q/3xwQn/peFuHOo/qt/+9d8QtARYuXDiK75iBenp69KMf/Uj33nuvzj333LDelxT+xxOp+wj3/Yzl52X69OlasWKFNm7cqDvuuEMPPvigiouL+00Q/6///qMSEhL03/v/r6pfbtLf/vaxzjv3C/r4Y79+9sJvtOO3r+hjf0BTvvRFPfdfr46Z93UsfPZQY+gapU8vntn1+2Y9+eSTmj59+qi8T2I2LE2fPl1Tp07VA6WPqeZlt04P8oYc7W3H//cD7T/coT+9eVi/a27VL3/XpL99HJn7psaxUU+oYHTDN76hJ5/8D/3kJz/p+2PyrW+tHPIbNhJ/9CP5R5mgdPZi4XnpvZLunHPOkTQwRP37v/+7brrpJh3u+CRAPfubl/WXtzt17bU2WS64UFU1dWcdquLpc4Yaw1vji3/Yo+/+aIt2/b5ZFRUVo9uzbtSaEESJ2+028vPzDJPJZEgyTCaTcd111xrXXXddWLfl5+cZFRUVUblvahwb9eTn5xlut7uvX02s9Uo6deqU8cADDxinTp2Kdin4jHh7XoK9Pz67LRKf4WPtc4Yaw1vjaPZX6pVgGEbvhQ4xraurS0lJSTp27JimTp0q6ZOJiV6vV1artW+C12hvi9T9UOPYrQfAyI2193UsfPZQY+Q+l+MmLHm9Xk2ePHnIlwMCAACEEjdhyfh/zSuH2mgKAAAglLgJSwAAAOEw5vssAQAARBNhCQAAIATCEkasoqJCM2bM0HnnnaevfvWrampqGnTfnTt36utf/7r+/u//XlarVddcc43+8z//M4LVji9DeW4+y+PxaMKECfrHf/zHMFc4Pg31eenp6dF9992nSy65ROeee65mzZqln/70pxGqdnwZ6nOzfft2zZ8/X+eff76Sk5O1Zs0avffeexGqFq+++qqysrI0bdo0JSQkqK6uLiz3Q1jCiDz33HNyOBy67777tHfvXmVkZOimm25SR0dH0P1fffVVff3rX9euXbvU0tKir33ta8rKytLevXsjXHn8G+pz0+vEiRNavXq1brjhhghVOr4M53lZsWKFXnrpJT311FP6y1/+omeffVZXXHFFBKseH4b63Ljdbq1evVq333679u/fr+rqajU3N8tut0e48vHro48+0vz587V169bw3tGod27CuLJw4UKjoKCg37YrrrjCuOeee876GKmpqcaDDz442qWNe8N9bm699Vbj3/7t34wHHnjAmD9/fjhLHJeG+ry8+OKLxuTJk4333nsvEuWNa0N9bkpLS42ZM2f22/b4448bF110UdhqxOAkGbW1tWE5NmeWMGynT59WS0uLvvGNb/Tb/o1vfEO///3vz+oYgUBA3d3duuCCC8JR4rg13Odm27ZtOnTokB544IFwlzguDed5ef7557VgwQJt3rxZKSkpmj17tr73ve/J5/NFouRxYzjPzaJFi3TkyBHt2rVLhmGoq6tLNTU1Wrp0aSRKRgRNiHYBiF3vvvuu/H5/X8f0XlOnTtWxY8fO6hiPPvqoPvroI61YsSIcJY5bw3lu3njjDd1zzz1qamrShAl8NITDcJ6Xw4cPy+1267zzzlNtba3effddFRYW6v3332fe0igaznOzaNEibd++XbfeeqtOnTqljz/+WMuWLdNPfvKTSJSMCOLMEkbs801ADcM4q8agzz77rDZt2qTnnntOU6ZMCVd549rZPjd+v1/f+ta39OCDD2r27NmRKm/cGsp7JhAIKCEhQdu3b9fChQt1880367HHHtPPfvYzzi6FwVCemwMHDmj9+vW6//771dLSosbGRrW3t6ugoCASpSKC+PqIYfu7v/s7mUymAd+6jh8/PuDb2ec999xzuv3221VdXa0lS5aEs8xxaajPTXd3t/bs2aO9e/equLhY0id/pA3D0IQJE/Sb3/xG119/fURqj2fDec8kJycrJSVFkydP7ts2Z84cGYahI0eO6PLLLw9rzePFcJ6bhx9+WIsXL9bGjRslSfPmzdPEiROVkZGhhx56SMnJyWGvG5HBmSUM2xe+8AV99atf1W9/+9t+23/7299q0aJFg/7es88+q9tuu02/+MUvGNsPk6E+N1arVa+//rpaW1v7bgUFBfryl7+s1tZWXX311ZEqPa4N5z2zePFivfPOO/rwww/7th08eFCJiYm66KKLwlrveDKc5+bkyZNKTOz/Z9RkMkn65IwU4khYpo1j3NixY4dxzjnnGE899ZRx4MABw+FwGBMnTjTeeustwzAM45577jFWrVrVt/8vfvELY8KECYbT6TSOHj3ad/vggw+i9RDi1lCfm8/jarjwGOrz0t3dbVx00UVGfn6+sX//fmP37t3G5Zdfbtjt9mg9hLg11Odm27ZtxoQJE4yKigrj0KFDhtvtNhYsWGAsXLgwWg9h3Onu7jb27t1r7N2715BkPPbYY8bevXuNv/71r6N6P4QljJjT6TQuueQS4wtf+IJx1VVXGbt37+772Xe+8x3j2muv7fv3tddea0gacPvOd74T+cLHgaE8N59HWAqfoT4vbW1txpIlSwyz2WxcdNFFxp133mmcPHkywlWPD0N9bh5//HEjNTXVMJvNRnJysrFy5UrjyJEjEa56/Hr55Zcj8jeFhXQBAABCYM4SAABACIQlAACAEAhLAAAAIRCWAAAAQiAsAQAAhEBYAgAACIGwBAAAEAJhCQAAIATCEgAAQAiEJQAAgBAISwAAACH8/53h0RT/ixjrAAAAAElFTkSuQmCC",
"text/plain": [
"Graphics object consisting of 1 graphics primitive"
]
},
"execution_count": 97,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"density = 100\n",
"points = [ (i/density, dblquad( f_3d, 0, 1, gfun, hfun, args = [i/density] )[0] ) for i in range(density+1)]\n",
"scatter_plot(points)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"The constant $k$ is somewhere around 0.5, which makes sense because all the proportions \n",
"from Boulware are half of their counterparts in Skipper, as you can see:"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.485507246376812"
]
},
"execution_count": 98,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(49/414 / (49/201))"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"0.468579519426977"
]
},
"execution_count": 99,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( 58/407 / (59/194))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Skipper et al. also looks at hospitalization/death rates:\n",
"> The incidence of hospitalization or death was 3.2% (15 of 465) among participants with known vital status. With hydroxychloroquine, 4 hospitalizations and 1 nonhospitalized death occurred (n = 5 events). With placebo, 10 hospitalizations and 1 hospitalized death occurred (n = 10 events); of these hospitalizations, 2 were not COVID-19–related (nonstudy medicine overdose and syncope). The incidence of hospitalization or death did not differ between groups (P = 0.29).\n",
"\n",
"Based on the flow chart (Figure 1), the placebo group had 234 patients, and the hydroxychloroquine group had 231 patients. This does add up to 465. I'm going to decrease\n",
"the placebo group's hospitalizations by 2 because those 2 patients were not hospitalized for\n",
"COVID-19."
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.0341880341880342"
]
},
"execution_count": 100,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(8/234)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.0212765957446809"
]
},
"execution_count": 101,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(5/235)"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.622340425531915"
]
},
"execution_count": 102,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(5/235 / (8/234))"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.60683760683761"
]
},
"execution_count": 103,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n(5/235 / (8/234)) ^ -1"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{230} x^{5} {\\left(y - 1\\right)}^{226} y^{8} {235 \\choose 5} {234 \\choose 8}</script></html>"
],
"text/plain": [
"(x, y) |--> (x - 1)^230*x^5*(y - 1)^226*y^8*binomial(235, 5)*binomial(234, 8)"
]
},
"execution_count": 104,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^5 * (1-x)^(235-5) * binomial(235,5, hold=True) * y^8 * (1-y)^(234-8) * binomial(234,8,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 107,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 108,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.7314235205271544\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.7939248539228614\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So there's a 73% chance that hydroxychloroquine decreases hospitalizations/deaths by at least 10%, and a 79% chance\n",
"that it decreases hospitalizations. I'm surprised that we can get such high probabilities from\n",
"just a few hospitalizations, but the placebo group did have 60% more of them."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# [Mitjà et al.](https://academic.oup.com/cid/advance-article/doi/10.1093/cid/ciaa1009/5872589)\n",
"\n",
"> The clinical outcome of risk of hospitalization was similar in the control arm (7.1%, 11/157) and the intervention arm (5.9%, 8/136;RR 0.75 [95% CI 0.32; 1.77]) (Table 2).\n",
"\n",
"Here we go again.\n"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.839572192513369"
]
},
"execution_count": 110,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( (8/136) / (11/157))"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"ineffective_proportion = 11/157\n",
"effective_proportion = ineffective_proportion * 0.9\n",
"very_effective_proportion = ineffective_proportion * 0.5\n",
"dangerous_proportion = ineffective_proportion * 1.1\n",
"very_dangerous_proportion = ineffective_proportion * 1.5"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"f(x) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True)"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ {\\left(x - 1\\right)}^{128} x^{8} {136 \\choose 8}</script></html>"
],
"text/plain": [
"x |--> (x - 1)^128*x^8*binomial(136, 8)"
]
},
"execution_count": 113,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(f)"
]
},
{
"cell_type": "code",
"execution_count": 114,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0555971684750819\n",
"0.140876262292071\n",
"0.125210622945351\n",
"0.101946062708870\n",
"0.0235383063646503\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)))\n",
"print(n(f(effective_proportion)))\n",
"print(n(f(ineffective_proportion)))\n",
"print(n(f(dangerous_proportion)))\n",
"print(n(f(very_dangerous_proportion)))\n",
"#The n() function makes the output a decimal instead of a huge fraction"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 116,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.124331606710266\n",
"0.315040720930965\n",
"0.280007747786041\n",
"0.227981354483190\n",
"0.0526385700895380\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)/total))\n",
"print(n(f(effective_proportion)/total))\n",
"print(n(f(ineffective_proportion)/total))\n",
"print(n(f(dangerous_proportion)/total))\n",
"print(n(f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"*This* is what inconclusive data looks like. The results lean toward hydroxychloroquine reducing hospitalizations, but there's still a 56% chance that it's ineffective or harmful."
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{128} x^{8} {\\left(y - 1\\right)}^{146} y^{11} {157 \\choose 11} {136 \\choose 8}</script></html>"
],
"text/plain": [
"(x, y) |--> (x - 1)^128*x^8*(y - 1)^146*y^11*binomial(157, 11)*binomial(136, 8)"
]
},
"execution_count": 117,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True) * y^11 * (1-y)^(157-11) * binomial(157,11,hold=True)\n",
"show(f_2d)"
]
},
{
"cell_type": "code",
"execution_count": 118,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner1(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=0.9y'''\n",
" return numerical_integral(f_2d, 0, 0.9*y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 119,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner2(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=1'''\n",
" return numerical_integral(f_2d, 0, 1, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"def inner3(y):\n",
" '''For constant y, this function does the integral with\n",
" respect to x, from x=0 to x=y'''\n",
" return numerical_integral(f_2d, 0, y, params = [y])[0]"
]
},
{
"cell_type": "code",
"execution_count": 121,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.5456222630855441\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner1, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6407564605821422\n"
]
}
],
"source": [
"part_volume = numerical_integral(inner3, 0, 1)[0]\n",
"total_volume = numerical_integral(inner2, 0, 1)[0]\n",
"print(part_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So there's a 64% chance that hydroxychloroquine is better than the placebo, and only a 54% chance that it reduces cases by at least 10%. The prior probabilities were 50% and 45%, so we're not updating by very much.\n",
"\n",
"Let's bring in the hospitalization data from Skipper et al. and use my **highly speculative** method.\n"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y, k \\right) \\ {\\mapsto} \\ {\\left(k x - 1\\right)}^{230} {\\left(k y - 1\\right)}^{226} k^{13} {\\left(x - 1\\right)}^{128} x^{13} {\\left(y - 1\\right)}^{146} y^{19} {235 \\choose 5} {234 \\choose 8} {157 \\choose 11} {136 \\choose 8}</script></html>"
],
"text/plain": [
"(x, y, k) |--> (k*x - 1)^230*(k*y - 1)^226*k^13*(x - 1)^128*x^13*(y - 1)^146*y^19*binomial(235, 5)*binomial(234, 8)*binomial(157, 11)*binomial(136, 8)"
]
},
"execution_count": 123,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y k')\n",
"f_3d(x,y,k) = x^8 * (1-x)^(136-8) * binomial(136,8, hold=True) * y^11 * (1-y)^(157-11) * binomial(157,11,hold=True) * (k*x)^5 * (1-(k*x))^(235-5) * binomial(235,5, hold=True) * (k*y)^8 * (1-(k*y))^(234-8) * binomial(234,8,hold=True)\n",
"show(f_3d)"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"from scipy.integrate import tplquad"
]
},
{
"cell_type": "code",
"execution_count": 125,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.624275021015414e-07\n"
]
}
],
"source": [
"#The ordering of the variables is weird\n",
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: 0.9*y \n",
"effective_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(effective_volume)"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.8566276539272728e-07\n"
]
}
],
"source": [
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: y \n",
"safe_volume = tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(safe_volume)"
]
},
{
"cell_type": "code",
"execution_count": 127,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.3381682205960883e-07\n"
]
}
],
"source": [
"gfun = lambda k: 0\n",
"hfun = lambda k: 1\n",
"qfun = lambda k,y: 0\n",
"rfun = lambda k,y: 1\n",
"total_volume= tplquad( f_3d, 0, 1, gfun, hfun, qfun, rfun )[0]\n",
"print(total_volume)"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.7940522147093196\n",
"0.6946784267734699\n"
]
}
],
"source": [
"print(safe_volume/total_volume)\n",
"print(effective_volume/total_volume)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So we have a 79% chance that hydroxychloroquine is safer than the placebo, and a 69% chance\n",
"that it reduces cases by at least 10%. If possible, I trust these numbers **even less** than\n",
"when I combined two studies up above. The two following expressions show that it is **not** the case that the results of Mitjà et al. are just a multiple of Skipper et al. That breaks the critical assumptions of my methods. It is **much better** to do the statistics separately for each study and then make an intuitive judgement about what they mean together.\n",
"\n",
"(I'm sorry I'm using so much bold, but I want to be very clear about which sections of this notebook are unreliable.)"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.361702127659574"
]
},
"execution_count": 129,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( (5/235) /(8/136) )"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.487956487956488"
]
},
"execution_count": 130,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n( 8/234 / (11/157))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"And thus the constant $k$ has a wide distribution, indicating that there really isn't a \n",
"value of $k$ that works:"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"from scipy.integrate import dblquad"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"Graphics object consisting of 1 graphics primitive"
]
},
"execution_count": 132,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"density = 100\n",
"points = [ (i/density, dblquad( f_3d, 0, 1, gfun, hfun, args = [i/density] )[0] ) for i in range(density+1)]\n",
"scatter_plot(points)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# [Horby et al](https://www.medrxiv.org/content/10.1101/2020.07.15.20151852v1)\n",
"\n",
"Let's do the big British randomized control trial. This one studied whether hydroxychloroquine prevented deaths, and the answer was no.\n",
"\n",
"> Results: 1561 patients randomly allocated to receive hydroxychloroquine were compared with 3155 patients concurrently allocated to usual care. Overall, 418 (26.8%) patients allocated hydroxychloroquine and 788 (25.0%) patients allocated usual care died within 28 days (rate ratio 1.09; 95% confidence interval [CI] 0.96 to 1.23; P=0.18).\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 133,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"1.07212771976834"
]
},
"execution_count": 133,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"n((418/1561) / (788/3155))"
]
},
{
"cell_type": "code",
"execution_count": 134,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"ineffective_proportion = 788/3155\n",
"effective_proportion = ineffective_proportion * 0.9\n",
"very_effective_proportion = ineffective_proportion * 0.5\n",
"dangerous_proportion = ineffective_proportion * 1.1\n",
"very_dangerous_proportion = ineffective_proportion * 1.5"
]
},
{
"cell_type": "code",
"execution_count": 135,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"f(x) = x^418 * (1-x)^(1561-418) * binomial(1561,418,hold=True) "
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}x \\ {\\mapsto}\\ -{\\left(x - 1\\right)}^{1143} x^{418} {1561 \\choose 418}</script></html>"
],
"text/plain": [
"x |--> -(x - 1)^1143*x^418*binomial(1561, 418)"
]
},
"execution_count": 136,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"show(f)"
]
},
{
"cell_type": "code",
"execution_count": 137,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.39677198943557e-52\n",
"8.12393127425579e-6\n",
"0.00602380538451211\n",
"0.0188375797027912\n",
"1.01781031504652e-19\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)))\n",
"print(n(f(effective_proportion)))\n",
"print(n(f(ineffective_proportion)))\n",
"print(n(f(dangerous_proportion)))\n",
"print(n(f(very_dangerous_proportion)))\n",
"#The n() function makes the output a decimal instead of a huge fraction"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"total = f(very_effective_proportion) + f(effective_proportion) + f(ineffective_proportion) + f(dangerous_proportion) + f(very_dangerous_proportion)"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"9.63739166561420e-51\n",
"0.000326662310389288\n",
"0.242216498122754\n",
"0.757456839566857\n",
"4.09260317236747e-18\n"
]
}
],
"source": [
"print(n(f(very_effective_proportion)/total))\n",
"print(n(f(effective_proportion)/total))\n",
"print(n(f(ineffective_proportion)/total))\n",
"print(n(f(dangerous_proportion)/total))\n",
"print(n(f(very_dangerous_proportion)/total))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"So hydroxychloroquine is probably dangerous."
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<html><script type=\"math/tex; mode=display\">\\newcommand{\\Bold}[1]{\\mathbf{#1}}\\left( x, y \\right) \\ {\\mapsto} \\ {\\left(x - 1\\right)}^{1143} x^{418} {\\left(y - 1\\right)}^{2367} y^{788}</script></html>"
],
"text/plain": [
"(x, y) |--> (x - 1)^1143*x^418*(y - 1)^2367*y^788"
]
},
"execution_count": 140,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"var('x y')\n",
"f_2d(x,y) = x^418 * (1-x)^(1561-418) * y^788 * (1-y)^(3155-788) \n",
"show(f_2d)\n",
"#The binomials are just constants, so I could leave them out."
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"dangerous_volume = 0\n",
"unsafe_volume = 0\n",
"safe_volume = 0\n",
"effective_volume = 0\n",
"total_volume = 0\n",
"density = 100\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" value = f_2d(xx, yy)\n",
" if 1.1 * yy <= xx: #Raises death rates by at least 10%\n",
" dangerous_volume+= value\n",
" if yy < xx: #Raises death rates\n",
" unsafe_volume+= value\n",
" if xx <= yy: #Does not raise death rates\n",
" safe_volume+= value\n",
" if 0.9 * yy >= xx: #Lowers death rates by at least 10% \n",
" effective_volume+= value\n",
" total_volume += value"
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.301958885090088\n",
"0.839044451427119\n",
"0.160955548572881\n",
"0.000510455405632987\n"
]
}
],
"source": [
"print(n(dangerous_volume/total_volume))\n",
"print(n(unsafe_volume/total_volume))\n",
"print(n(safe_volume/total_volume))\n",
"print(n(effective_volume/total_volume))"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
"dangerous_volume = 0\n",
"unsafe_volume = 0\n",
"safe_volume = 0\n",
"effective_volume = 0\n",
"total_volume = 0\n",
"density = 300\n",
"for x in range(density):\n",
" xx = x / density\n",
" for y in range(density):\n",
" yy = y / density\n",
" value = f_2d(xx, yy)\n",
" if 1.1 * yy <= xx: #Raises death rates by at least 10%\n",
" dangerous_volume+= value\n",
" if yy < xx: #Raises death rates\n",
" unsafe_volume+= value\n",
" if xx <= yy: #Does not raise death rates\n",
" safe_volume+= value\n",
" if 0.9 * yy >= xx: #Lowers death rates by at least 10% \n",
" effective_volume+= value\n",
" total_volume += value"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.306166791525411\n",
"0.888306834715452\n",
"0.111693165284547\n",
"0.000524937366943429\n"
]
}
],
"source": [
"print(n(dangerous_volume/total_volume))\n",
"print(n(unsafe_volume/total_volume))\n",
"print(n(safe_volume/total_volume))\n",
"print(n(effective_volume/total_volume))"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"Ah, now the result is more subtle. Assume we start with a uniform prior. \n",
"The data tells us that there's an $89\\%$ chance that hydroxychloroquine increases the death\n",
"rate, but there's only a $31\\%$ chance that it raises the death rate by at least $10\\%$. \n",
"\n",
"Of course, the chance that hydroxychloroquine *lowers* the death rate by at least $10\\%$ \n",
"is miniscule: $0.05\\%$."
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.1",
"language": "sagemath",
"metadata": {
"cocalc": {
"description": "Open-source mathematical software system",
"priority": 10,
"url": "https://www.sagemath.org/"
}
},
"name": "sage-9.1"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}